RTV forum PL | NewsGroups PL

Testowanie softwarowego UART na Atmega8 przy 115k z częstotliwością 16 MHz

115k softwarowy UART na Atmega8

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Testowanie softwarowego UART na Atmega8 przy 115k z częstotliwością 16 MHz

wonderland
Guest

Thu Jul 05, 2007 7:50 am   



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 Smile

William
Guest

Thu Jul 05, 2007 8:10 am   



wonderland napisał(a):
Quote:
Witam. Prbowa ju moe kto softowego UARTA na atmega8 ?

Dostaem takie zadanie i nie jestem pewny, czy pocignie tak
prdkoo. A wiadomo, e nie warto siada jeli kto ju definitywnie
poleg :-)

Jeli podkrc procesor do 16 MHz to wychodzi mi ca. 130 cykli na bit.
Doczytaem sobie , e powinno si prbkowa 8 razy wic zostanie koo
16 cykli na prbk.


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 ?

Bogdan G
Guest

Thu Jul 05, 2007 8:30 am   



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ę.

Jeśli możesz wykorzystać jeden timer to sprawdzaj stan lini w jego
przerwaniu (dość często). Jak wykryjesz bit startu to ustawiasz go na 0,5
bitu. Sprawdzasz ponownie czy to faktycznie bit stopu. A potem ustawiasz
timer na 1 bit i odczytujesz gdzieś w okolicach środka kolejne bity. To jest
chyba najprostsze rozwiązanie.
Czy to jest zadanie teoretyczne, czy życie Cię zmusiło?

J.F.
Guest

Thu Jul 05, 2007 8:33 am   



On Wed, 04 Jul 2007 23:50:49 -0700, wonderland wrote:
Quote:
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.

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

J.

Robert Zemła
Guest

Thu Jul 05, 2007 12:17 pm   



Użytkownik "wonderland" <bartek_grzes@wp.pl> napisał w wiadomości
news:1183618249.719270.209000@m36g2000hse.googlegroups.com...
Witam. Próbował już może ktoś softowego UARTA na atmega8 ?

Quote:
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 :-)


Ściągnij noty aplikacyjne atmela AVR304 i AVR305 tam masz gotowe
rozwiązania - może pomogą.
pozdrawiam

wonderland
Guest

Thu Jul 05, 2007 8:55 pm   



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.

wonderland
Guest

Thu Jul 05, 2007 8:58 pm   



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.

ELP
Guest

Thu Jul 05, 2007 9:46 pm   



Dnia Thu, 05 Jul 2007 21:55:44 +0200, wonderland <bartek_grzes@wp.pl>
napisał:

Quote:
Zastanawiam się mocno czy nie lepiej byłoby jednak wziąć megę 162 z
dwoma UART-ami, ale jak na razie sugerowaną opcją jest atmega8.

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

ELP
Guest

Thu Jul 05, 2007 9:49 pm   



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

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

Przepraszam za zaśmiecanie Sad
Pozdrawiam

Adam Dybkowski
Guest

Thu Jul 05, 2007 11:14 pm   



Bogdan G pisze:

Quote:
Jeśli możesz wykorzystać jeden timer to sprawdzaj stan lini w jego
przerwaniu (dość często). Jak wykryjesz bit startu to ustawiasz go na 0,5
bitu. Sprawdzasz ponownie czy to faktycznie bit stopu. A potem ustawiasz
timer na 1 bit i odczytujesz gdzieś w okolicach środka kolejne bity. To jest
chyba najprostsze rozwiązanie.

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:
http://www.mil.ufl.edu/~chrisarnold/components/microcontrollerBoard/AVR/avrlib/

--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

elektroda NewsGroups Forum Index - Elektronika Polska - Testowanie softwarowego UART na Atmega8 przy 115k z częstotliwością 16 MHz

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map