Zgodność czasów dla RS w Atmelu z użyciem taktowania 12 MHz - wyliczenia baud rate
Atmel i RS
From: Marian Guc <mguc_at_nospam_poczta.wp.pl>
Subject: Atmel i RS
Date: Mon, 18 Jun 2001 10:21:12 +0200
Mam taki program:
Chciałbym oprogramować RS w atmelu. Mam tylko jeden mały problemik:
wszystkie dostępne mi źródła podajš czasy dla licznika taktujšcego
wysyłanie/odbieranie
danych dla taktowania 11,0592MHz, tymczasem ja mam 12MHz /i tak musi
zostać/
Jak wyliczyć czasy dla licznika? (baud = ...)
--
Z pozdrowieniami
Marian Guc GG:812853
+===============*==================================+
| MAG from MAAG | A1200/EBox OS3.9 BPPC-200/040-25 |
| mguc_at_nospam_wp.pl | FastATA & Mediator + Voodo3 |
+===============*==================================+
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: Atmel i RS
Date: Mon, 18 Jun 2001 13:56:49 +0200
"Marian Guc" <mguc_at_nospam_poczta.wp.pl> wrote in message
news:3B2DB9F8.DC8A5DE9_at_nospam_poczta.wp.pl...
...
Chciałbym oprogramować RS w atmelu. Mam tylko jeden mały problemik:
wszystkie dostępne mi źródła podajš czasy dla licznika taktujšcego
wysyłanie/odbieranie
danych dla taktowania 11,0592MHz, tymczasem ja mam 12MHz /i tak musi
zostać/
Jak wyliczyć czasy dla licznika? (baud = ...)
Jesli musi zostac 12 MHz to nie uda Ci sie zrobic wyzszych
typowych predkosci transmisji
o ile pamietam czest. kwarcu jest dzielona przez 12
a potem zanim trafi do taktowania jeszcze przez 16
daje to 192
nastepnie od stanu ktorejs flagi chyba w rej. PCON
dzielone jest jeszcze przez 2
potem dzielone jest przez przekrecenie timera
czyli jesli w timerze FF to dzielone przez 1
jesli w timerze FE to dzielone przez 2
itd.
czyli np 11 059 200 / 192 = 57600
to jes max predkosc dla tego kwarcu
zeby policzyc inne dzielisz sobie 57600 przez zadana predkosc
jelsi chcesz 9600 to
57600 / 9600 = 6
do timera wpisujesz 256 - 6 = 250 (0FAh)
---------------
niestety dla kwarcu 12 MHz
12 000 000 / 192 = 62500 baud
i to 62500 mozesz dzielic tylko przez liczby calkowite
bo innych do rejestru nie wpiszesz
dla 2400 baud mozesz dzielic przez 26
62500 / 26 = 2403 baud
wychodzi niedokladnie ale zmiesci sie w tolerancji
natomiast 9600 chyba nie uda sie uzyskac
poniewaz:
62500 / 6 = 10416.(6) baud
62500 / 7 = 8928.57... baud
nie wiem czy czegos nie pomieszalem bo pisalem z glowy
ale jedeno jest pewne przy 12 MHz uzyskasz najwyzej 2400
z typowych predkosci
nie bedzie problemu jesli maja sie komunikowac ze soba
dwie 51 i obie maja 12 MHz
Andrzej
From: Marian Guc <mguc_at_nospam_poczta.wp.pl>
Subject: Re: Atmel i RS
Date: Mon, 18 Jun 2001 14:34:30 +0200
Andy wrote:
[..]nie wiem czy czegos nie pomieszalem bo pisalem z glowy
ale jedeno jest pewne przy 12 MHz uzyskasz najwyzej 2400
z typowych predkosci
Andrzej
Teraz już wiem wszystko .... Dzięki
--
Z pozdrowieniami
Marian Guc GG:812853
+===============*==================================+
| MAG from MAAG | A1200/EBox OS3.9 BPPC-200/040-25 |
| mguc_at_nospam_wp.pl | FastATA & Mediator + Voodo3 |
+===============*==================================+
From: Wojciech Markowski <wmr_at_nospam_krakus.top.pl>
Subject: Re: Atmel i RS
Date: Tue, 19 Jun 2001 10:56:04 +0200
Nie mniej jednak przyjete jest, ze blad przy transmisji asynchronicznej
w granicach 1% jest tolerowany.
Marian Guc wrote:
Andy wrote:
[..]nie wiem czy czegos nie pomieszalem bo pisalem z glowy
ale jedeno jest pewne przy 12 MHz uzyskasz najwyzej 2400
z typowych predkosci
Andrzej
Teraz już wiem wszystko .... Dzięki
--
> Z pozdrowieniami
>
> Marian Guc GG:812853
> +===============*==================================+
> | MAG from MAAG | A1200/EBox OS3.9 BPPC-200/040-25 |
> | mguc_at_nospam_wp.pl | FastATA & Mediator + Voodo3 |
> +===============*==================================+
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: Atmel i RS
Date: 19 Jun 2001 12:58:37 GMT
On Tue, 19 Jun 2001 10:56:04 +0200, Wojciech Markowski <wmr_at_nospam_krakus.top.pl> wrote:
Nie mniej jednak przyjete jest, ze blad przy transmisji asynchronicznej
w granicach 1% jest tolerowany.
Nawet sporo wiecej. Poczatek probkowania jest synchronizowany bitem
startu, a staramy sie probkowac w polowie bitu. Na 10 bitach
mozna sie wiec rozjechac prawie o pol bitu, i trzeba spore dzwonki
i niedopasowania zeby sygnal 9600 po 15 m kabla nie byl stabilny.
J.
From: Miroslaw Kwasniak <pisz_do_mnie_na_mirek.kwasniak_at_nospam_dionizos.zind.ikem.pwr.wroc.pl>
Subject: Re: Atmel i RS
Date: 20 Jun 2001 06:43:15 GMT
J.F. <jfox_at_nospam_friko6.onet.pl> wrote:
Nie mniej jednak przyjete jest, ze blad przy transmisji asynchronicznej
w granicach 1% jest tolerowany.
JF>
JF>Nawet sporo wiecej. Poczatek probkowania jest synchronizowany bitem
JF>startu, a staramy sie probkowac w polowie bitu. Na 10 bitach
JF>mozna sie wiec rozjechac prawie o pol bitu, i trzeba spore dzwonki
JF>i niedopasowania zeby sygnal 9600 po 15 m kabla nie byl stabilny.
Na pewno nie sporo, ale to też zależy od konstrukcji strony odbiorczej.
Nie pamiętam skąd to wziąłem (i mogę się mylić w szczegółach):
Odbiornikiem jest układ typu 82450/16550:
Poziom sygnału jest próbkowany 16x/bit, komparator (cyfrowy) zadziała,
jeżeli błąd będzie nie większy niż 4 próbki = 4/16 = 25%. Bitów w znaku jest
typowo 10 (start+8+stop): 25%/10 = 2.5%. Przyjmując, że tolerancja jest
wykożystywana przez obie strony (nadajnik i odbiornik oraz ewentualne
zafalowania w kablu) to uzyskamy wspomniany 1%.
Jeżeli odbiornik jest nietypowy, to problemy mogą być inne :)
Mirek
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: Atmel i RS
Date: Mon, 18 Jun 2001 22:03:15 GMT
On Mon, 18 Jun 2001 13:56:49 +0200, Andy wrote:
[...]
11,0592MHz, tymczasem ja mam 12MHz /i tak musi zostać/
[...]
dla 2400 baud mozesz dzielic przez 26
62500 / 26 = 2403 baud
wychodzi niedokladnie ale zmiesci sie w tolerancji
natomiast 9600 chyba nie uda sie uzyskac
nie wiem czy czegos nie pomieszalem bo pisalem z glowy
Dobrze pamietasz.
ale jedeno jest pewne przy 12 MHz uzyskasz najwyzej 2400
z typowych predkosci
4800 jeszcze uzyskasz - bo jak podzielisz przez 13 to wyjdzie prawie
dokladnie. Niestety - 9600 to by musialobyc prawie 6.5 - czyli
wyskoczy poza tolerancje.
J.
From: "Maciej Wywrocki" <wywrocki_at_nospam_pnet.pl>
Subject: Re: Atmel i RS
Date: Mon, 18 Jun 2001 21:41:11 +0200
Użytkownik "Andy" <anok_at_nospam_ceti.pl> napisał w wiadomości
news:9gkrn4$rjv$1_at_nospam_news.tpi.pl...
Jesli musi zostac 12 MHz to nie uda Ci sie zrobic wyzszych
typowych predkosci transmisji
W 80C515 można skorzystac z dzielnika 1:39 (bit BD = 1). Wówczas ftr =
fosc*2^SMOD/2496, co dla kwarcu 12MHz daje 4800 i 9600 bps. Dla 4800
(teoretycznie 4807,7) próbowałem - słyszy i jest słyszany, nie wiem jak dla
9600.
Mw