Wysyłanie danych przez USART na ATmega8 ? konfiguracja i testy z RS232
ATmega8 + USART/UART
From: "Mes" <adramelech[]_at_nospam_poczta.onet.pl>
Subject: ATmega8 + USART/UART
Date: Sat, 19 Mar 2005 20:55:37 +0100
Witam,
probuje wyslac doslownie cokolwiek po RS'ie przy pomocy tego procka (clk
8MHz)
Inicjuje wiec UART w ten sposob:
void initusart(void)
{
/* Set baud rate */
UBRRL = 0x0c; //set baud rate lo - 12 czyli dla 8 MHz wychodzi predkosc
38,4kbps
UBRRH = 0x00; //set baud rate hi
/* Enable Receiver and Transmitter */
UCSRB = (1<<RXEN) | (1<<TXEN);
/* Set frame format: 8data, 1stop bit */
UCSRC = (1<<URSEL) | (1<<UCSZ1) | (1<<UCSZ0);
}
fragment maina w ktorym wysylam jeden znak wyglada nastepujaco:
int main(void)
{
.......................
initusart();
sei();
UCSRB=1<<RXCIE|1<<TXCIE;
for(i=1;i<5;i++)
{
while ( !( UCSRA & (1<<UDRE)) ); //tutaj czekam az UDR sie zwolni
UDR=0x33; //jakis byle jaki znak
}
}
Niestety hyper terminal nie odbiera absolutnie nic ani mru mru. Kabel jest
na pewno dobry bo dziala wysylanie przy AT2313. Czy widzicie jakis oczywisty
blad ktory robie? Czy moze to wina sprzetu?Padniety MAX232 albo cus?
Pozdrawiam
Mesayah
From: "Goju" <emdz_at_nospam_poczta.onet.pl>
Subject: Re: ATmega8 + USART/UART
Date: Sat, 19 Mar 2005 21:26:42 +0100
a czy napewno chodzi na 8Mhz?
nowe ATmegi mają ustawione taktowanie z oscylatora wewnętrznego.
Goju
From: "Krzysztof" <krzysztof.gedroycWYTNIJ_TO_at_nospam_wp.pl>
Subject: Re: ATmega8 + USART/UART
Date: Sun, 20 Mar 2005 00:31:12 +0100
a czy napewno chodzi na 8Mhz?
nowe ATmegi mają ustawione taktowanie
z oscylatora wewnętrznego.
A jak to zrobić? W datasheet'cie jest mowa o ustawianiu
bitów CKSEL3..0 i CKOPT, ale w jakim rejestrze tego szukać...?!
Może jakiś przykład?
Pzdr.
K.
From: "Michal" <mi15_at_nospam_poczta.onet.pl>
Subject: Re: ATmega8 + USART/UART
Date: Sun, 20 Mar 2005 09:38:43 +0100
A jak to zrobić? W datasheet'cie jest mowa o ustawianiu
bitów CKSEL3..0 i CKOPT, ale w jakim rejestrze tego szukać...?!
Może jakiś przykład?
A jakim programem programujesz ATmege ??? jesli robisz to PONY PROG to tam
jest zakladka
COMMAND ---
Security and Configuration Bits.....
tam sie to robi : )
Tylko uwazaj bo bit ustawiony na '0' to jest zanznaczony. Poczytaj dokladnie
w pdf'ie
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: ATmega8 + USART/UART
Date: Sun, 20 Mar 2005 18:07:06 +0100
Krzysztof wrote:
a czy napewno chodzi na 8Mhz?
nowe ATmegi mają ustawione taktowanie
z oscylatora wewnętrznego.
A jak to zrobić? W datasheet'cie jest mowa o ustawianiu
bitów CKSEL3..0 i CKOPT, ale w jakim rejestrze tego szukać...?!
Chodzi o fusebity, ustawiane programatorem. Jakiego uzywasz do wciskania
kodu programu do ATmegi?
Sprobuj zalozyc, ze procesor ma 1 MHz, przelicz predkosc transmisji i
sprawdz, czy dziala poprawnie przy takich zalozeniach.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: "Krzysztof" <krzysztof.gedroycWYTNIJ_TO_at_nospam_wp.pl>
Subject: Re: ATmega8 + USART/UART
Date: Sun, 20 Mar 2005 18:17:48 +0100
Chodzi o fusebity, ustawiane programatorem. Jakiego uzywasz do
wciskania kodu programu do ATmegi?
Korzystam z PonyProg'a.
W stosunku do czego należy zachować najdalej posuniętą ostrożność?
Których bitów _na pewno_ nie należy ruszać?
Pzdr.
K.
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: ATmega8 + USART/UART
Date: Sun, 20 Mar 2005 18:25:36 +0100
Krzysztof wrote:
Chodzi o fusebity, ustawiane programatorem. Jakiego uzywasz do
wciskania kodu programu do ATmegi?
Korzystam z PonyProg'a.
W stosunku do czego należy zachować najdalej posuniętą ostrożność?
Których bitów _na pewno_ nie należy ruszać?
Nie ruszaj wylaczania resetu (RSTDIS czy jakos tak). Gdy go zmienisz,
procesor da sie zaprogramowac juz tylko programatorem rownoleglym.
W ogole najpierw poczytaj PDFa i ustal, co chcesz ustawic (np.
taktowanie generatorem wewnetrznym z podlaczonym rezonatorem kwarcowym 8
MHz). Dopiero potem zmieniaj fusebity ustalajace taktowanie. W
najgorszym przypadku bedzie potrzebne podlaczenie zewn. generatora aby
"obudzic" procesor.
Poza tym 8 MHz niespecjalnie nadaje sie do dokladnego taktowania
transmisji RS232, lepiej wlutuj 7,3728 MHz.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: "Mes" <adramelech[]_at_nospam_poczta.onet.pl>
Subject: Re: ATmega8 + USART/UART
Date: Tue, 22 Mar 2005 17:01:38 +0100
W swoim poscie Goju pado:
a czy napewno chodzi na 8Mhz?
nowe ATmegi mają ustawione taktowanie z oscylatora wewnętrznego.
Goju
Ehhh a ja w blogiej nieswiadomosci zyjac konfigurowalem sobie transmisje dla
8MHz :) Miales racje taktowalem go wewnetrznym RC
Teraz myka
Dzieki i pozdrawiam
Mesayah