Atmega16 i Uart
Masz problem? Zapytaj na forum elektroda.pl
From: "Tomaszek" <tomaszek_at_nospam_pose_no_spam_jdon.wpk.p.lodz.pl>
Subject: Atmega16 i Uart
Date: Tue, 27 May 2003 14:06:21 +0200
Witam.
Prosty układ - AVR Atmega16 + Max232. Problem polega na tym iż to co sobie
odbieram na terminalu nie pokrywa się z tym co wysyłam i co najdziwniejsze
tylko po części. Około 60% znaków jest odbierana poprawnie. Sprawdzałem na
wew. oscylatorze (podejrzenie padło na kwarc) ale tu jest niewiele lepiej.
Wspołczynnik trafień wzrósł do 80%. Próbowałem z różnymi prędościami (9600,
2400, 1200 ) bez zmian. Podejrzewam ze moze źle inicjuje UART'a. Wykonałem
nawet tak jak zaleca Atmel w dokumentacji do Atmegi 16 - bez zmian. Uwalenie
procka raczej odpada - programuje się itp. Może piny TxD ? To wtedy nic by
nie nadał... sam nie wiem. Może ktoś mi podpowie gdzie szukać ?
--
Pozdrawiam !
Tomaszek
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.polbox.pl!not-for-mai
From: "Marek" <marek_at_nospam_ploszaj.com>
Subject: Re: Atmega16 i Uart
Date: Tue, 27 May 2003 14:16:27 +0200
Użytkownik "Tomaszek" <tomaszek_at_nospam_pose_no_spam_jdon.wpk.p.lodz.pl> napisał w
wiadomości news:bavkas$oku$1_at_nospam_news.onet.pl...
Witam.
Prosty układ - AVR Atmega16 + Max232. Problem polega na tym iż to co sobie
odbieram na terminalu nie pokrywa się z tym co wysyłam i co najdziwniejsze
tylko po części. Około 60% znaków jest odbierana poprawnie. > --
Pozdrawiam !
Tomaszek
jaki kwarc?
Marek
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Tomaszek" <tomaszek_at_nospam_pose_no_spam_jdon.wpk.p.lodz.pl>
Subject: Re: Atmega16 i Uart
Date: Tue, 27 May 2003 14:36:14 +0200
Początkowo było to 8MHz potem sprawdziłem na 11,... MHz a na końcu na wew
oscylatorze 4Mhz.
========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Sławek" <slawomir.kacprzak_at_nospam_wp.pl>
Subject: Re: Atmega16 i Uart
Date: Tue, 27 May 2003 14:24:47 +0200
Witam.
Prosty układ - AVR Atmega16 + Max232. Problem polega na tym iż to co sobie
odbieram na terminalu nie pokrywa się z tym co wysyłam i co najdziwniejsze
tylko po części. Około 60% znaków jest odbierana poprawnie. Sprawdzałem na
wew. oscylatorze (podejrzenie padło na kwarc) ale tu jest niewiele lepiej.
Wspołczynnik trafień wzrósł do 80%. Próbowałem z różnymi prędościami
(9600,
2400, 1200 ) bez zmian. Podejrzewam ze moze źle inicjuje UART'a. Wykonałem
nawet tak jak zaleca Atmel w dokumentacji do Atmegi 16 - bez zmian.
Uwalenie
procka raczej odpada - programuje się itp. Może piny TxD ? To wtedy nic by
nie nadał... sam nie wiem. Może ktoś mi podpowie gdzie szukać ?
Witam,
Zobacz rejestr UCSRC czy nie masz przypadkiem ustawionego innego niż 8-bitów
długości bajtu. Jeżeli programujesz w Bascomie to on zmienia po załączeniu
zasilania na 5-bitów (zeruje rejestry).
pozdrawiam
Sławek
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Tomaszek" <tomaszek_at_nospam_pose_no_spam_jdon.wpk.p.lodz.pl>
Subject: Re: Atmega16 i Uart
Date: Tue, 27 May 2003 14:45:42 +0200
|
| Witam,
| Zobacz rejestr UCSRC czy nie masz przypadkiem ustawionego innego niż
8-bitów
| długości bajtu. Jeżeli programujesz w Bascomie to on zmienia po załączeniu
| zasilania na 5-bitów (zeruje rejestry).
|
| pozdrawiam
|
| Sławek
|
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00; //4MHz - 9600 dla wew. RC
UBRRL=0x19;
Czyli raczej jest to 9600 8n1
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed.silweb.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Sławek" <slawomir.kacprzak_at_nospam_wp.pl>
Subject: Re: Atmega16 i Uart
Date: Tue, 27 May 2003 16:27:17 +0200
|
| Witam,
| Zobacz rejestr UCSRC czy nie masz przypadkiem ustawionego innego niż
8-bitów
| długości bajtu. Jeżeli programujesz w Bascomie to on zmienia po
załączeniu
| zasilania na 5-bitów (zeruje rejestry).
|
| pozdrawiam
|
| Sławek
|
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00; //4MHz - 9600 dla wew. RC
UBRRL=0x19;
Czyli raczej jest to 9600 8n1
Witam,
U mnie ATmega16 pracuje bez problemów.
Czy mógłbys podać ogólny algorytm programu, może tu coś jest nie tak.
Może coś nie tak z przerwaniami.
Pod czym programujesz?
pozdrawiam
Sławek
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Tomaszek" <tomaszek_at_nospam_pose_no_spam_jdon.wpk.p.lodz.pl>
Subject: Re: Atmega16 i Uart
Date: Tue, 27 May 2003 17:16:30 +0200
| Witam,
|
| U mnie ATmega16 pracuje bez problemów.
| Czy mógłbys podać ogólny algorytm programu, może tu coś jest nie tak.
| Może coś nie tak z przerwaniami.
| Pod czym programujesz?
|
| pozdrawiam
|
| Sławek
|
Witam !
Fragment inicjalizujący:
UBRRH &= 0b01110000; //- 9600 dla 11MHZ
UBRRL = 0x47; //9600 dla 11,5972
UCSRC = 0x86;
UCSRB = 0x08;
Procedura nadająca znak:
void USART_Transmit( unsigned char dana )
{
while (!(UCSRA & 0x20))
;
UDR = dana;
}
Tak sie wlasnie zastanawiam czy wyluskiwana flaga UDRE z rejestru UCSRA
zachowuje sie poprawnie. Wlasnie studiuje pdf'a. Wg dokumentacji jest ok.
Nie stosuje przerwania i pytanie czy nie trzeba ją (flage) po wyslaniu znaku
recznie przestawić ? Programuje spod CodeVision, ale to chyba nie ma
znaczenia.
Tomaszek
========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Sławek" <slawomir.kacprzak_at_nospam_wp.pl>
Subject: Re: Atmega16 i Uart
Date: Tue, 27 May 2003 17:41:00 +0200
| Witam,
|
| U mnie ATmega16 pracuje bez problemów.
| Czy mógłbys podać ogólny algorytm programu, może tu coś jest nie tak.
| Może coś nie tak z przerwaniami.
| Pod czym programujesz?
|
| pozdrawiam
|
| Sławek
|
Witam !
Fragment inicjalizujący:
UBRRH &= 0b01110000; //- 9600 dla 11MHZ
UBRRL = 0x47; //9600 dla 11,5972
UCSRC = 0x86;
UCSRB = 0x08;
Procedura nadająca znak:
void USART_Transmit( unsigned char dana )
{
while (!(UCSRA & 0x20))
;
UDR = dana;
}
Tak sie wlasnie zastanawiam czy wyluskiwana flaga UDRE z rejestru UCSRA
zachowuje sie poprawnie. Wlasnie studiuje pdf'a. Wg dokumentacji jest ok.
Nie stosuje przerwania i pytanie czy nie trzeba ją (flage) po wyslaniu
znaku
recznie przestawić ? Programuje spod CodeVision, ale to chyba nie ma
znaczenia.
Witam,
Ja raczej używam flag informujących o odebraniu RXC lub nadaniu TXC znaku. Z
flagą UDRE trzeba uważać, miałem z nią problem (czytaj umiejętnie stosować,
raczej do zaawansowanych aplikacji).
pozdrawiam
Sławek
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "Tomaszek" <tomaszek_at_nospam_pose_no_spam_jdon.wpk.p.lodz.pl>
Subject: Re: Atmega16 i Uart
Date: Tue, 27 May 2003 18:11:53 +0200
Uffff zrobilem.... okazało się za MAX232 tak sie uwalił ze czasem działało a
czasem nie... zrobilem obejście w postaci pajączka do innej PCB i działa.
Dziękuje Sławkowi i Markowi za podpowiedzi.
Pozdrawiam
Tomaszek
========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.p