Zgodność czasów dla RS w Atmelu z użyciem taktowania 12 MHz - wyliczenia baud rate

Atmel i RS





Poprzedni Następny
Wiadomość
Spis treści
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 |
+===============*==================================+



Poprzedni Następny
Wiadomość
Spis treści
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



Poprzedni Następny
Wiadomość
Spis treści
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 |
+===============*==================================+



Poprzedni Następny
Wiadomość
Spis treści
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    |
> +===============*==================================+


Poprzedni Następny
Wiadomość
Spis treści
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.


Poprzedni Następny
Wiadomość
Spis treści
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


Poprzedni Następny
Wiadomość
Spis treści
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.


Poprzedni Następny
Wiadomość
Spis treści
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