Config COM zupełnie nie jest potrzebny przy używaniu sprzetowego USARTu. A kolega sprawdzał czy przy takim baudrate i taktowaniu jaki będzie błąd ?
Witam Spróbuj zrobić tak jak jest w nocie nie poprzez zmienne a przez stałe. [syntax=c] #define UART_OSCYL 11059200// Clock Speed #define BAUD 9600 #define MYUBRR UART_OSCYL/16/BAUD-1 void uart_open1(unsigned long baudrate) { UBRRH=(unsigned char) (baudrate>>8); UBRRL=(unsigned char) (baudrate); UCSRB=0b00011000; // UCSRB=0x18; UCSRC=0b10000110; //...
Otworzyłeś datasheet? Bo coś zdaje mi się że nie bardzo. Tabelka na stronie 153. Nawet zakładając że masz dokładną częstotliwość (a nie masz bo to RC) to nie wyciągniesz baudrate 9600 bo będziesz miał 7% błędu.
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).
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.
A tak z ciekawości, dlaczego nie napiszesz tego tak: [syntax=c]switch (wiadomosc) { case 'a': PORTD = 0; PORTB = 0x00; PORTD = _BV(5); PORTB = _BV(1) | _BV(2); break; case 'q': PORTD = 0x00; PORTB = 0x00; PORTB = _BV(1) | _BV(2); PORTD = _BV(5) | _BV(7); break; // itd. }[/syntax]
http://tomeko.net/termometr.php -> projekty testowe dla ATmega8 i PIC18F2550. Przewód ma u mnie około metra - taka sama zwykła płaska taśma, kondensator przy czujniku. Nie zauważyłem by był wrażliwy na dotykanie. W main.h zdefiniowane jest F_CPU warunkujące opóźnienia w bibliotece delay i ustalające baudrate dla RS232. Jeżeli będzie wyższe niż rzeczywiste,...
Podaj częstotliwość kwarcu, wybraną prędkość (baudrate), oraz kod - którego używasz (po stronie Atmegi na początek).
A może zwyczajnie źle obliczasz baudrate w rejestrach? Czy kompilator to robi za Ciebie?
Sprawa się trochę skomplikowała, bo dowiedziałem się, że FBUS w Nokiach działa z prędkością 115200bps, a AT89C2051 tego raczej nie uciągnie. Mam jeszcze ATTiny2313 i ATMega8. Czy ich UARTy dadzą sobie rady z takim baudrate?
Z pewnością się nadają. Problemem jest raczej przejściówka USB-RS232. Pomijając jej prawidłową konfigurację (baudrate), trzeba jeszcze wziąć pod uwagę, że dane po USB idą paczkami i są buforowane. Pytanie co robi odbiornik w chwili, gdy nic nie jest nadawane? Niemniej obstawiam na problem podstawowy jakim jest właściwe baudrate po stronie nadajnika.
Może spróbuj nadawać z mniejszą prędkością. Ja zazwyczaj przy kwarcu niezapewniającym odpowiedniej baudrate używam niskiej prędkości, rzędu 2400 lub 4800 bps.
Zakładając, że chcę by komunikacja działała na prędkości 57600bps, zastosuję zewnętrzny kwarc 16mHz, to czy będzie możliwe osiągnięcie tej prędkości, bez błędów transmisji? Ja bym nie zakładał takiego "okrągłej" prędkości, jak używasz w obu urządzeniach takich samych kwarców to czy zaprogramujesz na 57601bps czy 57599bps to będzie działać idealnie...
Ciekawe możliwości mają te wyświetlacze DGUS. Widzę w datasheetcie max baudrate 921600. Jakich szybkości używacie? Dałoby rade zrobić na tym oscyloskop: dwa kanały + FFT?
1. W jaki sposób zczytałeś te id? Podpiąłeś czytnik pod RS232<>USB? Jeśli masz stąd powtarzalne dane, to znaczy, że czytnik pracuje poprawnie. 2. Natomiast zrób jeden test. Wgraj do tego procesora program wysyłający po UART jakiś tekst co 1s i zobacz, czy odczytasz poprawny tekst na komputerze za pomocą przejściówki (oczywiście czytnik odłącz)....
Odłącz procesor i połącz razem wyprowadzenia maxa RxD i TxD, następnie nadaj coś na PC, w terminalu powinieneś zobaczyć echo - jeśli nie problem jest sprzętowy, jeśli tak to wina ATMegi. A najpewniej twoja - źle obliczony baudrate na ATMedze. Procesor taktujesz kwarcem? Zapewne nie i stąd może być problem.
A otworzyłeś port? Zobacz sobie przykład do tej kontrolki. Coś takiego znalazłem. Przeanalizuj. Private Sub Command1_Click() CommX1.BAUDRATE = 19200 CommX1.COMPORT = 1 CommX1.OPEN End Sub Private Sub Command2_Click() CommX1.Close End Sub Private Sub Command3_Click() CommX1.SEND Text3.Text + Chr(13) ' send data End Sub...
zegar jest na pewno ustawiony na 8MHz, załączam ekran z fusebitami. http://obrazki.elektroda.pl/9124762800_1... Odpalając ten sam kod z na drugim uC czyli na atmega8 ten sam efekt 30 znaków/s.
Witam, próbuje stworzyć aplikacje w Visual C# która miałaby wysyłać i odbierać dane z mikrokontrolera atmega8. Udało mi się podłączyć i napisać wstępnie program na avr, w realterm wszystko gra. Prosta aplikacja którą stworzyłem działa poprawnie przy wysyłaniu (przy wysłania liczby 5 zmiana stanu diody). Niestety nie mogę poradzić sobie z odbiorem. kod...
witam, potrzebuje zrobic konwenter baudrate 31250<=>38400 rs232, czy uklad na atmega8 z tym wsadem ma szanse zadzialac? $crystal = 12000000 $regfile = "m8def.dat" Dim S As String * 10 Dim Mybaud As Long Dim Mybaud1 As Long Mybaud = 34800 Mybaud1 = 31250 Do Serin S , 0 , D , 0 , Mybaud , 0 , 8 , 1 Serout S , 0 , D , 1 , Mybaud1 , 0 , 8 , 1 Serin...
proponuje cos takiego: #include <avr/io.h> #include <avr/delay.h> #include "io.h" void USART_Init( unsigned int baud ) { //ustawienie portu DDRD &= 0xFE ; DDRD |= 0x02 ; PORTD |= 0x03 ; /*set baudrate*/ UBRRH = (unsigned char)(baud>>8); UBRRL = (unsigned char)baud; /*enable receiver and transmitter*/ UCSRB = (1<<RXEN)|(1<<TXEN);...
Może program odbierający dane był ustawiony na 5 bitów? Ja ostatnio też walczyłem z UARTem na Atmedze8, proponuję po kolei: sprawdzić kable i ścieżki na płytce, użyć sprawdzonego software'u, zastosować odpowiedni kwarc (+filtracja kondensatorami) i baudrate i ustawienia w PC. Jak będę miał dostęp do programatora, to sprawdzę jakie fusebity mam zaprogramowane.
a dlaczego nie może być w przerwaniu, masz takie wytyczne? jeśli jest w pętli głównej to musisz sobie policzyć ile czasu się może maksymalnie wykonywać cała pętla (między odbiorem poszczególnych danych) i porównać to z baudrate, i jeśli będziesz miał wyższą częstotliwość przybywania znaków na uart niż ich odbioru w pętli, to wtedy na bank możesz utracić...
Kod działa OK dla 8MHz, 16MHz, a dla 20 trafia w osobliwość i się załamuje. Po zamianie zgodnie PDF: [syntax=c]void UART::Init(uint16_t baudrate) { //UBRRH = (uint8_t)(baudrate>>8); //UBRRL = (uint8_t)baudrate; //UBRRH = (uint8_t)(baudrate>>8); UBRRL = 129; UCSRB = (1 << RXEN) | (1 << TXEN); UCSRC = (1<<URSEL)|(1<<USBS)|(3<&...
Witam serdecznie. Mam taki problem, że kiedy przesyłam jakiś znak poprzez USART do mikrokontrolera i on ma powrócić do terminala to poprawne dane otrzymuję tylko na zasilaniu z przejściówki USB->RS232. Jest to zasilanie z portu USB. Kiedy mikrokontroler zasilę z zasilacza ATX to mam błędy w transmisji i to spore. Baudrate ustawiłem na 4800. Czy ktoś...
mirekk36 dziękuję za bardzo wyczerpującą odpowiedz! Przy transmisji(elementy na płytce stykowej) przy prędkości transmisji 1200 baudrate i wysyłaniu ramki co 50ms, coś już zaczyna działać, jak już kupiłem te moduły to będę męczył się z częścią programową, może coś z tego uda się wykombinować Pozdrawiam
Lista listą, każdy sobie może wpisać tam cokolwiek. Jaka jest przy takim ustawnieniu rzeczywista wartość baudrate już takie oczywiste nie jest. Obstawiam, że przy takich szybkościach różnice dalece odbiegają od wartości pożądanych i nic z tego nie wyjdzie. Swoją drogą, do czego potrzebne są tak niskie szybkości?
Problem nadal aktualny ? Sprawdź czy masz ustawiony poprawnie Baudrate. Mi to smartRF studio usilnie ustawia 1200 i nie da się go namówić na nic innego. Muszę samemu grzebać w rejestrach żeby to odkręcić. Jeśli chodzi o szumy to potwierdzam. Ten odbiornik "tak ma". Musi się zestroić z ciągiem 0101010 żeby złapać synchronizację FSK. Jeśli masz jakieś...
W tym przypadku akurat taktowanie AVR z FT ma niejaki sens. Ja bym to tak zostawił, to czy 6 lub 12 MHz jest przyjazne, czy nie, dla RS232 jest tu bez znaczenia, bo na FT można baudrate dokładnie ustawić, a w każdym razie ustawić dokładnie z takim samym błędem jak w procesorze - czyli będzie max przyjaźnie :) A swoją drogą pokaż tą część odpowiedzialną...
Jeśli takie same są: kod, putty, atmega i wszelka dookólna jej elektronika, to trzeba patrzeć co tam między tymi 2ma środowiskami może się różnic... Tak mi przychodzi na myśl, skoro krzaki to możliwe że nie zgadza się baudrate. To znaczy fizycznie atmega taktowana jest z tych 8MHz natomiast podczas kompilacji w AVR Studio z jakiegokolwiek powodu F_CPU...
Faktycznie w najnowszej nocie katalogowej atmega8a (tej biało niebieskiej) są tabele z przeliczeniami błędów transmisji dla większości stosowanych częstotliwości. Są nawet zaznaczone sugerowane baudrate z najnizszymi błędami :-P Nie wiem czemu nie zwróciłem na to wcześniej uwagi... Co do korzystania z zewnętrznego oscylatora to zastanowię się nad tym....
Tak się składa że piszę trochę w Assemblerze (tylko że używam do tego Bascoma) i mam nadzieję że rzeczywiście zajmie to jeden takt. Oby tylko wyłączenie i ponowne włączenie UARTa nie resetowało liczników odpowiadających za baudrate UARTa. Jeżeli je resetuje to opóźnienie będzie dużo większe. Co do nieelegancji tego rozwiązania które zastosowałem to...
1920 8 n 2 mój błąd ale nadal wszystko się sypie i nie dostaje poprawnych odpowiedzi w trerminalu, próbowałem nawet dla innego kodu #include <avr/io.h> #define F_CPU 4000000UL /* Function prototypes */ void InitUART( unsigned char baudrate ); unsigned char ReceiveByte( void ); void TransmitByte( unsigned char data ); /*...
Powiem tak, zmieniłem crystal na 1000000 i Baudrate na 2400 i wszystko chodzi jak powinno :), ale potrzebuje wykorzystać zewnętrzny kwarc na 8MHz, a ta tabela wyżej od submariner'a na razie nic mi nie mówi, więc ponawiam pytanie, jak zmienić żeby procek był taktowany z zewnętrznego kwarc W sumie to już rozgryzłem tą tabele, ale w HyperTerminalu nie...
Bootloader jest zafiksowany do danej prędkości procka i UART. Najprościej ściągnąć pakiet Arduino, dograć MINICORE, jest tu do wyboru Atmega8 z bootloaderami od 1 do 20MHz, ustawiasz pożądany zegar, wypalasz bootloader i potem szkice można już wgrywać niezależnym programem, np. AVR LAB++. Wybierasz jako programator Arduino, odpowiedni port COM i baudrate,...
Witam! Po podłączeniu procka ATMega8515 przez układ MAX232N (na płytce STK 300) z komputerem kablem typu null-modem (kabel sprawny), komputer odbiera same krzaczki... wartosci baudrate, parzystość, etc. zostały ustawione poprawnie... Co może być przyczyną ? Pozdrawiam Patryk
jak używać ten parametr boudrate? Pierwszy raz korzystam z AVRdude:) Nie tłumaczy to Ciebie, bo wystarczy wczytać się w dokumentację. http://lmgtfy.com/?q=avrdude+command+lin... zamiast stk500v2 wpisz jednak samo stk500 i popróbuj z różnymi baudrate. Przede wszystkim 115200, ale może też inne, chociaż nie wiem czy to miało by tu jakieś znaczenie....
Oczywiście użytkownicy Bascom-a najczęściej są nieprzyzwyczajeni do przejmowania się pdf-kami, co skutkuje wypisywaniem bzdur... Co do consensusu - wszystkie parametry transmisji (BAUDRATE, STOPBITS, BITS od DATA & PARITY) są w obu µC jednakowe ? Chcialbym zauwazyc, ze CI co proponowali ustawienie pullup'ow progrmuja raczej w C, (ja jako uzytkownik...
Witam. Mam nadzieję, że się nie narażę tym tematem, ponieważ był już wielokrotnie opisywany - jednak uzmysławia to jak wiele problemów może wyniknąć przy obsłudze jednej rzeczy. Sprawa jest prosta, napisany program w WinAVR20070525 nie obsługuje portu USART w mikrokontrolerze ATmega8515. Układ jest podłączony do COM'a poprzez inwerter MAX232. Podczas...
Na podstawie tego, co poleciłeś napisałem coś takiego: [syntax=c] #include "twi_master_driver.c" #include "twi_master_driver.h" #include "avr_compiler.h" // general definitions /*! Number of bytes to send in test example. */ #define NUM_BYTES 3 /*! Defining an example slave address. */ #define SLAVE_ADDRESS 0x80 /*! CPU speed 2MHz, BAUDRATE 100kHz and...
Kompilator Bascom, powinien być w wersji 1.11.7.4 lub wyższej, niższe wersje nie były testowane. Oczywiście w pełnej wersji, kod po skompilowaniu przekracza 7kB. Wydaje mi się że błąd leży w błędnej konfiguracji opcji programu, takich jak Baudrate czy jakichś pinów. Wszystkie potrzebne opcje zostały zawarte w programie, i kompilator z tego korzysta,...
31.07.2010 - AKTUALIZACJA #3 Wsad 2.04: -poprawiono kilka błędów -dodano obsługę nowych procesorów, łącznie 106 (138) -zmiana wewnętrznego zegara na 1MHz, baudrate UARTa to 2400bps UWAGA, FUSEBITY! Jeśli uaktualniasz wsad do 2.04, koniecznie zmień wartość wewnętrznego generatora na 1MHz. Jeśli wykonujesz układ od początku, jedyną rzeczą jaką musisz...
Można zmienić bootloader, można sobie skompilować własny i albo wyłączyć albo zmienić pin, źródła są w katalogu core, w readme jest przykładowa linijka do wpisania "make atmega8 AVR_FREQ=16000000L BAUD_RATE=115200 LED=B5 LED_START_FLASHES=2 UART=0" , można się domyślić co tu zmienić, nie dam Ci instrukcji - u mnie to nie działa, bo nie mam poinstalowanych...
Sprawdziłem na ArduinoISP w/g poniższego schematu - działa bez problemu, nowa ATMega8 jest ustawiona na wewnętrzny oscylator, więc kwarc jest niepotrzebny. http://obrazki.elektroda.pl/3136046100_1... http://obrazki.elektroda.pl/7968863300_1... Test bez kwarcu zrobiłem na ATMega8L-8PU, odczyt Flash i EEPROM poszedł bez...
Bede mógł wgrać kod bez bootloadera używająć tego usbasp ?t To zwykły programator ISP, jak ustawisz w MINI CORE opcję bez bootloadera i tak wypalisz bootloader to nie będzie bootloadera. Może to brzmieć dziwnie, ale wypalenie bootloadera ustawia fuse i wypala booloader albo tylko ustawia fuse. Nie masz żadnej płytki Arduino by zrobić programator AVR...
No i możemy teraz sie spierać o to, co widnieje w temacie, o overclocking i o to co kto rozumie przez słowo "działa'. Wierzę, że MCK masz na poziomie 60+MHz i że układ się zazwyczaj wyrabia, chociaż nie wiem po co Ci ponad 85fps... P.S. Domyślam się, że 30MHz SPI to dla SD/MMC, ale chyba da się drugi "PORT" taktować innym Baudrate :) Na ARM to jeszcze...
Witam! Bawię się czujnikiem ultradźwiękowym mierzącym odległość, z którym komunikuje się za pomocą interfejsu I2C. Dane z czujnika za pośrednictwem amtegi8 (8MHz) wyrzucam na kompa za pomocą RS-232 (9600 baudrate). Problem polega na tym aby obliczyć czas jaki upływa pomiędzy kolejnymi pomiarami i wyświetlać go z resztą danych na komputerze. Trochę poczytałem...
http://obrazki.elektroda.net/42_12648689... Na temat projektu avr-cdc z [url=http://www.recursion.jp/avrcdc/]htt... napisano już wiele i jeszcze więcej - nie będę się rozpisywał o samej idei - można zajrzeć chociażby do wątku [url=http://www.elektroda.pl/rtvforum/to... prosta niezawodna przejściówka...
http://obrazki.elektroda.pl/3241531500_1... Założenie, które obrałem w zasadzie jest dość proste: skonstruować generator obrazu do monitora LCD o rozdzielczości >15x15 symboli, wykorzystując popularny mikrokontroler typu ATmega 8, 16, 8535 itd. z minimalną ilością elementów zewnętrznych. Koniecznie ma pracować na standardowych częstotliwościach...
Ten kod, który męczysz z botem jest z grubsza bez sensu. Wykorzystujesz przerwanie w celu modyfikacji flagi, podczas, gdy taka flaga już jest - RXC w rejestrze stanu UART. Wystarczy ją testować. Wykorzystanie przerwań ma sens, jeśli tworzysz bufor. Jeśli przepisujesz rejestr UDR do 8-bitowej zmiennej i ustawiasz flagę, to jest to kompletnie bez sensu....
Witam, jakiś czas temu zadawałem już to pytanie, ale nie uzyskałem do końca odpowiedzi. Otóż mam urządzenie, z którym można się komunikować przez RS232 , a format transmisji jest Baudrate: 9600 Data Bits: 8 Parity: Mark Stop bits: 1 Flow control: None Nie wiem , jak mam ustawić rejestry od UARTA w ATMEGA88P, aby taką transmisję prawidłowo obsłużyć....
Po co dramatyzujesz ? ;) Zrobić się zawsze da, tylko nie mam układu przed sobą, aby wszystko co trzeba posprawdzać. Inna kwestia, kod na ATmega8 w takiej postaci nie ma sensu, PORTB jest tam nieosiągalny w całości - PB6 i PB7 są potrzebne do oscylatora kwarcowego 11.0592MHz, a PORTD zawiera linie RxD ( PD0 ) i TxD ( PD1 )... W zamian kod dla ATtiny2313...
Wstępnie kod wygląda znośnie, jednak TXEN i RXEN najlepiej jak są załączanie pod sam koniec, nie na początku. Kod dość znacząco polega na wartościach domyślnych używając operacji ustawiania bitów zamiast przypisań, co w przypadku dostępu do UCSRC może źle się odbić (odczyt w rzeczywistości odbędzie się z UBRRH[współdzielenie adresu], jednak ten powinien...
Dzień dobry! Mam taki kod: [syntax=c]#include <avr/io.h> #include <util/delay.h> //set desired baud rate #define BAUDRATE 1200 //calculate UBRR value #define UBRRVAL ((F_CPU/(BAUDRATE*16UL))-1) //define receive parameters #define SYNC 0XAA// synchro signal #define RADDR 0x44 void USART_Init(void) { //Set baud rate UBRRL=(uint8_t)UBRRVAL;...
Szukałem na internecie poradników do terminala UART i udało mi się zrobić coś takiego z kawałków znalezionych w sieci. Problem polega na tym, że mój kompilator wyrzuca błędy a nie pokazuje mi gdzie one są (i tym samym nie mogę ich skompilować) i jeśli ktoś może sprawdzić poprawność kodu w 1. i 2. main.c(są to dwa odzielne programy w dwóch projektach...
Witam. Po zainicjowaniu komunikacji UART, ustawiam moduł w nieskończoną pentlę, wysyłającą co pewny okres czasu jeden znak. Prędkość ustawiona w BTM - 19200, tak samo inicjuje tą predkość w programie (25.04666=25). Po wgraniu programu do mikrokontrolera(ATMEGA8) rozpoczyna sie wysyłanie danych. I w rzeczywistości komunikacja następuje. Jednak nie wygląda...
Witam, próbuję przepisać program z Atmega8 na Atmega328P, z powodu małej pamięci Atmegi8, w programie wykorzystuje komunikacje USART. Program dla atmegi8: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #ifndef F_CPU #define F_CPU 1000000 #endif //set desired baud rate #define BAUDRATE 9600 //calculate...
No nie wracam do tematu i pytam dlaczego dioda led nie miga gdy w bascom dla Atmega8 $crystal = 8000000 Config Portb.0 = 1 Portb.0 = 1 Do Wait 1 Portb.0 = 0 Wait 1 Portb.0 = 1 Loop plik hexa ale długi ho ho :1000000012C0189518951895189518951895189... :100010001895189518951895189518951895189... :100020001895189518958FE58DBFC0E4E8E34E2... :1000300084E08EBFD4E0F4E05F2EEEEFF3E0A0E...
Jak sam stwierdziłeś - bo oba układy mają następców bez wersji napięciowych - natomiast chciałbym się dowiedzieć skąd informacje o likwidacji atmegi8 - po prostu jeszcze nie trafiłem na nią poza forum więc prosiłbym dobrą dusze o jakiegoś linka. Gubienie znaków może mieć również związek z prędkością transferu - wewnętrzny oscylator jest zależny od napięcia...
Moje projekty pracujące z max. katalogowymi kwarcami lubię sprawdzić w warunkach ekstremalnych +/-20%, np. zasilaną 5V mega48 z kwarcem 20MHz przetestować z napięciem 6V i kwarcem 24MHz. Jeżeli wówczas poprawnie pracuje to uznaję że w warunkach nominalnych pracować będzie na pewno dobrze. Tak samo sprawdzam w drugą stronę np. przy 4V i 16MHz. Dobrze...
Mam problem z wysyłaniem i odebraniem z rs485. Jest to ATMEGA 8 + max485. [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <HD44780.c> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include <avr/wdt.h> #include <stdio.h> #include <string.h> #include <stdlib.h>...
Cześć, Przejrzałem kod, który załączyłeś w #1. Uruchomiłem program z #21 na płytce stykowej (Atmega8 + wyświetlacz 7-segmentowy + emulator MCP7940). Pierwsza rzecz, jaką sprawdziłem, to próba reprodukcji błędu. Ustawiając datę na 10. i 30. dzień miesiąca, nie udało się odtworzyć problemu. Przegląd kodu również nie wykazał tego, aby błąd został celowo...
Fuse bits ustawiłeś na 4000000 MHz? W IDE (kontrollerlab) mam ustawione 1 MHz, ale teraz zmieniłem na 1000000UL Pokaż co jest w uart.h. To jest z tej bibloteki: i biblioteki http://homepage.hispeed.ch/peterfleury/u... Pokaż schemat. Brałem go z polskiej książki o programowaniu rs232 w Bascomie: max232 + 4x10uF + 100nF Po pierwsze czy ustawiłeś...
Witam, Cały dzień męczę się z napisaniem prostego programu. Założenie - wysterowanie diody z poziomu aplikacji C++ dla windowsa. Polutowałem układ Atmega8 -> FT232 -> USB, z terminala sterowanie idzie mi całkiem nieźle - oprogramowanie Atmegi porównuję zmienną odebraną z UARTa z liczbą 2, jeżeli jest równa zapala się dioda - działa, niestety tylko...
Witam. Od jakiegoś czasu próbuję zmusić atmegę do wysyłania poprawnych danych po RS232. Pobrałem bootloader do atmegi - [url=https://code.google.com/p/android-b... i wgrałem za pomocą poleceń: [syntax=bash]avrdude -p m8 -c...
...Mikrokontroler w obecnej postaci programu nie wysyła 97 tylko inne wartosci np 82, 133. Natomiast gdy wrzuce ldi r20, 97 do petli "petla" program działa dobrze. ... Nie napisałeś dokładnie , co oznacza "tylko inne wartosci np 82,133". Czy procek po zresetowaniu generuje nonstop 82 , a po następnym resecie 133 , czy procek pracuje cały czas , a Ty...
Może trzeba zrobić korekcję błędów - uśrednić w czasie z pominięciem 2 skrajności, nie przepisując bezpośrednio. Chwila... Jakie ustawiasz baudrate ? http://www.nongnu.org/avr-libc/user-manu...
[syntax=csharp] serialPort1.PortName = "COM3"; serialPort1.BaudRate = 38400; serialPort1.Open(); if (serialPort1.IsOpen) MessageBox.Show("port otwarty");[/syntax] Aż tyle. Wysyłanie i odbieranie realizujesz na dostępnych metodach.
Znalazłem problem i procek hulaa, dla zainteresowanych problem tkwił we właściwej wielkości baudrate-u połączenia.
Witam ! Na znanym portalu aukcyjnym zakupiłem przejściówkę USB<-> rs 232 ttl Potrzebuję zmontować działający układ komunikacyjny z atmega88 ( interfejs USART) a następnie spokojnie przeanalizować kod, zasadę działania i wreszcię połączyć się z RFM12B. Ustawiłem częstotliwość taktowania qc za pomocą fusów na 8MHz. W ustawienia portu w komputerze...
Witam Mam problem z transmisją radiową, korzystam z modułów RX433n i TX433n. Dokładniej mówiąc to prawie nic nie mogę przesłać. Nadajnik i odbiornik są podłączone pod atmegi8, wszystko jest zmontowane na jednej płytce stykowej więc jest bardzo blisko siebie kod nadajnika: #include <avr/io.h> #include <util/delay.h> //#ifndef F_CPU //define...
Nigdy nie próbowałem symulacji sprzętowej, bo nie bardzo widzę sens. Ja składam na płytce to, co buduję, pakuję program i patrzę, co wyszło. Biorąc pod uwagę to, że aż tak ci zależy postanowiłem sprawdzić jak to wygląda u mnie. No i wygląda bardzo dobrze, czyli wszystko działa. Nie wiem, co ci podpowiedzieć, skoro prawie wszystkiego próbowałeś. Ale...
Witam, Mam problem z transmisją szeregową na ATMEGA8L. Próbowałem wszystkich znalezionych na forum możliwości ale nic nie pomogło. Może zacznę od połączeń: atmega8l <-> MAX3232 <-> PC MAX-sior (właściwie zamiennik SP3232ECP) podłączony jest według zaleceń datasheet'a. Miedzy MAX-em a PC-tem jest zwykły kabel rs232 (w sensie, że nie przejściówka...
Witam, Próbuję korzystać z biblioteki Peter Fleury do obsługi usart-u, której listing znajduje się poniżej: PLIK uart.c /***************************************... Title: Interrupt UART library with receive/transmit circular buffers Author: Peter Fleury <pfleury(at)gmx.ch> http://jump.to/fleury File:...
Jj_Johnys -> co do wpływu temperatury na pracę UART'a przy oscylatorze wewnętrznym na pewno masz rację - ale przy jakiej prędkości przesyłu miałeś te problemy z krzakami w terminalu? ... pytam, bo ja z kolei zrobiłem już któryś z kolei układ który pracuje z wewn oscylatorem 8MHz na Atmega8 lub ATtiny2313 i wykorzystuję UART'a z prędkością 9600. Dodam,...
witam, mam problem z przyciskami na porcie c, program nie reaguje na nie, na innych portach działa bez problemów, testowałem na 4 atmegach i na każdej jest to samo. Program jest bardzo łatwy po wciśnięciu przycisku wysyła odpowiednią liczbę na port TXD. AVCC jest podpięte do VCC, wszystko jest na płytce prototypowej. Co może przyczyną takiego zachowania...
Układ zasilam właśnie przez ft232rl z USB komputera. Pokazuje stabilne 5V. Co robi linijka UBRRL=51 - ustawia jakiś niski baud rate? Używam HyperSerialPort - nie wysyłam znaku nowej linii. Ten niski baudrate to właśnie Twoje 9600. :) BlueDraco - kontrolę przepływu mam ustawioną na None, ale wszystkie nieużywane piny (czyli między innymi DSR i CTS)...
Zakładam, że masz prawidłowo podłączony układ(np. echo działa) oraz odblokowany dostęp do portów com. Mniej więcej chyba o to chodzi. Kod PC z VisualStudio C#. Atmega8: [syntax=c]#include <avr/interrupt.h> volatile uint8_t USART_BUF[5] = {0x00, 0x00, 0x00, 0x00, 0x00}; volatile uint8_t read; volatile bool data = false; volatile USARTnum = 0; ISR(...
Przepraszam, długo nie odpisywałem. Oto kod którym się bawię: Nadajnik: [syntax=c] #include <avr\io.h> #define F_CPU 8000000 #define SCK 5 // SPI clock #define SDO 4 // SPI Data output (RFM12B side) #define SDI 3 // SPI Data input (RFM12B side) #define CS 2 // SPI SS (chip select) #define NIRQ 2 // (PORTD) #define HI(x) PORTB |= (1<<(x))...
Dzień dobry; Od niedawna testuję moduł GSM - sim900 wraz z uP atmega8(kwarc (110592). Moduł jak i atmegę zasilam z ok 3.8 V. Po zwarciu PWR_KEY z masą, dioda ładnie zaczyna migać. Na TXD atmegi zastosowałem dzielnik napięcia i uzyskałem 2,6V. Niestety pierwszy kłopot pojawia się przy próbie otrzymania odpowiedzi od modułu. Idea jest taka że wysyłam...
Witam. mam mały kłopot z przerwaniami w bootloaderze na wymienionym procesorze (dataszit o ile mnie oczy nie mylą, mowi ze adresacja sekcji pamieci flash jest taka sama jak w zwyklej atmedze8) proc ustawiony na wielkosc sekcji boot na 1024 słowa, po resecie wskakuje do bootloadera. program skompilowany pod 0xC00 czyli w makefile de facto adres .text...
Witam. Tak poradziłem sobie z uruchomieniem. Myślę, że warto opisać tutaj dokładnie co i jak z tym HC-05. A więc jeśli ktoś ma sam układ HC-05 bez dodatkowej płytki z goldpinami, to powinien podłączyć go według tego schematu: http://obrazki.elektroda.pl/7988822600_1... Oczywiście diody LED nie są konieczne. Jednak polecam podłączyć jedną...
Witam serdecznie. Jestem początkującym programistą mikrokontrolerów avr. Większość wiedzy czerpię z internetu, więc nie mam się kogo poradzić w sprawach merytorycznych odnośnie napotkanych problemów. Stąd prośba o pomoc na tym forum. Wymyśliłem sobie projekt współpracy modułu bluetooth HC-06 (były poruszane wątki tego modułu na tym forum) z Atmegą8A....
Hi, mam tu AT45DB321D, na kosci faktycznie cos takiego pisze. ATMEL 0746 45DB321D SW SOIC8. Probowalem pomiedzy 10MHz a 500KHz, te same stabilne odpowiedzi. Jedziemy na 20MHz CPU, ext crystal resonator. wszystko obejrzalem pod oscyloskopem, SPI z ATMEGA88 dziala, to nie pierwszy taki moj boj na SPI, wiec czytam sobie datasheet i co pisze: Manufacturer...
Witam, mam problem z wyjściem z pętli while w żądanym czasie, program zawiesza się lub po prostu nie reaguje na odebrane dane, próbowałem na różne sposoby: [syntax=cpp] if(c==1) { while(1) { PORTB = 0x00; PORTD = 0x00; PORTB = 0x04; //b1 _delay_ms(d); PORTB = 0x00; PORTD = 0x00; _delay_ms(e); if(data==w13w) continue; } if(c==1) { while(1) { PORTB =...
Witam. Mam mege64 i chcę sobie wysłać za jej pomocą pewne paczki danych do kompa. Jednak coś mi to za bardzo nie chciało chodzić . Więc wrzuciłem do procka taki program : $crystal = 8000000 Config Porta = &B11111111 : Porta = &B00000000 Config Portb = &B11100000 : Portb = &B00011111 Config Portc = &B11111100 : Portc = &B00000000 Config Portd...
Baudrate się nie zgadza ? ;) Spróbuj tego wsadu - idealny do testowania połączenia na ATmega8535 (kwarc - 11059200, baudrate - 19200) Pozdr. Light'I
Potestowałem na kilku układach. Wyniki są zadziwiające. Na jednym układzie z atmega8 programator zachowuje się normalnie. Na innej atmedze8 tylko raz na jakiś czas. Na jeszcze innych układach m8 i m32 zaskakuje raz na 20. Dla atmeg128 nie ruszyło do tej pory. Jutro jade do sklepu wymienić programator - może to pomoże.. BTW. w avrdude nie można jakoś...
Witam wszystkich Na wstepnie o tym co zrobilem...Zmontowalem ukladzik do zdalnej rejestracji temp, tzn. do Atmega8 podlaczylem 2 czujnik DS18B20 i siemensa s55...na sms'a o okreslonej tresci, pobierana jest temp. i wysylana nadawcy sms'a.... Uporalem sie z czujnikami i teraz siedze nad komunikcja z siemensem... Mam to zrobione na razie tak, ze kazdy...
Przy RS485 masy układów zawsze muszą być połączone, ze względu na dozwolone napięcie wspólne dla transceivera TMF - wszystko zależy tutaj od konstrukcji zasilaczy naszych urządzeń. Jeżeli układy zasilane są z zasilaczy transformatorowych to połączenie może być ale nie musi. W przypadku zasilania urządzeń z wbudowanego zasilacza impulsowego wielokrotnie...
Podłączyłem JTAGICE mkII do Atmega 32 w komercyjnym urządzeniu żeby ocenić czy procesor nie jest uszkodzony i jakiś cudem po moich eksperymentach procesor okazał się wyczyszczony. Przy pierwszych odczytach lock bity miały wartość 0xC0 (wszystko zablokowane), przy kolejnych zrobiło się 0xFF. Praktycznie urządzenie jest już stracone, procesor wyczyszczony...
witam Napisalem sobie taki programik do zdalnej rejestracji temp.. problem tkwi w tym ze po skompilowaniu zajmuje 8232 bajtow czyli troche za duzo jak na atmega8 (8192 bajtow). Czy da sie cos uproscic w tym kodzie zebym go zmiescil?? Prosze pomozcie.... /***************************************... Title: example program...
Witam, Ostatnio również ja, skuszony możliwościami układów rfm12, postanowiłem zakupić dwa moduły tego typu (433 MHz). Śledząc ten wątek natknąłem się na kod użytkownika avatar , postanowiłem wykorzystać go więc w mojej aplikacji. Niestety, po podłączeniu modułów do procesorów nie zachodzi żadna transmisja. Po pewnym czasie nierównej walki z w/w nasunęło...
Nie wiem jaka siła ciągnie mnie do tego aby przy tym cały czas grzebać zamiast zająć się czymś lepszym do roboty. Ale cóż, UDAŁO mi się nawiązać komunikację z programatorem. Wpisywałem różne prędkości (baudrate) i w końcu ustawiłem pewnie na właściwą. Ale teraz jest inny problem: dos(at)DoS-Aspire-7740:~$ sudo avrdude -p m88 -P /dev/ttyUSB0 -c avr910...
https://obrazki.elektroda.pl/1217361000_... Dzień dobry, Długo mnie tu nie było, ale wreszcie trafił się drobiażdżek, który jest elektrodowalny... Jak dobrze wiemy , jednym z największych problemów XXI wieku jest właśnie ten, że dla oszczędzenia paru marnych juanów producenci komputerów postanowili pozbawić je portu równoległego ,...
Witam Chce zastosować procesor ATmega48 do pracy, jako urządzenie komunikujące się ze światem zewnętrznym za pośrednictwem USARTa z baudrate 19200. Czy wewnętrzny generator 8Mhz po skalibrowaniu jest na tyle stabilny w zakresie temp. 10-50st.C że można go użyć do generowania sygnału dla USARTa? Na raz wysyłane czy odbierane będzie ok. 20 bajtów. Stosowanie...
tmf napisał: R-MIK napisał: rafels napisał: R-MIK napisał: I jeszcze pytanie. Jak był cela zastosowania oscylatora przy Mega48? Tak jak pisałem w opisie akurat miałem taki w zbiorach z wylutu 7,68MHz (nie miałem w zbiorach rezonatora o tej częstotliwości a chciałem takiej). Pytanie było po co w ogóle oscylator/kwarc, a nie wewnętrzny RC? Z prostej...
Od godziny próbuję rozkminić, jak przez UART'a przesłać bajty synchronicznie z zewnętrznym zegarem. Dokładnie dane mają być wysyłane/odbierane tak(przykłądowe 3 bajty: ATT -_______________________________________... | Byte 1 | | Byte 2 | | Byte 3 | CLOCK ---_-_-_-_-_-_-_-_-----_-_-_-_-_-_-_-_--... 0xFF 0x41 0x5A...
Witam. Wiem, że te problemy pojawiają się często, ale zwracam się do Was z prośbą o pomoc. Mam problem z komunikacją w Bascomie, otóż gdy każe prockowi np. print "TEKST" to w terminalu pojawiają się znaczki, zygzaczki, itp. Nic co byłoby podobne do mojej komendy. W czym może być problem? Dodam, że próbowałem komunikacji w różne sposoby; różne baudraty,...
Jestem początkujący w programowaniu mikrokontrolerów i mam problem z obsługą przerwań w Atmega8. Mam taki oto, bardzo prosty program znaleziony w sieci: #include <avr/io.h> #include <avr/delay.h> #include <avr/interrupt.h> #define F_CPU 1843200 #define USART_BAUDRATE 19200 #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE...
rs232 baudrate baudrate error baudrate 38400
klawiatura bezprzewodowa zrobić chrysler voyager zasilania zbiornik zużyty atrament canon
kosiarka ryobi regulacja głośności subwoofera
Wzmacniacz STK 402-930: Specyfikacja i Problemy Renault Espace 4 2.0 16V 2004 - brak iskry na świecach