Jak skonfigurować 16-bitowe taktowanie seriala z licznikiem T1 i uzyskać 31250, 38400?

[51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego





Poprzedni Następny
Wiadomość
Spis treści
From: Janko Muzykant <jankomuzykant_at_nospam_wp.pl>
Subject: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sat, 24 Jan 2004 00:07:51 +0100


Znowu pozawracam grupowe głowy ale jakoś nie mogę sobie poradzić a nie
znalazłem rozwiązania po sieci.

Problem:
Taktowanie seriala - normalnie robi się licznikiem T1 w trybie 2
(autoprzeładowanie).
Ale ja potrzebuję licznikiem T1 (nie T2!) narzucając mu TH1 i TL1
dowolne, z dokładnością 16 a nie 8 bitów (czyli w trybie pierwszym).
Jak to zrealizować sprzętowo? - wpisuję do SBUF, transmisja zaczyna
lecieć, licznik się przepełnia i... ?

Czy zostaje mi tylko wysyłanie programowe z wykorzystaniem licznika 16 bit?

Albo czy da się jakość uzyskać 31250 i 38400 (+-0,4%) z jednego kwarca,
bez T2 i sprzętowo?

--
pozdrawia Adam
muzyka, foto: http://www.adamsmialek.prv.pl/


========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.internetia.pl!news.man.poznan.pl!news.man.torun.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Nabielec" <eloy_at_nospam_tlen.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sat, 24 Jan 2004 16:01:06 +0100


Hej,

Ale ja potrzebuję licznikiem T1 (nie T2!) narzucając mu TH1 i TL1
dowolne, z dokładnością 16 a nie 8 bitów (czyli w trybie pierwszym).
Jak to zrealizować sprzętowo? - wpisuję do SBUF, transmisja zaczyna
lecieć, licznik się przepełnia i... ?

Taktuj po prostu uklad licznikiem w trybie 16 bitowym, a przeladowuj go
'recznie' w jego wlasnej procedurze obslugi przerwania.

Ladujesz TH1 i TL1. Wlaczasz przerwanie licznika T1 (EA+ET1) i puszczasz
licznik (ustawiasz TR1).
Jak sie przepelni to ustawi Ci się TF1 i wywola przerwanie licznika 1. Tam
wpisujesz nowe wartości TH1 i TL1.
Przy okazji przepelnianie licznika taktuje port szeregowy. Problem jest z
duzymi wartosciami (szybkie przepełnianie) - bo przeladowanie licznika pare
cykli potrwa.

Uzywanie licznika 16-bitowego do taktowania transmisji szeregowej słuzy
bardziej do wyciagania bardzo niskich predkości transmisji niz zwiekszania
rozdzielczosci. On liczy do 65536 zamiast do 256, co nie oznacza, ze
szybciej :)

Albo czy da się jakość uzyskać 31250 i 38400 (+-0,4%) z jednego kwarca,
bez T2 i sprzętowo?

Będzie ciężko.
Maksymalnie wyciągasz 57600bps i to przy SMOD=1 oraz liczniku
przepełniającym się co jeden cykl.

Trzeba by pokombinować z trybem pracy seriala innym niż 1 (3).
W grę wchodzi drugi, ale musiałbyś obniżyć taktowanie kwarcu, a tym samym
nie wyciągniesz obu prędkości.

Ja prostego rozwiazania nie widze (sprzetowego).
Programowo musialbys zmieniac stan TxD co 24 cykle (38400) lub co 29 albo 30
(31250). W tym drugim wypadku jednak nie wyciagniesz dokladnosci nawet rzedu
1%. [wszystko liczone dla kwarcu 11,0592].

Pozdrawiam

Piotrek





========
Path: news-archive.icm.edu.pl!news.rmf.pl!poznan.rmf.pl!news.man.poznan.pl!news.task.gda.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Janko Muzykant <jankomuzykant_at_nospam_wp.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sat, 24 Jan 2004 16:40:54 +0100


Taktuj po prostu uklad licznikiem w trybie 16 bitowym, a przeladowuj go
'recznie' w jego wlasnej procedurze obslugi przerwania.
> (...)

Oczywiście tak się da, tylko, że robimy przerwanie, które mi trochę nie
pasuje. Zasugerowałem się opisami w źródłach ''że w trybie drugim
najlepiej'' ale nie wspomniano, ze tylko w tym trybie mamy
autoprzeładowanie a co za tym idzie prosty sposób sterowania serialem.

Tak więc to co miał mi robić T2 będzie robiła procedurka na innym T a T2
będzie taktował seriala w trybie autorzeładowania obu bajtów - przy
dokładności dopuszczalnej <0,4% wyrobi się z zapasem.

Dzięki za pomoc.

--
pozdrawia Adam
muzyka, foto: http://www.adamsmialek.prv.pl/


========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news2.icm.edu.pl!news.task.gda.pl!news.man.torun.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Nabielec" <eloy_at_nospam_tlen.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sat, 24 Jan 2004 23:24:45 +0100


Hej,

