Jak zaprojektować układ do przełączania kwarców 12MHz i 3MHz na AT89C52?
atmel_jak przelaczyc kwarc
From: robak <rowrobak_at_nospam_poczta.onet.pl>
Subject: atmel_jak przelaczyc kwarc
Date: Mon, 08 Jan 2001 13:50:37 +0100
czesc!
mam taki problem. na mikrokontorlerze Atmel AT89C52 zrobilem generator
impulsow o programowanym wypelnieniu. zaprojektowny byl on do pracy z
kwarcem 12MHz i przy tej częstotliwości maksymalny czas trwania
impulsu wynosi 65ms. ale teraz gosciu, dla ktorego to robilem,
zazyczyl sobie ze chce tez generowac przebiegi wolnozmienne, z czasem
mierzonym w sekundach. aby mi ulatwic prace podpowiedzial mi, zebym
wlasnie zaprojektowal uklad ktory przelaczalby kwarce np. ten 12MHz i
3MHz w trakcie normalnej pracy generetatora.
moje pytanie brzmi czy cos takiego jest mozliwe, czy podczas
przelaczania nie zresetuje sie uklad, a jesli jest mozliwe to w jaki
sposbo to przelaczanie rozwiazac?
ja wymyslilem zeby kwarc 12MHz podlaczyc do 3bitowego licznika, a
nastepnie wyjscie tego liczniaka do multipleksera i jego wyjscie do
odpowiedniej nozki w mikrokontrolerze. wtedy mam do wyboru 3
czestotliwosci zegara i przelaczam je programowo sterujac z
mikrokontrolera. czy tak moze byc?
bede bardzo wdzieczny za pomoc przy rozwiazaniu tego problemu,gdyz
jest to projekt na studiach i zalezy mi bardzo na szybkim jego
zakonczeniu. z gory bardzo dziekuje.
robak
rowrobak_at_nospam_poczta.onet.pl
From: Marcin Wolcendorf <wolcendo_at_nospam_free.polbox.pl>
Subject: Re: atmel_jak przelaczyc kwarc
Date: Mon, 08 Jan 2001 15:10:38 +0100
robak wrote:
mam taki problem. na mikrokontorlerze Atmel AT89C52 zrobilem generator
impulsow o programowanym wypelnieniu. zaprojektowny byl on do pracy z
kwarcem 12MHz i przy tej częstotliwości maksymalny czas trwania
impulsu wynosi 65ms. ale teraz gosciu, dla ktorego to robilem,
zazyczyl sobie ze chce tez generowac przebiegi wolnozmienne, z czasem
mierzonym w sekundach. aby mi ulatwic prace podpowiedzial mi, zebym
wlasnie zaprojektowal uklad ktory przelaczalby kwarce np. ten 12MHz i
3MHz w trakcie normalnej pracy generetatora.
Ojej... Tzn. wykonalne (może nie z przełączaniem kwarców, raczej z
ustawianym dzieleniem częstotliwości), ale nie lepiej zwiększyć programowo
długość licznika?
moje pytanie brzmi czy cos takiego jest mozliwe, czy podczas
przelaczania nie zresetuje sie uklad, a jesli jest mozliwe to w jaki
sposbo to przelaczanie rozwiazac?
Jest możliwe, w końcu procesory mają ustawialne podzielniki
częstotliwości wejściowej.
Ale tu niech się mądrzejsi wypowiedzą :-).
Pozdrawiam,
Marcin.
--
'My experience is that it is hard to find software producers that aren't
fuzzy.'
From: blachu <blachu_at_nospam_osemka.p.lodz.pl>
Subject: Re: atmel_jak przelaczyc kwarc
Date: Mon, 08 Jan 2001 16:33:24 +0100
Teoretycznie jest to mozliwe, poniewaz producent podaje ze procesory te
moga pracowac z czestotliwoscia zegara 0:12Mhz lub 0:24Mhz w zaleznosci od
wersji.
Pozatym moze byc taktowany z zewnetrznego generatora, czyli mozna zbudowac
generator o zmienianej czestotliwosci pracy i wstawic zamiast kwarcu. A co
do resetowania to nie powinien , a jesli nawet to Ram wew. pwinien
pozostac nie naruszony.
Pozdrawiam Blachu
robak napisał(a):
czesc!
mam taki problem. na mikrokontorlerze Atmel AT89C52 zrobilem generator
impulsow o programowanym wypelnieniu. zaprojektowny byl on do pracy z
kwarcem 12MHz i przy tej częstotliwości maksymalny czas trwania
impulsu wynosi 65ms. ale teraz gosciu, dla ktorego to robilem,
zazyczyl sobie ze chce tez generowac przebiegi wolnozmienne, z czasem
mierzonym w sekundach. aby mi ulatwic prace podpowiedzial mi, zebym
wlasnie zaprojektowal uklad ktory przelaczalby kwarce np. ten 12MHz i
3MHz w trakcie normalnej pracy generetatora.
moje pytanie brzmi czy cos takiego jest mozliwe, czy podczas
przelaczania nie zresetuje sie uklad, a jesli jest mozliwe to w jaki
sposbo to przelaczanie rozwiazac?
ja wymyslilem zeby kwarc 12MHz podlaczyc do 3bitowego licznika, a
nastepnie wyjscie tego liczniaka do multipleksera i jego wyjscie do
odpowiedniej nozki w mikrokontrolerze. wtedy mam do wyboru 3
czestotliwosci zegara i przelaczam je programowo sterujac z
mikrokontrolera. czy tak moze byc?
bede bardzo wdzieczny za pomoc przy rozwiazaniu tego problemu,gdyz
jest to projekt na studiach i zalezy mi bardzo na szybkim jego
zakonczeniu. z gory bardzo dziekuje.
robak
rowrobak_at_nospam_poczta.onet.pl
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: atmel_jak przelaczyc kwarc
Date: 8 Jan 2001 16:32:44 GMT
On Mon, 08 Jan 2001 16:33:24 +0100, blachu <blachu_at_nospam_osemka.p.lodz.pl> wrote:
Teoretycznie jest to mozliwe, poniewaz producent podaje ze procesory te
moga pracowac z czestotliwoscia zegara 0:12Mhz lub 0:24Mhz w zaleznosci od
wersji.
Ze potrafi pracowac z rozna czestotliwoscia to nie znaczy ze zniesie
nagla zmiane. Choc jak podaja 0 to pewnie jest to "fully static design".
Pozatym moze byc taktowany z zewnetrznego generatora, czyli mozna zbudowac
generator o zmienianej czestotliwosci pracy i wstawic zamiast kwarcu. A co
do resetowania to nie powinien , a jesli nawet to Ram wew. pwinien
pozostac nie naruszony.
Ja bym dorzucil jeden warunek - zeby zmiana czestotliwosci nie powodowala
powstania szpilek. Czyli raczej dwa zewnetrzne generatory, przelaczenie
synchronizowane w jakis sposob - moze wrecz VCO synchronizowany PLL -
przynajmniej zmiana czestotliwosci bedzie plynna.
A moze wystarczy dolozyc zewnetrzny dzielnik i same liczniki zasilac
zewnetrznym, mniejszym zegarem ?
J.
From: Marcin E. Hamerla <mehamerla_at_nospam_pro.onet.pl>
Subject: Re: atmel_jak przelaczyc kwarc
Date: Mon, 08 Jan 2001 18:47:04 +0100
On 8 Jan 2001 16:32:44 GMT, jfox_at_nospam_friko6.onet.pl (J.F.) wrote:
Ze potrafi pracowac z rozna czestotliwoscia to nie znaczy ze zniesie
nagla zmiane. Choc jak podaja 0 to pewnie jest to "fully static design".
Ja przelaczam zegary w trakcie pracy i dziala Ok. Ale w tym przypadku
takie dzialanie jest oczywiscie zupelnie niepotrzebne.
--
Pozdrowienia,
Marcin E. Hamerla
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: atmel_jak przelaczyc kwarc
Date: Mon, 08 Jan 2001 17:50:32 +0100
robak wrote:
mam taki problem. na mikrokontorlerze Atmel AT89C52 zrobilem generator
impulsow o programowanym wypelnieniu. zaprojektowny byl on do pracy z
kwarcem 12MHz i przy tej częstotliwości maksymalny czas trwania
impulsu wynosi 65ms. ale teraz gosciu, dla ktorego to robilem,
zazyczyl sobie ze chce tez generowac przebiegi wolnozmienne, z czasem
mierzonym w sekundach.
Jezeli przy 12 MHz maksymalny czas przepelnienia licznika wynosi 65535 x
1us= 65 ms to przy 3 MHz bedzie wynosil 65535 x 4us = 260 ms. Nadal
daleko do zamierzonego rezultatu.
Zeby osiagnac czas pojedynczego przepelnienia rzedu 1s musialbys uzyc
kwarcu 5.5 kHz.
A tu juz problemy zaczynaja sie mnozyc.
Wyjscie jest jedno, softwarowa obsluga czasu, np. licznik T0 odlicza
stale przebiegi czasu zalozmy 50 ms, na pojedynczym bajcie licznika
programowego mozesz wtedy sobie uzyskac 255 x 50ms = 12.75 sekund. A to
juz zadowalajaco. Zawsze mozesz zrobic to na chama, jezeli masz wolny
licznik T1. W przerwaniu licznika T0 recznie zwiekszasz TL1 licznika
(przy TR1 = 0) i obslugujesz przerwanie licznika T1. Jezli potrzebujesz
czasow mniejszych to mozesz uzyc innych wartosci licznikow. Zaraz
zasymuluje to co napisalem i sprawdze czy nie bajdurze...
Jednak bajdurze... to znaczy mozna tak zrobic ale to przerost formy nad
trescia. Poleceam licznik software-owy... rozwiazanie na licznikach T1 i
T0 jest lekko przesadzone...
Na pewno wyjdzie taniej i mniej wysilku bedzie kosztowac niz kombinacje
z kwarcami czy dzielnikami czestotliwosci.
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: atmel_jak przelaczyc kwarc
Date: Mon, 08 Jan 2001 22:55:30 GMT
On Mon, 08 Jan 2001 17:50:32 +0100, Milosz Skowyra wrote:
Jezeli przy 12 MHz maksymalny czas przepelnienia licznika wynosi 65535 x
1us= 65 ms to przy 3 MHz bedzie wynosil 65535 x 4us = 260 ms. Nadal
daleko do zamierzonego rezultatu.
Zeby osiagnac czas pojedynczego przepelnienia rzedu 1s musialbys uzyc
kwarcu 5.5 kHz.
Az tak zle to nie - jesli przy 3MHz wynosi 260ms, to wystarczy
zmiejszyc niecale 4 razy i wyjdzie 1040ms ~= 1s.
Raptem 750kHz.
J.
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: atmel_jak przelaczyc kwarc
Date: Tue, 09 Jan 2001 09:20:35 +0100
"J.F." wrote:
Zeby osiagnac czas pojedynczego przepelnienia rzedu 1s musialbys uzyc
kwarcu 5.5 kHz.
Az tak zle to nie - jesli przy 3MHz wynosi 260ms, to wystarczy
zmiejszyc niecale 4 razy i wyjdzie 1040ms ~= 1s.
Raptem 750kHz.
Zgadza sie... moja pomylka... a wlasciwie kalkulatora. ;-)
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|