115k softwarowy UART na Atmega8

Witam. Próbował już może ktoś softowego UARTA na atmega8 ?

Dostałem takie zadanie i nie jestem pewny, czy pociągnie taką prędkoość. A wiadomo, że nie warto siadać jeśli ktoś już definitywnie poległ :-)

Jeśli podkręcę procesor do 16 MHz to wychodzi mi ca. 130 cykli na bit. Doczytałem sobie , że powinno się próbkować 8 razy więc zostanie koło

16 cykli na próbkę.

Zasadniczo nie widać przeciwwskazań, ale nie widziałem na żadnej grupie informacji o takim rozwiązaniu.

Dzięki za odpowiedzi :-)

Reply to
wonderland
Loading thread data ...

wonderland napisał(a):

IMHO wystarczy próbkowanie 3 razy w oknie 50% czasu. Większym problemem może być tylko precyzja odmierzania czasu. Możesz sobie pozwolić na poświecenie 1 timera i 1 linii z przerwaniem ?

Reply to
William

A ten procesor ma cos jeszcze robic oprocz czekania na nadejscie znaku ?

J.

Reply to
J.F.
Reply to
invalid unparseable

Dzięki za informacje Problem jest mocno życiowy, bo mamy zaprojektować układ, w którym transmisja danych będzie buforowana w tej atmedze. Transmisja idzie z jednej strony na 115 k, i dobrze byłoby, coby nie zwalniała na atmedze. Zastanawiam się mocno czy nie lepiej byłoby jednak wziąć megę 162 z dwoma UART-ami, ale jak na razie sugerowaną opcją jest atmega8.

Układ będzie li i jedynie buforował informacje.

Reply to
wonderland

Znaczy się też, że właściwie mam do dyspozycji wszystkie porty i wszystkie timery... Na UARTA założyłem już nóżkę zewnętrznego przerwania.

Reply to
wonderland

Dnia Thu, 05 Jul 2007 21:55:44 +0200, wonderland <bartek snipped-for-privacy@wp.pl napisał:

No, ale, przecież atmega128 ma dwa UARTy.... Chyba, że czegoś nie rozumiem :-)

Reply to
ELP

Sorki :-( Nie wiem skąd wzięłą mi się ta 128`ka.

Przepraszam za zaśmiecanie :-( Pozdrawiam

Reply to
ELP

Bogdan G pisze:

Bit startu najlepiej wykryć przerwaniem zewnętrznym zamiast pollingiem. Reszta się zgadza. Warto wykorzystać tryb timera z automatycznym resetowaniem po dojściu do zadanej wartości (patrz Output Compare Register) żeby automat nie był wrażliwy na jitter obsługi przerwań timera.

Przykład takiego UARTa realizowanego programowo można znaleźć w bibliotece avrlib:

formatting link

Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.