Re: USART w ATmega128
Masz problem? Zapytaj na forum elektroda.pl
From: "SP9WUG" <majki2_at_nospam_go2.pl>
Subject: Re: USART w ATmega128
Date: Thu, 8 Aug 2002 17:35:12 +0200
Czy dobrze rozumiem, że w trybie slave synchronicznym, prędkość
transmisji
zależy od zewnętrznego zegara podanego na nogę XCK. Przy czym
można dowolnie
zmieniać kwarc taktujący procesor, i nie wpłynie to na prędkosć
transmisji ?
Synchronizuje jedynie ramki. pomaga utrzymać się w granicach błędu przy
nadawaniu dłuższej transmisji.
Czyli jeśli zmienię kwarc, którym jest taktowany procesor, to będę musiał
również zmienić ustawienia dzielnika ustalającego prędkość portu ?
Jednocześnie zewnętrzny zegar doprowadzony do XCK nie ulega zmianie.
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: RE: USART w ATmega128
Date: 8 Aug 2002 21:07:08 +0200
Czyli jeśli zmienię kwarc, którym jest taktowany procesor, to będę musiał
również zmienić ustawienia dzielnika ustalającego prędkość portu ?
Jednocześnie zewnętrzny zegar doprowadzony do XCK nie ulega zmianie.
Eee... coś pokręciłem. Pomyliło mi się z TOSC.
Oczywiście masz rację odbiornik synchroniuje się do wejścia XCK,
czyli główny kwarc musi być od 16MHz do XCK*4.
pzdr
Artur
--
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika
From: "SP9WUG" <majki2_at_nospam_go2.pl>
Subject: Re: USART w ATmega128
Date: Fri, 9 Aug 2002 14:49:47 +0200
Przeczytałem jeszcze kilka razy dokumentację i już sam nie jestem pewien czy
da sie zrealizować to co potrzebuję.
Założenia są takie:
Potrzebuję nadawać i odbierać na 2 różnych prędkościach, będą one
przełączane przez program.
Chcę aby prędkości te działały niezależnie od kwarcu podłączonego do
procesora. Czyli żebym nie musiał zmieniać nic w programie jeśli zmienię
kwarc. Gdyby to działało asynchronicznie do każdego kwarcu musiałbym
dobierać wartość dzielnika UBRR,a chcę trego uniknąć.
W tym procesorze można działać synchronicznie w trybie slave pobierając
sygnał zegara z zewnętrznego źródła i podłączając go do XCK. Mam takie
źródło o stałej częstotliwości zegara.
Teraz potrzeba do częstotliwości zewnętrznego zegara dobrać takie dzielniki,
żeby otrzymać interesujące mnie prędkości. Wartości dzielników byłyby
wpisane na stałe do programu. I tu jest pytanie czy da się to wykonać.
Ponieważ z tego co zrozumiałem UBRR jest wykorzystywane tylko wtedy gdy
używamy wewnętrznego generatora. Nic nie pisze o tym jak ustawiać prędkość
transmisji w trybie slave. Czyżby prędkość ta była zależnością 1:1 i nie
można było jej zmienić? Jeżeli chciałbym zmienić prędkość musiałbym zmienić
zewnętrzny zegar?
From: "Michał Lankosz" <nie_at_nospam_lubie.spamu>
Subject: Re: USART w ATmega128
Date: Sat, 10 Aug 2002 19:40:54 +0200
Teraz potrzeba do częstotliwości zewnętrznego zegara dobrać takie
dzielniki,
żeby otrzymać interesujące mnie prędkości. Wartości dzielników byłyby
wpisane na stałe do programu. I tu jest pytanie czy da się to wykonać.
Ponieważ z tego co zrozumiałem UBRR jest wykorzystywane tylko wtedy gdy
używamy wewnętrznego generatora. Nic nie pisze o tym jak ustawiać prędkość
transmisji w trybie slave. Czyżby prędkość ta była zależnością 1:1 i nie
można było jej zmienić? Jeżeli chciałbym zmienić prędkość musiałbym
zmienić
zewnętrzny zegar?
Na oko wynika to również z rysunku 79 i przebiegów na rys. 80. Sygnał z XCK
Pin przechodzi przez synchronizator, detektor zbocza i dalej przez
multipleksery wytwarza zegary txclk i rxclk. Wyjście dzielnika UBRR jest
odłączone.
Nie wiem do czego to potrzebne, ale nasuwają mi się rozwiązania:
1. Czysto sprzętowe: zewnętrzny programowalny dzielnik, podający odpowiednią
częstotliwość na pin XCK
2. Jeśli transmisja jest wystarczająco wolna - programowy odbiór bitów w
przerwaniu generowanym przez zewnętrzny zegar i "pomijanie" niektórych w
zależności od prędkości
3. Jeszcze do przemyślenia: może uda się wykorzystać zewnętrzne wejście
któregoś z liczników np. 0, ustawienie jego zerowania po zrównaniu (CTC mode
str. 92) aby na wyjściu (Output Compare) otrzymać odpoiednią częstotliwość i
sprzętowo połączyć piny OC z XCK. Nie angażować do tego oczywiście przerwań.
Może spróbuj wariant 3, jaśli się uda taka konfiguracja i masz sprzęt do
testów.
73 :-)
--
Michał, SQ9FQQ http://sq9fqq.prv.pl/
GG:374157 http://free.ngo.pl/~sp9zcj/
mike2001 (malpa) tlen.pl