Nie ma problemu - da się tak komunikować... Obliczony błąd na moim egzemplarzu przy tej prędkości i ustawionym zegarze na 4MHz wyniósł raptem 2%... Czyli w granicach tolerancji, którą przyjąłem (i przy której da się jeszcze połączyć) na 3,5%... Warto przetestować, ponieważ różne egzemplarze mogą zachowywać się inaczej. No i zależy to też od warunków...
Co najmniej 3 błędy popełniłeś. Pierwwszy to włączasz przerwanie Uart Data Register Empty, a nie wstawisz chociaz reti pod wektor obslugi tego przerwania. Tu na pewno program się wykracza i nie wiadomo co procesor zrobi, najprawdopodobniej RESET. Drugi to włączenie sterowania sprzętowego. Co prawda w przypadku odbierania to nie ma znaczenia, ale w przypadku...
UCSRC i UBRRH to jeden rejestr. Jeśli zapisujesz do niego wartość z zerem na bicie 7 - to zapisujesz UBRRH; jeśli z jedynką - zapisujesz UCSRC. Przykład z katalogu właśnie to ilustruje. Zapisujesz wartość z zerem na b7 - i zapis idzie do UBRRH, następnie zapisujesz wartość zawierającą 1 << URSEL - i zapis idzie do UCSRC. Zwróć uwagę, że obie nazwy...
Tu nie chodzi o USART w PC tylko Komunikacja następuje przez przejściówkę USB <>UART opartą o FT232R napisane na początku. A odpwiedź jest w datasheet strona 16: Baud Rate Generator - The Baud Rate Generator provides a 16x clock input to the UART Controller from the 48MHz reference clock. It consists of a 14 bit pre-scaler and 3 register bits...
Witam. Mam nadzieję, że zastosowałeś chociażby konwerter Max232?
W AS też można - a nawet powinno się - to definiować w opcjach projektu. To i parę innych rzeczy mi się podoba, ale ten kiepski edytor powodujw, że wolę programować w AS. Jeśli wiesz jak się to robi w AS 5.1 to podziel się wiedzą. Z góry dziękuję. tutaj jest jak zrobić przycisk do wywołania komendy avrdude A tak przy okazji. Wie ktoś jaką funkcją można...
Ale jak zwierasz wyjścia maxa to masz procesor odłączony? Mam nadzieję, że tak. Jeśli w takiej sytuacji masz krzaki to albo problem z kondensatorami, albo padnięty max.
Ok rozumiem. Spróbuj tego. Użyte przerwanie. Można też zrobić bez zależnie od potrzeb. $regfile = "m8def.dat" $crystal = 8000000 Dim Zmienna As Word Dim A As Bit Config Pinb.1 = Output Config Pind.2 = Input Set Portd.2 '============ definicje timera ================================ Config Timer1 = Timer , Compare A = Toggle , Compare B = Disconnect...
Witam Jak zorganizować transmisję danych pomiędzy dwoma AVR-kami ? Ma być to dwustronna transmisja niewielkiej ilości danych (ok 20 bajt/sec) , po jednej stronie AVR + LED+ fototranzystor <-> AVR + LED+ fototranzystor. Z tego co zmierzyłem na oscyloskopie to maksymalna prędkość przy jakiej nie ma dużych zniekształceń na fototranzystorze to ok...
Enable Urxc On Urxc Odbior_rs_232 Enable Interrupts Dim Odebrane As String * 16 Dim Time_out As Integer Dim Ax As Byte Do Wait 1 Cls Lcd Odebrane Loop Odbior_rs_232: Odebrane = "" Time_out = 0 Do Ax = Inkey() Incr Time_out If Time_out >= 30000 Then Exit Do If Ax > 0 Then Odebrane = Odebrane + Chr(ax) End If Loop Until Ax = 13 Return Ja używam tego od...
Pewnie brakuje Ci "nośnej" W świetle słonecznym (i nie tylko) jest też podczerwień i odbiorniki podczerwieni by odbierały śmieci. Tak więc zabezpieczono odbiorniki. Reagują na sygnał 36kHz. Czyli szybko włączasz i wyłączasz diodę nadawczą z prędkością 36kHz i wtedy masz sygnał niski na wyjściu odbiornika. Odbiornik ma demodulator czyli zamienia ten...
ATmega8 nie działa na 3,3V: http://mikrokontrolery.blogspot.com/2011... Jakim więc cudem działa Ci transmisja?
twój przypadek wygląda tak jakby procesor używał innego bauda jak mu każesz. po pierwsze sprawdz czy ATmega kożysta z zewnętrznego kwarcu (chodzi o fusebity) bo standardowo jak wyjeżdza z fabryki to chodzi wewnętrznym 1MHz. po drógie sprawdz konfigóracje uarta są w necie takie programiki do obilczania wartość rejstrów na różnych kwarcach.
może być 5...10k
Spróbuj tego tylko odpowiednio adresy usaw jeśli masz inne... Oczywiście zdeklaruj inne rzeczy... Wg. Twoich ustawień Config Sda = Portc.1 Config Scl = Portc.0 Dim M As Byte Dim S As Byte Dim H As Byte I2cstart I2cwbyte 162 I2cwbyte 2 I2cstart I2cwbyte 163 I2crbyte S , Ack I2crbyte M , Ack I2crbyte H , Nack I2cstop S = Makedec(s) M = Makedec(m)...
Khmmm, po pierwsze to niech kolega docelowo zrobi obsluge odbioru na przerwaniu, ale narazie to nie ma znaczenia. Po drugie :> zalezy z jaka czestotliwoscia wysylasz znaki. Bo jesli z komputera kazesz mu wyslac od razu caly ciag, a w programie kazesz mu po kazdym odebranym znaku odczekac 200+200ms to kazdy znak ktory przyjdzie w tym czasie zostanie...
Nie da się wysłać innej ilości bitów niż wielokrotność 8. Jeśli interesują ciebie tylko wybrane bity w ilości mniejszej niż 8 to albo zignoruj te niepotrzebne albo wytnij je operacją AND. Przynajmniej dla sprzętowej wersji transmisji w atmega8.
Dlaczego tablica ascii ma tylko 6 pozycji? Potrzebujesz 7. Jawnie wychodzisz poza tablicę (w kodzie wystepuje ascii[6]). I taka uwaga na przyszłość. W funkcji set_values wysyłasz dane serialem. Procedura USART_Transmit czeka aktywnie na wysłanie - trwa dość długo. Wywołanie jej w procedurze obsługi przerwania z odbiornika powoduje za długie wykonanie...
Przewód masy "sygnałowej" (w Twoim przypadku jest to UART) powinno łączyć się z jednej strony wiązki, własnie po to, by nie tworzyć pętli z przewodem masy zasilającej. Być możę, że odłączając jeden przewód masy usunąłeś taką pętlę. Testuj, może właśnie sam znalazłeś powód błędów transmisji.
Przymierz się np. do STM32F4xx
Przy 9600 masz 7% błąd więc mogą być przekłamania. Zainicjuj uarta na 4800bps u mnie działa z wewn. kwarcem 1Mhz (USART_Init(12)). Więcej nie pomoge. Powodzenia.
Witam Mam pytanie dotyczące transmisji RS232 w atmedze8 do komputera. Chodzi o wielkość bufora w USART. Realizuje komunikacje z komputerem w sposób: wysyłam w petli znak, mikroprocesor w odpowiedzi wysyła ciag znaków po 10, po odebraniu w komputerze wysyłam nastepny znak i tak 10 razy obecnie. Z moich obserwacji wychodzi na to ze bufor moj musi miec...
1. Co to jest: UCSRB|=(1<<UCSZ1)|(1<<UCSZ0)... 2. Najpierw wpisz parametry transmisji w innych rejestrach, potem dopiero włącz transmisję w UCSRB.
Linia SS określa kierunek transmisji a nie jej początek czy koniec. Jeżeli korzystasz z SPI sprzętowego to transmisja będzie taka jaki obsługuje dany układ. Zawsze możesz napisać programowy SPI, który będzie inny nisz ten we sprzęcie.
Mam nadzieję że inkrementujesz sobie jakąś zmienną która informuje o ilości włączeń wentylatora a potem ją resetujesz. Przerwanie od timera zakłóca ci odczyt z DS-a musisz sobie dodać flagę którą będziesz ustawiał lub resetował i będzie cię informować że właśnie zakończyło się przerwanie i masz jeszcze trochę czasu do następnego. W tym momencie musisz...
Tutaj znajdziesz gotowe programy chyba nawet skompilowane pliki hex dla ATmega8: http://mikrokontrolery.blogspot.com/2011... A oscyloskop masz, tylko o tym nie wiesz: http://mikrokontrolery.blogspot.com/2011...
M8 ładnie przy tej prędkości 19200 śmiga na 4 lub 8MHz generatorze wewnętrznym. Jak nie zmieniałeś Fusebitów to działać nie będzie - oryginalnie taktowana jest 1MHz i błąd transmisji jest za duży.
jaka prędkość transmisji z z którego socylatora kożysztasz (zewnętrznego czy wewnętrznego)
Brak wspólnej masy?
Witam! Napisałem procedure inicjalizacji rs-a i odbioru danych. W sieci opartej o RS485 mam mastera i kilka slave-wów dlatego muszę na poczatku zchynchronizowac sie zeby zaczac czytac ramkę protokołu od poczatku (dwa znaki 0xa5). Zegar Atmega to 7,32MHz, ustawiona transmisja 19200, 8N1. Atmega 8 odbiera jakies dane ale wyglada na to że pracuje z inna...
BłęDne wartości odbieranych bajtów wskazują na błąd szybkości nadawania. Akurat przy FCPU 1 MHz i szybkości 4800 tego błędu być nie powinno, ale AVR mają mało precyzyjny oscylator wewnętrzny, więc nie można tego wykluczyć. Sprawdź na innym egzemplarzu uC. W procedurze inicjującej UART najpierw go włączaszm, a potem ustawiasz tryb pracy - błąd; zamień...
Razem z procedurą odbioru uruchamiasz timer ustawiony na okres na np 2-3 czas transmisji. Jeśli odebrałeś prawidłowe dane zatrzymujesz timer w innym przypadku timer zgłosi przerwanie i masz informację o błędzie.
A czy Twoj TSOP (polaczony z RX PCta a nie do DCD) daje stala predkosc powiedzmy 9600bps, 8 bitow danych i powiedzmy jeden bit stopu? Chyba nie. Wiec raczej trudno bedzie uruchomic to tak od razu, chyba, ze BARDZO pogimnastykujesz sie piszac aplikacje na PC. Moim zdaniem w Hyper Terminalu nic nie zobaczysz. BF
Programowo porty są dobrze skonfigurowane ponieważ przy połączeniu kablowym działa wszystko tak jak powinno. Poprostu nie wiem dlaczego nie działa przez irde. Jesli chodzi o podlączenie irdy do mikroprocesora jest tak samo zrealizowane jak przy połączeniu irdy do plyty głównej komputera. Przy kompie działa bardzo dobrze. Połaczenie jest zrealizowane...
można to nazwać sprzętową kontrolą kierunku transmisji
MAX232 nie nada się.
Mam podłączony konwerter napięć. działa on napewno, sprawdzony na innym układzie i tam było wszytko ok. może problem leży w ustawieniu fusebit? Chyba już sobie poradziłem. Odpowiednio ustawiłem fusebity.
Sprawdź czy ci timery nie zakłócają transmisji
... void InitUSART(unsigned long int bitrate ) // bitrate - szybkosc portu { //ladowanie rejestrow odp za szybkosc UBRRH = (unsigned char)(((F_CPU/(16UL*... UBRRL = (unsigned char)((F_CPU/(16UL*bitra... // 8bitów, UCSRC = (1<<URSEL)|(1<<U...
A kombinowałeś ze zmniejszeniem częstotliwości transmisji?
O ile schemat jest prawie doskonały, o tyle PCB jest zaprojektowane źle. Pewne elementy muszą być blisko siebie: - kondensatory filtrujące zasilanie regulatora napięcia należą do niego, - kondensatory filtrujące zasilanie mikrokontrolera, należą do jego pinów. - kondensatory przy kwarcu także do kwarcu należą, nie można więc umieszczać tych elementów...
Witam Weź pod uwagę że przy transmisji kodu w podczerwieni masz wielokrotnie stan niski i wysoki. Musisz np. na 1 sekundę, po wykryciu zdarzenia, wyłączyć w programie wykrywanie transmisji.
Żeby działała transmisja od komputera do kontrolera przy tak zbudowanym konwerterze, to wejście RxD w uK musi być wejściem z podciągniem (uaktywniony pullup), albo trzeba dołożyć rezystor na zewnątrz. Podepnij się z oscyloskopem/miernikiem/ledem z rezystorem do linii RxD, ustraw transmisję na 300 bodów i zobacz jak wygląda przebieg.
Witam. Mam problem z komunikacją SPI na Atmega8 w trybie slave. Kod programu: #include <avr/io.h> #include <math.h> #define DDR_SPI DDRB #define DD_MISO DDB4 void SPI_SlaveInit(void) { /* Set MISO output, all others input */ DDR_SPI = (1<<DD_MISO); /* Enable SPI */ SPCR = (1<<SPE); } char SPI_SlaveReceive(void) { /* Wait for...
Zauważyłem przy testowaniu ,że podczas wysyłania sygnałów SCK z mastera po prostu czasami nie zostają odebrane przez slave’a i dlatego transmisja nie zostaje zakończona. Warunkiem końca transmisji jest wysłanie 8 razy sygnału SCK, a slave odbiera niekiedy tylko 6 albo 7 i po podaniu na linię SS przez mastera stanu wysokiego transmisja zostaje...
Co to za jezyk programowania? :)
Schemat do układu uruchomieniowego ZL2AVR. W załączeniu link. Podłączyłem tylko wyjścia MAX'a TXD do PD1 i RXD do PD0. http://www.cyfronika.com.pl/uruchomienio... Dodano po 3 Błędów może być po drodze niestety dużo, ale jako amator-hobbysta zgodnie z zaleceniami z książki, nie zniechęcam się i walczę. Inaczej cały trud dydaktyczny autora poszedłby...
Definiujesz .def zero=r2 , ale nie inicjujesz wartości tego rejestru. Po włączeniu procesora rejestr zawiera wartość przypadkową. Aby mieć pewność, że jego wartość jest równa zero musisz w kodzie dopisać (przed pierwszym użyciem tego rejestru) instrukcję clr zero .
Po co jest ta dioda zenera? Niech mnie ktoś uświadomi. I jak dobrałeś szybkość transmisji?
No jak układy są zasilane różnym napięciem i między nimi nie masz nic do konwersji to nie spodziewaj się poprawnej transmisji.
Witam, Mam problem z procesorem ATMega8 oraz transmisja uart. Skopiowałem z datasheet'a kod pozwalający wysyłać dane za pomocą rs232. Kłopot jest w tym, że nie jest ustawiana flaga UDRE, oznaczająca wolny bufor nadawania przez co wchodzi w nieskończoną pętlę. Pytanie: DLACZEGO?? Testowałem na dwóch komputerach w GCC i ASM i zawsze to samo. Jakieś sugestie...
przejdz na wolniejsza transmisje - im wolniej tym bardziej tolerowane sa roznice czestotliwosci oscylatora.
Witajcie, ostatnio mam problem z komunikacją między dwoma mikroprocesorami ATmega8. Transmisja odbywa się przy użyciu USART. Pierwszy mój problem to kwestia zasilania. Mikrokontrolery oddalone będą o siebie o ponad 50m, co stwarza wiele problemów. W dodatku do transmisji mam tylko 2 żyły, co dodatkowo utrudnia pracę. Transmisja ma odbywać się w jedną...
Chciałbym nadawać i odbierać szeregową transmisję w kodzie Manchester, chodzi tu o to w jaki sposób zdefiniowac taką transmisję, jak odbierać dane. Nie bardzo wiem w jaki sposób w BASCOM zrobić nadawanie szeregowe po jednym porcie.Czy zna ktoś jakiś sposób jak do tego podejść ? procesor atmega8. xtype
Jednak wole radio, bo to nie bedzie jedno pomieszczenie... Zasieg 100- 200m wystarczy...
Master musi coś wysłać, żeby ruszył zegar: char SPI_Master_Receive(void) { SPDR=0xff; /* Wait for reception complete */ while(!(SPSR & (1<<SPIF))); /* Return data register */ return SPDR; } Układ Master-Slave nie zmienia się mimo, że transmisja jest w obie strony.
Czy może być to wina któregoś z kondensatorów Rozumiem, że masz translator napięć max232 albo podobny.. problemy z transmisją będą, jeśli kondensatory będą za małe - ładunku nie wystarczy na wysterowanie linii przez odpowiednio długi czas. Ja u siebie stosuje kondensatory 4u7 jako latające (z dublera oraz inwertera) oraz 10u jako kumulujące (na szynie...
Jest tu co najmniej kilka błędów. Pierwszy to taki, że funkcja uart_getc nie jest atomowa. W ogóle kolejka jest zrealizowana źle - nie uwzględnia, że odczyty/zapisy następują asynchronicznie, w związku z tym pewne operacje (np. uaktualnienie wskaźników początku i końca) muszą być robione atomowo. Przypadkowo to działa przy zapisie, bo ISR jest wykonywane...
Można tak jak kolega pisał wyłączać timer... Ale lepiej by chyba było w samej funkcji obsługi LCD w najbardziej newralgicznym punkcie (sama transmisja) wyłączać globalnie przerwania "cli();" i po wysłaniu danych włączać z powrotem "sei();'
Witam Wiem powiecie, zrób to na RX TX i przejsciówka USB-RS. Ale ja nie chce bo chcę usb (tak ambitniej :P ) I tak będziesz musiał jakoś to transmitować. Siedząc sobie na wykładzie, siedziałem i rozmyślałem. I zauważyłem pewien problem. Że muszę chyba najpierw napisać jakiś sterownik aby PC widział że coś podłączyłem i jest to mój "oscyloskop", następnie...
Cześć sprawdź tą stronkę http://www.propox.com/products/t_52.html Są tam gotowe moduły radiowe na 433MHz. Przejrzyj Elektonikę praktyczną nr'u nie pamiętam. Opisany był taki sprzęt który chesz zrobić wykorzystali do komunikacji takie moduły.
Nie napisałeś jaki to procesor. Przykładowo dla Atmega8/Atmega32 wystarczy gdzieś napisać UCSRB.TXEN = 0 Dla Mega328P UCSR0B.TXEN0 = 0
Oprocz kondensatora trzebabylo jeszczde odlączyc przewod tworzący masę z komputerem... za duzo smieci tam bylo. No ale dziala. A program pisany w Bascomie - razem z "komercyjną" biblioteką do tworzenia slave'ow.
Można zrobić SPI w trybie master - slave, gdzie na przykład uC "C" będzie jako master, pozostałe jako slave i uC master będzie wybierał z którym uC będzie się komunikował. Można też zastosować topologię pętli, wyjście uC "A" łączys zz wejściem "B", a wyjście "B" z wejściem "C", natomiast wyjście "C" z wejściem "A". Tylko znów jeden układ musisz ustalić...
Uart odpalałem (baudrate=9600) na wewnętrznym zegarze o f 1 i 4 MHz. Korzystałem z procka ATmega8, nie było żadnych problemów. Jedyne co moge poradzić, to sprawdzenie dokładnie ustawień w programie. No i narazie ustaw sobie transmisje bez U2X, bo to pogarsza jakość transmisji, choć u mnie nie miało to wpływu na dane.
według Twoich ustawień z 1 postu mamy : 2 bity stopu (1<<USBS) , transmisja 8bit (3<<UCSZ0) oraz ustawiony tryb nieparzystości (3<<UPM0) Czy takie same ustawienia są na kompie ?
A co dalej, jakaś przejściówka na USB czy na rs? 9600 na 1 Mhz nie wyciągniesz na 1Mhz co najwyżej 4800 na 8 Mhz spróbuj 38,4 k zobaczymy co się dzieje przy szybszych transmisjach.
Som 'kwadraty' czyli zasilanie ok. Nic się nie dzieje a potem wszystko znika.... czyli błędy w transmisji: -złe opóźnienia -błędne połączenia Też próbowałem tych programów... napisałem se własne, chcesz podeślę.
Dziękuję za odpowiedzi. Układ zmontowałem. Transmisja OK. Co do regulacji fazowej- średnio to działa, ale działa.
Witam, mam problem z komunikacją między dwoma procesorami ATmega8. Jeden w wersji 16PC drugi w wersji L-8AI. ATmega 8L chodzi na napięciu 5V. Jeden ma być na zewnątrz (8L), drugi jest dopinany kabelkiem w którym jest zasilanie i UART. Programuje układy w BASCOM. Problem jest taki, że jak używam instrukcji Printbin i Inputbin transmisja działa - nie...
Brakuje kondensatora filtrującego zasilanie dla HC595, co w połączeniu ze słabym kontaktem na płytce stykowej może powodować problem. Możesz spróbować zwolnic transmisje SPI.
Problem rozwiązany. Popełniłem głupi błąd, mianowicie w nadajniku nie ustawiłemw dobrze ATmedze kierunku portu (rejestr DDRx), a dokładniej pomyliłem się akurat tam gdzie linia DIO która miała być wyjściem. Dzięki temu nadajnik nadawał stałą wartość nieustaloną którą odbiornik prawidłowo odbierał. Zauważyłem to dopiero jak pożyczyłem od kumpla dodatkowa,...
a podobno ta funkcja nadaje oprocz zmiennej, jeszcze kod na rozpoczęcie transmisji i zakończenie W dobrym kierunku kolega zmierza ;) ale prosimy o wstawienie kodu.
Dlatego wpadłem na pomysł aby zastosować coś takiego jak jest w licznikach rowerowych(to co jest przy kole). No i tu jest moje pytanie... Jak to się nazywa i gdzie mogę coś takiego dostać? Najpierw podaj z jaką maksymalną częstotliwością będą generowane impulsy - od tego zależy, czy kontaktron może być wykorzystany. Czy atmega8 pociągnie transmisje...
http://www.compuphase.com/software_termi... - programik Termite. Fizycznie mój programator też potrafi pracować w trybie przejściówki RS232 >> port COM na USB... (multitool firmy SFAR) - nawiasem mówiąc bardzo fajne urządzonko :) (prosta transmisja bez kontroli - TX, RX, masa...) Dodano po 35 [syntax=vbnet]$regfile = "m8def.dat" $crystal =...
O to mi chodzilo. Co jeśli do pinu SDA mam podpięty sygnał analogowy (np z jakiegoś czujnika temperatury)? Wtedy już nie mogę korzystać z tego pinu do transmisji?
Jeśli jest mała odległość to tak jak sugeruje "Pierzasty" jeden niech ma kwarc a drugi niech ciągnie clocka z tego pierwszego. Jeśli zaś odległość jest większa niż jakieś 0.5 m to warto się zastanowić choć nad zwrotnym potwierdzeniem czy poprawnie przeszła transmisja.
Znalazłem Tylko że muszę użyć układ scalony MAX232 do "pogodzenia" napięć PC i TTL. I to wszytsko ale jak przesyłać dane. Do transmisji danych w ATmega8 musisz użyć USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter) w trybie asynchronicznym. Łączysz pin wyjściowy oznaczony w ATmega8 jako TXD z wejściem RXD w porcie szeregowym...
Dla mnie niema znaczenia czy transmisja RS233 jest poprawna czy też nie. Nie rób z siebie głupca. Po co komu transmisja przez RS232 która nie jest poprawna? Dziś Atmega8 kosztuje około 5 zł a FTDI który daje 100% poprawną transmisję aż 2x tyle. Nie wymaga programowania, potrzebuje garstki typowych części, a jedyna "trudnością" jest obudowa SSOP o gęstym...
11059200Hz daje zerowy błąd transmisji UART. 12MHz zapewni prawidłową transmisję przy mniejszych prędkościach. Przy Baudrate 115200 12MHz się wyłoży (będzie dobre do 28800).
Proszę bardzo: http://mikrokontrolery.blogspot.com/2011... Przykład na ATmega8, ale to praktycznie ten sam mikrokontoler. W razie problemów zapytasz tutaj.
Przepraszam kolego GienekS , zauważyłem, że przedstawiłeś tylko fragment kodu. Nie napisałem tego jednoznacznie, ale moja odpowiedź dotyczyła kodu autora tematu (on przedstawił zdaje się cały kod i nie ma tam ustawienia prędkości transmisji).
Problem jest nie w komunikacji tylko w wyświetlaczu. Po prostu wyświetlacz się nie wyrabia czytaj może błędnie napisana procedura obsługi wyświetlacza, pokaż jak masz napisaną obsługę wyświetlacza, używasz opóźnień czy flagi zajętości wyświetlacza?
Nie koniecznie ale jak będą błędy transmisji z/do modułu GPS to w pierwszym rzędzie z powodu braku kwarcu. Do testów możesz sobie darować kwarca.
Schemat niekompletny - jak łączysz z µC ? Jak inicjalizujesz kierunek transmisji w MAX485 ?
Górny przebieg to dane, a dolny to CLK To typowa transmisja synchroniczna. Jak SPI
Przeglądnij sobie ten przykład i wykorzystanie w nim sposobu ustawiania rejestrów USART (w tym bitu U2X) z wykorzystaniem nagłówka setbaud.h: http://mikrokontrolery.blogspot.com/2011... Może w ten sposób szybciej odnajdziesz przyczynę problemów lub zastosujesz zawsze rozwiązanie z artykułu, które działa zawsze poprawnie.
No niestety nie będzie działał bo cały kod składa się z kilku 8 bitowych słów i jak pozbędziesz się jednego to już się nie dogada . Napisz mi tu co dokładnie chcesz osiągnąć (gdzie przycisk , gdzie led , i co ma led robić ) a w wolnej chwili dam działający kod z dogłębnym opisem . Chyba że już rozwiązałeś problem ?
Witam, Robię USB-RS232 na FT232RL do transmisji z ATmega8. ATmega zasilana jest akumulatorem Li-ion, czyli 3 .. 4,2V Czy ten schemat jest poprawny ? Czy diody LED sygnalizujące transmisję można podłączyć do VCC ? (przydały by się podczas testu transmisji samego USB-RS) http://obrazki.elektroda.pl/3916940800_1...
Podłącz analizator np saleae koszt niecałe 50pln na "alledrogo" sprawdź prędkość jaką masz fizycznie wykluczymy problemy z fusami ,oscylatorem RC . Analizator pomoże w wielu sytuacjach więc warto go kupić . Moim zdaniem oscylator rc nie robi problemu tym bardziej przy małych prędkościach transmisji .
Dawid512 możesz mi wytłumaczyć jak skorzystać z tych sterowników?? Bo tam są jakieś dwa programy i kompletnie nie wiem o co w nich chodzi... Wszystkie napięcia mam ok. A czemu dioda podłączona pod reset i VCC przez 330om mruga podczas próby transmisji?
zaptaszkuj cksel3 w klodce pony prog i daj write... w klodce w tabeli u gory masz transfery pod rs a pionowo po lewej czest kwarcu na przecieciu roznice % odbiegajace od idealnego transferu jak jest 0,0% to jest idealnie ale jak bedzie do 1% to tez bedzie chodzic zwlaszcza przy wolnych transmisjach.
A czy istnieje inna metoda odczytu jednego sygnału z PC przez kilka urządzeń? Myślałem nad puszczeniem jednego sygnału do kilku urządzeń i urządzenie, które rozpozna swoje ID w transmisji zadziała.
Atmega8L maksymalnie może działać na 8MHz Atmega8 - 16MHz źródło atmel
Ważne jest ustawienie takiego samego formatu transmisji w procesorze jak i w terminalu. Skorzystaj z ustawień 8N1, czyli 8 bitów danych, bez bitu parzystości, 1 bit stopu. Sprawdź w dokumentacji atmegi jakie wartości wpisać do rejestrów UCSRB UCSRC aby uzyskać dany format transmisji.
Robiłem podobny projekt. W układach zasilanych bateryjnie dałem ATtiny2313 - w czasie uśpienia pobiera bardzo mały prąd w porównaniu do 'tradycyjnego' ATmega, działa już od 1,8V więc nawet na wyczerpanych akumulatorach (dwóch) pójdzie. Po stronie komputera ATmega8 + FT2232. Do transmisji stosowałem RFM12B.
Na pewno masz te 8MHz? Spróbuj także z dzielnikami rezystorowymi oraz przy różnych prędkościach transmisji.
Gdy programujem same fuse bity to wszystko jest ok. A gdy programujem sam flash to zatrzymuje się na 99% czyli tak jak wcześnie. Może jest to spowodowane źle dobraną prędkością transmisji? W Atmega8 ustawiłem takie fusebity lfuse:$ff hfuse:$D9.
a jak to jest z transmisją 1Wire
Zadeklarowałeś: adxl_init() w której wysyłasz bufor do ADXL345: ...ponieważ już podczas wysyłania pierwszego bajtu danych z konfiguracją ( adxl_init() ) program zawiesza się nie wychodząc z pętli TWI_stop(), co zaznaczyłem w kodzie programu. Jak sprawdzasz, że akurat ta linijka sprawia problem? Sam fakt wpisania odpowiednich wartości do TWDR i TWCR...
transmisja atmega8 transmisja szeregowy atmega8 transmisja szeregowa atmega8
czujka zalania konfiguracja philips serwisowy zmiana matryca peiying podłączenie
hisense 55e7nq karta graficzna
Tworzenie otworu pod śrubę w PCB w EAGLE Niedziałający nawiew w Oplu Meriva 2008 - przyczyny i rozwiązania