Re: USART w ATmega128



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
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.



Poprzedni Następny
Wiadomość
Spis treści
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


Poprzedni Następny
Wiadomość
Spis treści
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?



Poprzedni Następny
Wiadomość
Spis treści
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