80C51 UART i dwie predkosci ?
Masz problem? Zapytaj na forum elektroda.pl
From: "Witek" <robertwi_at_nospam_polbox.com>
Subject: 80C51 UART i dwie predkosci ?
Date: Wed, 16 Feb 2000 00:02:08 +0100
Witam
Musze na jednym procku AT89C2051 jednoczesnie odbierac i nadawac po porcie
szeregowym z roznymi predkosciami tj. to co przyjdzie na rx wywalic na tx z
dwokrotnie wieksza predkoscia. Nie moge zrobic UARTa programowo poniewaz rx
ma pracowac na 19200. Czy jest jakies rozwiazanie ?
I jeszcze jedno rozwiazanie typu odebranie znaku > zmiana predkosci ->
wyslanie itd. odpada.
Dzieki
Witek
Ps. Cos czuje ze sie raczej nie da
From: "Tomasz Gumny" <tomasz.gumny_at_nospam_ep.com.pl>
Subject: Re: 80C51 UART i dwie predkosci ?
Date: Tue, 15 Feb 2000 23:41:12 GMT
Witek napisał(a) w wiadomo¶ci: <88clru$cnf$1_at_nospam_sunsite.icm.edu.pl>...
Musze na jednym procku AT89C2051 jednoczesnie odbierac i nadawac po porcie
szeregowym z roznymi predkosciami tj. to co przyjdzie na rx wywalic na tx z
dwokrotnie wieksza predkoscia. Nie moge zrobic UARTa programowo poniewaz rx
ma pracowac na 19200.
To odbieraj "sprzetowo", a nadawaj "programowo". Zawsze zdazysz wyslac
poprzedni bajt zanim przyjdzie nastepny.
TG
From: "=?iso-8859-2?Q?Sylwester_=A3azar?=" <elektronik_at_nospam_alpro.com.pl>
Subject: Re: 80C51 UART i dwie predkosci ?
Date: Wed, 16 Feb 2000 07:48:58 GMT
To odbieraj "sprzetowo", a nadawaj "programowo". Zawsze zdazysz wyslac
poprzedni bajt zanim przyjdzie nastepny.
TG
Nie zawsze!
Trzeba to zrobić rozsądnie!
Mamy 520 us na wysłanie znaku z prędko¶cią 2x większą.Tak więc pozostaje ok.
260 us na inne operacje (co 520 us ) . Czyli, realnie < 50% wydajno¶ci
procesora. Je¶li procesor ma jeszcze co¶ robić oprócz tej konwersji to
musisz podjąć decyzję, czy wysyłasz w programie głównym, używając pętli
opóźniających, czy może lepiej wysyłać kolejne bity w przerwaniu, tak aby w
programie głównym móc wykonywać inne działania.
Ja dla porządku wybrał bym rozwiązanie z przerwaniami i dałbym jeszcze
krótki bufor kołowy (np. 8 bajtów), tak aby wysyłanie było płynne, je¶li
procesor miałby dłuższe "zadanie specjalne".
Ale to już mi dąży do ideału, więc może nie warto :-)
pozdrawiam,
Sylwester Łazar
electronics engineer
http://www.alpro.com.pl
elektronik_at_nospam_alpro.com.pl
__________________________________________
//ALPRO//- Projektowanie Systemów Elektronicznych
tel: +48 604 873468
tel/fax: (061) 8223-788
__________________________________________
From: "Tomasz Gumny" <tomasz.gumny_at_nospam_ep.com.pl>
Subject: Re: 80C51 UART i dwie predkosci ?
Date: Wed, 16 Feb 2000 09:00:30 GMT
Sylwester Łazar napisał(a) w wiadomo¶ci: ...
To odbieraj "sprzetowo", a nadawaj "programowo". Zawsze zdazysz wyslac
poprzedni bajt zanim przyjdzie nastepny.
TG
Nie zawsze!
Trzeba to zrobić rozsądnie!
[...]
...czy może lepiej wysyłać kolejne bity w przerwaniu, tak aby w
programie głównym móc wykonywać inne działania.
Sylwester Łazar
Dokladnie o czyms takim myslalem. To juz chyba skrzywienie zawodowe, bo
nawet nie wpadlem na to, ze mozna po prostu wystawiac kolejne bity i czekac
nic nie robiac. Obawiam sie, ze jak procesor bedzie tak dlugo stal w
(prawie) jednym adresie, to mu sie szyna adresowa moze przepalic. ;-)
TG
From: Janusz Charchut <Janusz.Charchut_at_nospam_p37.f26.n484.z2.fidonet.org>
Subject: 80C51 UART i dwie predkosci ?
Date: Tue, 22 Feb 00 22:11:45 +0100
Czesc Witek!
16 Feb Witek napisal(a) do All:
W> Musze na jednym procku AT89C2051 jednoczesnie odbierac i
W> nadawac po porcie szeregowym z roznymi predkosciami tj. to
W> co przyjdzie na rx wywalic na tx z dwokrotnie wieksza
W> predkoscia. Nie moge zrobic UARTa programowo poniewaz rx ma
W> pracowac na 19200. Czy jest jakies rozwiazanie ?
W> I jeszcze jedno rozwiazanie typu odebranie znaku > zmiana
W> predkosci -> wyslanie itd. odpada.
Podobne rozwiazanie zostalo przedstawione w EP 12/99. Z tym, ze tam byla
konwersja MIDI na RS232 i na odwrot. Rozwiazanie problemu, to 2 kostki 89c2051 i
wykorzystane przerwanie.
Pozdrawiam
Janusz
*Inet: Janusz.Charchut_at_nospam_p37.f26.n484.z2.fidonet.org
*Fido: 2:484/26.37