liczniki w '51



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "D4n1el" <d4n1el_at_nospam_poczta.onet.pl>
Subject: liczniki w '51
Date: Thu, 14 Nov 2002 20:40:17 +0100


Witam!

Pytanie wyglada nastepujaco:
Co dokladnie licza liczniki (w trybie zliczania impulsow wew) w 8051?
W jaki sposob wyliczyc czas potrzebny do prawidlowego odbioru(nadania)
informacji
wyslanej(odebranej) z(na) kompa przez rs'a dla okreslonej predkosci
transmisji ?
Na 'chlopski' rozum biorac nie wychodzi jak trza... :/ Tzn odbiera, ale nie
wyglada to tak jak powinno.
Wyliczone czasy dalece odbiegaja od rzeczywistego czasu pracy licznika :/

Bylbym wdzieczny za wszelka pomoc i z gory dziekuje. :)

PS. w archiwum nie znalazlem konkretnej odpowiedzi ; nie chodzi rowniez o
bascoma. , tylko o program w assemblerze.

--
------
Pozdrawiam
Daniel Filipek
d4n1el_at_nospam_poczta.onet.pl
GG 279761



Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: liczniki w '51
Date: Thu, 14 Nov 2002 21:02:48 +0100


Użytkownik "D4n1el" <d4n1el_at_nospam_poczta.onet.pl> napisał w wiadomości
news:ar0u7e$23q$1_at_nospam_news.tpi.pl...
Witam!

Pytanie wyglada nastepujaco:
Co dokladnie licza liczniki (w trybie zliczania impulsow wew) w 8051?
W jaki sposob wyliczyc czas potrzebny do prawidlowego odbioru(nadania)
informacji
wyslanej(odebranej) z(na) kompa przez rs'a dla okreslonej predkosci
transmisji ?
...

hmm...
chcesz zliczac impulsy zewnetrzne czy taktowac rejestr
przesuwny portu szeregowego ?

jesli chodzi o taktowanie portu to przekrecanie licznika
powoduje wysuwanie bitow w porcie szeregowym



Andrzej




Poprzedni Następny
Wiadomość
Spis treści
From: "D4n1el" <d4n1el_at_nospam_poczta.onet.pl>
Subject: Re: liczniki w '51
Date: Thu, 14 Nov 2002 21:44:04 +0100


hmm...
chcesz zliczac impulsy zewnetrzne czy taktowac rejestr
przesuwny portu szeregowego ?

Tak generalnie to probuje zrozumiec (naumiec sie :) ) w jaki sposob
obliczyc sobie wartosci jakie nalezy ustawic
w liczniku '51 w zaleznosci od zastosowanego kwarcu aby uzyskac okreslona
predkosc transmisji.
Wartosci wyliczone nie zgadzaja sie z rzeczywistoscia i szukam bledu w
rozumowaniu (lub luki w wiadomosciach)


Andrzej

--
------
Pozdrawiam
Daniel Filipek
d4n1el_at_nospam_poczta.onet.pl
GG 279761



Poprzedni Następny
Wiadomość
Spis treści
From: "edek" <k_at_nospam_ii.pl>
Subject: Re: liczniki w '51
Date: Fri, 15 Nov 2002 00:38:08 +0100



Użytkownik "D4n1el" <d4n1el_at_nospam_poczta.onet.pl> napisał w wiadomości
news:ar11ur$n1k$1_at_nospam_news.tpi.pl...
hmm...
chcesz zliczac impulsy zewnetrzne czy taktowac rejestr
przesuwny portu szeregowego ?

Tak generalnie to probuje zrozumiec (naumiec sie :) ) w jaki sposob
obliczyc sobie wartosci jakie nalezy ustawic
w liczniku '51 w zaleznosci od zastosowanego kwarcu aby uzyskac okreslona
predkosc transmisji.
Wartosci wyliczone nie zgadzaja sie z rzeczywistoscia i szukam bledu w
rozumowaniu (lub luki w wiadomosciach)



Baud rate = Osc freq / 12

Poczytaj sobie np. w programming manual
http://kordirko.homeip.net/mcs51manual.pdf (uwaga, troche duzy: 15 MB)

edek




Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: liczniki w '51
Date: Thu, 14 Nov 2002 21:06:36 +0100


Użytkownik "D4n1el" <d4n1el_at_nospam_poczta.onet.pl> napisał w wiadomości
news:ar0u7e$23q$1_at_nospam_news.tpi.pl...
Co dokladnie licza liczniki (w trybie zliczania impulsow wew) w 8051?

1/12 częstotliwości zegara, czyli cykle maszynowe. AFAIR w układach z
podziałem zegara 1/4 (cykl_maszynowy = 4 cykle zegarowe) - np. DS80C320,
można ustawić w jakim trybie mają pracować liczniki (1/4 lub 1/12).

W jaki sposob wyliczyc czas potrzebny do prawidlowego odbioru(nadania)
informacji
wyslanej(odebranej) z(na) kompa przez rs'a dla okreslonej predkosci
transmisji ?

Czas transmisji jednego znaku to łączny czas potrzebny na przesłanie bitów:
startu, danych (8 lub 9 szt) i stopu. Dla ustawień 8N1 wychodzi max. CPS =
1/10*BPS. Oczywiście, jako że transmisja po rs232 jest asynchroniczna, to
przerwy pomiędzy znakami mogą być dowolnie długie.

Na 'chlopski' rozum biorac nie wychodzi jak trza... :/ Tzn odbiera, ale
nie
wyglada to tak jak powinno.
To napisz jak liczy 'chlopski' rozum a my to skrytykujemy ;-)

MDz




Poprzedni Następny
Wiadomość
Spis treści
From: "D4n1el" <d4n1el_at_nospam_poczta.onet.pl>
Subject: Re: liczniki w '51
Date: Thu, 14 Nov 2002 21:30:50 +0100


Użytkownik "Marek Dzwonnik" <mdz_at_nospam_message.pl> napisał w wiadomości
news:ar0vm7$9o2$1_at_nospam_news.tpi.pl...

Na 'chlopski' rozum biorac nie wychodzi jak trza... :/ Tzn odbiera, ale
nie
wyglada to tak jak powinno.

To napisz jak liczy 'chlopski' rozum a my to skrytykujemy ;-)

Na chlopski rozum :

Mam do wyslania bajt danych z predkoscia 4800bps czyli
cala ramke (8N1) wysylam z predkoscia 480cps.
Czas potrzebny na wyslanie jednego bitu to 1/4800 tak?
czyli licznik '51 musi odmierzac takie przedzialy czasowe.
Dla kwarcu 11.059MHz wyglada to tak

1/ (11059000 / 12) - czas jednego taktu maszynowego w [sek]

aby dostac liczbe potrzebnych taktow maszynowych do zliczenia przez licznik
dla danej predkosci transmisji liczymy

(1/4800) / [czas jednego taktu maszynowego]

i powinismi dostac wartosc ktora musimy odliczyc (czyli FFh odjac ta wartosc
dla licznika w '51)

tak nie wychodzi wiec pewnie zle mysle (albo czegos nie uwzgledniam)

dziekuje za odpowiedzi / poprawki ;)

--
------
Pozdrawiam
Daniel Filipek
d4n1el_at_nospam_poczta.onet.pl
GG 279761




Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: liczniki w '51
Date: Thu, 14 Nov 2002 22:38:42 +0100


Użytkownik "D4n1el" <d4n1el_at_nospam_poczta.onet.pl> napisał w wiadomości
news:ar115s$iiu$1_at_nospam_news.tpi.pl...
Użytkownik "Marek Dzwonnik" <mdz_at_nospam_message.pl> napisał w wiadomości
news:ar0vm7$9o2$1_at_nospam_news.tpi.pl...

Na chlopski rozum :

Mam do wyslania bajt danych z predkoscia 4800bps czyli
cala ramke (8N1) wysylam z predkoscia 480cps.
...

1) Częstotliwość kwarcu jest dzielona przez 12 co daje:
fT1 = fxtal / 12
np. 11.0592MHz / 12 = 921.6kHz
wykorzystane jako częstotliwość taktująca licznik T1 (w 8052 może to być
również T2)

2) Zakładamy, że licznik T1 pracuje w trybie 2 ( 8 bitowy licznik TL1
automatycznie ładowany wartością początkową z TH1)
Zliczanie odbywa się w górę od wartości TH1 do FFh. Przekręcenie licznika
powoduje automatyczne załadowanie wartości początkowej i jednocześnie
wyznacza częstotliwość wyjściową licznika
foT1 = fT1 / (256-TH1)

3) Częstotliwość transmisji z UARTu zależy jeszcze od ustawienia bitu SMOD
(PCON.7)
BITRATE ( SMOD=0) = foT1 / 32
BITRATE ( SMOD=1) = foT1 / 64

Czyli dla fxtal=11.0592MHz i bitrate=4800bps trzeba ustawić:
SMOD=0
TH1 = FAh

Sądzę, że w swoich obliczeniach nie uwzględniłeś dodatkowego podziału /32
lub /64 zależnego od SMOD. Podział ten wynika m.in. z faktu, że automat
synchroniczny pełniący funkcję UARTu w rzeczywistości musi być taktowany
częstotliwością 16-krotnie większą niż oczekiwana szybkość transmisji.

MDz



Poprzedni Następny
Wiadomość
Spis treści
From: "D4n1el" <d4n1el_at_nospam_poczta.onet.pl>
Subject: Re: liczniki w '51
Date: Thu, 14 Nov 2002 23:11:22 +0100


[ciach]
Sądzę, że w swoich obliczeniach nie uwzględniłeś dodatkowego podziału /32
lub /64 zależnego od SMOD. Podział ten wynika m.in. z faktu, że automat
synchroniczny pełniący funkcję UARTu w rzeczywistości musi być taktowany
częstotliwością 16-krotnie większą niż oczekiwana szybkość transmisji.

Tak to jest to. Zapomnialem o tym warunku. Wielkie dzieki. Juz wszystko gra
)

MDz

Pozdrawiam i jeszcze raz dzieki
D4n1el