Oczywiście tak się da, tylko, że robimy przerwanie, które mi trochę nie
pasuje. Zasugerowałem się opisami w źródłach ''że w trybie drugim
najlepiej'' ale nie wspomniano, ze tylko w tym trybie mamy
autoprzeładowanie a co za tym idzie prosty sposób sterowania serialem.

Tak więc to co miał mi robić T2 będzie robiła procedurka na innym T a T2
będzie taktował seriala w trybie autorzeładowania obu bajtów - przy
dokładności dopuszczalnej <0,4% wyrobi się z zapasem.

Oczywiscie w Twoim przypadku TRZEBA uzyc T2 jesli w ogole chcesz to zrobic
-)

Problem nie wynika z wywolywania przerwania tylko z taktowania ukladu portu
szeregowego.
W przypadku korzystania z licznika T1 impulsy z oscylatora po podzieleniu
przez 12 (czyli po zrobieniu z nich cykli) wchodza na licznik ktory liczy do
16 (32 dla SMOD=0) i jego przepelnienie to jeden takt dla ukladu portu
szeregowego.
W takim razie wyciagasz predkosc transmisji = fosc / (12 * 16 *
czestotliwosc_przepelniania_T1).
Jakiego trybu bys nie uzyl przepelnianie T1 co 1 cykl daje Ci 57600bps
(SMOD=1), a juz co 2 o polowe mniejsza predkosc 28800. Nic posrodku zadna
metoda sprzetowa nie jestes w stanie wyciagnac [11,0592MHz]

Nie chodzi wiec o zwiekszenie ilosci bitow, czy generowanie przerwania, ale
zwiekszenie czestotliwosci taktowania seriala.
Gdy seriala (w trybach 1 lub 3) taktuje licznik T2 to czestotliwosc
oscylatora jest dzielona w sumie tylko przez 32 (a nie 192) - to zwieksza
'rozdzielczosc' taktowania szesciokrotnie!
I nie wynika to z budowy licznikow tylko ze specyfiki taktowania portu
szeregowego tymi licznikami.

Przy kwarcu 11,0592MHz swoje 38400bps wyciagniesz dla RCAP2=65527, a
31250bps dla RCAP2=65525. Dla tej drugiej predkosci blad mi wychodzi 0,54%,
a wiec nie wiem jak chcesz wyciagnac te '<0,4% z zapasem' ;-)

Pozdrawiam

Piotrek




========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news2.icm.edu.pl!pwr.wroc.pl!panorama.wcss.wroc.pl!news.man.poznan.pl!news.man.torun.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Nabielec" <eloy_at_nospam_tlen.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sat, 24 Jan 2004 23:58:53 +0100


Hej,

Tak więc to co miał mi robić T2 będzie robiła procedurka na innym T a T2
będzie taktował seriala w trybie autorzeładowania obu bajtów - przy
dokładności dopuszczalnej <0,4% wyrobi się z zapasem.

Pomeczylem temat :-)
Wyszlo idealnie dla kwarcu 16MHz i
RCAP2=65520 (idealnie 31250bps) oraz
RCAP2=65523 (odchyłka +0,16% względem 38400bps)

Chyba, ze masz inne parametry to chetnie poslucham :-)


Pozdrawiam

Piotrek




========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.task.gda.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Janko Muzykant <jankomuzykant_at_nospam_wp.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sun, 25 Jan 2004 12:10:53 +0100


W serii S52 mamy możliwość pracy T2 jako generator impulsów na P1.0
We wzorze określającym częstotliwość mamy w mianowniku nie 32 lecz 4, co
znacznie zwiększa rozdzielczość.
I tak dla 6MHz i (65536-RCAP2)=48 wychodzi dokładnie 31250,
dla(65536-RCAP2)=39 wychodzi 38461,53 czyli +0,16% względem zamierzonego
34800.

Czy przy podłączeniu pod serial częstotliwość impulsów na P1.0 podzieli
sie jeszcze 8 razy (co by wynikało na wzór na prędkość transmisji)?
(Jeszcze tego nie sprawdziłem a w materiałach nie mogę znaleźć).

--
pozdrawia Adam
muzyka, foto: http://www.adamsmialek.prv.pl/


========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news2.icm.edu.pl!news.man.torun.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Nabielec" <eloy_at_nospam_tlen.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sun, 25 Jan 2004 14:07:04 +0100


Hej,

W serii S52 mamy możliwość pracy T2 jako generator impulsów na P1.0
We wzorze określającym częstotliwość mamy w mianowniku nie 32 lecz 4, co
znacznie zwiększa rozdzielczość.

Hm. W dokumentacji nic nie znalazlem na temat mozliwosci taktowania tym
trybem ukladu portu szeregowego. Trzeba by to sprawdzic :)

Czy przy podłączeniu pod serial częstotliwość impulsów na P1.0 podzieli
sie jeszcze 8 razy (co by wynikało na wzór na prędkość transmisji)?
(Jeszcze tego nie sprawdziłem a w materiałach nie mogę znaleźć).

Serial z samej swojej zasady taktowania sygnalem zewnetrznym dzieli
czestotliwosc przez 16 lub 32 (SMOD=0). Gdy go taktujesz licznikiem T2 w
trybie 'baud generator' to na serial wchodzi czestotliwosc oscylatora / 2.
Stad wychodzi te fosc/32.
Widac to dokladnie na 'Figure 4 - Timer 2 in Baud Rate Generator Mode' w
datasheecie S52.

Co do trybu 'programmable clock out' licznika T2 to nie ma ani slowa o
mozliwosci uzycia go do taktowania portu szeregowego, ale z samej zasady
wydaje mi sie, gdyby nawet udalo sie jakos taktowac tym trybem port
szeregowy to, ze czestotliwosc ta (fosc/4) podzieli sie jeszcze przez 16.
Moge sie mylic, bo nie sprawdzalem i nic o tym nie wiem. Mysle, ze pozostaje
sprawdzic w praktyce :-)

Pozdrawiam

Piotrek




========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!news.task.gda.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Janko Muzykant <jankomuzykant_at_nospam_wp.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sun, 25 Jan 2004 15:18:48 +0100


W serii S52 mamy możliwość pracy T2 jako generator impulsów na P1.0
We wzorze określającym częstotliwość mamy w mianowniku nie 32 lecz 4, co
znacznie zwiększa rozdzielczość.

Hm. W dokumentacji nic nie znalazlem na temat mozliwosci taktowania tym
trybem ukladu portu szeregowego. Trzeba by to sprawdzic :)

Już znalazłem odpowiedź - owszem, mamy podział przez 4 dla wyjścia i
jeszcze przez 8 (a ściślej przez 16 zza podziału przez 2) dla seriala.
Czyli pupa :(
Jak by tego dzielnika nie mogli ominąć jakimś bitem z sfr-a...

No nic, wychodzi T1 w modzie 1 z ładowaniem wartości początkowych w
obsłudze przerwania licznika - właściwie nie problem tylko, że nie
miałem do tej pory takiej potrzeby więc pytałem (zwykle to do seriala
dobierało się kwarc). Dzieki za pomoc.

--
pozdrawia Adam
muzyka, foto: http://www.adamsmialek.prv.pl/


========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sun, 25 Jan 2004 19:07:54 +0100


On Sat, 24 Jan 2004 23:58:53 +0100, Piotr Nabielec wrote:
Pomeczylem temat :-)
Wyszlo idealnie dla kwarcu 16MHz i
RCAP2=65520 (idealnie 31250bps) oraz
RCAP2=65523 (odchyłka +0,16% względem 38400bps)


Moge prosic o wyliczenia, bo nijak mi nie pasuje.

P.S. IMHO - 12MHz, i nie trzeba zadnych trybow 16 bit .
moze tez byc 6,18,24MHz

J.


========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news2.icm.edu.pl!news.man.torun.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Nabielec" <eloy_at_nospam_tlen.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sun, 25 Jan 2004 21:56:19 +0100


Pomeczylem temat :-)
Wyszlo idealnie dla kwarcu 16MHz i
RCAP2=65520 (idealnie 31250bps) oraz
RCAP2=65523 (odchyłka +0,16% względem 38400bps)

Moge prosic o wyliczenia, bo nijak mi nie pasuje.

P.S. IMHO - 12MHz, i nie trzeba zadnych trybow 16 bit .
moze tez byc 6,18,24MHz

Jasne, ze mozna.
Oparlem sie o kwarc 16MHz i licznik T2 pracujacy w trybie 'baud rate'.
Czestotliwosc fosc podzielona przez 2 taktuje uklad portu szeregowego. Ten
dodatkowo dzieli to przez 16 dla SMOD=1. W zwiazku z tym predkosc transmisji
= fosc/[32 * (65536 - RCAP2)]

Dla RCAP2=65520 licznik liczy do 16 i sie przepelnia, w zwiazku z tym
predkosc = 16,000,000 / [32 * 16] = 31250.
Dla RCAP2=65523 licznik liczy do 13 i sie przepelnia, w zwiazku z tym
predkosc = 16,000,000 / [32 * 13] = 38461,5


Hm. A jak dla kwarca 6MHz chcesz wyciagnac obie predkosci tzn. i 31250 i
38400 ?!
[ zakladamy, ze wszystko dzieje sie na S52 ]

Pozdrawiam

Piotrek




========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: J.F. <jfox_nospam_at_nospam_poczta.onet.pl>
Subject: Re: [51] serial a 16-bitowa rozdzielczosc sygnalu taktujacego
Date: Sun, 25 Jan 2004 22:47:15 +0100


On Sun, 25 Jan 2004 21:56:19 +0100, Piotr Nabielec wrote:
P.S. IMHO - 12MHz, i nie trzeba zadnych trybow 16 bit .
moze tez byc 6,18,24MHz

Hm. A jak dla kwarca 6MHz chcesz wyciagnac obie predkosci tzn. i 31250 i
38400 ?! [ zakladamy, ze wszystko dzieje sie na S52 ]

Sorry, zle pisze, pogubilem sie.
Tak sie zasugerowalem ze zgubiles gdzies /12, ze sam zgubilem /16 ..


Starosc nie radosc..


J.


========
Path: news-archive.icm.edu.pl!news.rmf.pl!poznan.rmf.pl!news.man.poznan.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai