RTV forum PL | NewsGroups PL

Jak skonfigurować AVR do generowania trzech częstotliwości: 40kHz, 60kHz i 1,2MHz?

Generator trzech częstotliwości

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak skonfigurować AVR do generowania trzech częstotliwości: 40kHz, 60kHz i 1,2MHz?

loko83
Guest

Thu Sep 23, 2004 4:53 pm   



Mam duży(przynajmniej dla mnie) problem. Powiedzmy że muszę wygenerować
trzy częstotliwości za pomocą jednego uC(najlepiej AVR). Pierwsza
częstotliwość to 40kHz, druga to 60kHz a trzecia 1,2MHz. Szukałem w
necie ale znalazłem tylko dds`y - np. minidds. Ale to jest tylko jedna
częstotliwość. W sumie to poradziłbym sobie z tym gdyby nie ta częstotl.
1,2MHz. Jeśli ktoś ma jakiś pomysł to chętnie poczytam - może jakieś
przykłady(najlepiej w c lub c + asm). Z góry dzieki za info.

Marek Dzwonnik
Guest

Thu Sep 23, 2004 5:46 pm   



Użytkownik "loko83" <loko83@tlen.pl> napisał w wiadomości
news:civ2l8$6rj$1@atlantis.news.tpi.pl
Quote:
Mam duży(przynajmniej dla mnie) problem. Powiedzmy że muszę
wygenerować trzy częstotliwości za pomocą jednego uC(najlepiej AVR).
Pierwsza częstotliwość to 40kHz, druga to 60kHz a trzecia 1,2MHz.

Czy dokladnie 1.2MHz? Czy dokładnie 40kHz i 60kHz? Tzn. czy można je
uzyskać z prostego podziału zegara, czy musi byćDDS? Prostokąt czy sinus?
Za mało podałeś szczegółów, więc to co poniżej to tylko garść luźnych
skojarzeń:

Co do 1.2MHz: Wziąć 2313, pogonić z overclockiem na kwarcu 12MHz. (AFAIR w
Tiny2313 to już 12MHz da się nawet przyłożyć legalnie). 1.2MHz wygenerujesz
sprzętowo z podziału f_clk/10. Czyli rejestr "compare" ustawić na 5 a wy
OC1 w trybie "toggle".

Częstotliwości zbliżone 40 i 60kHz możesz wygenerować w zmodyfikowanym
układzie miniDDS. Oczywiście o ile nie da się tego sensowniej zrobić przez
podział na licznikach. Jedna pętla w oryginalnym miniDDS zajmuje 9cykli co
przy 12MHz dałoby takt DDS-a równy 1.33MHz . Nawet jeżeli wydłużysz tą pętlę
5-krotnie - do 45 cykli to jeszcze masz takt 266kHz czyli ponad dwie oktawy
powyżej max. częstotliwości wyjściowej DDS-a (60kHz). A w 45 cyklach
wyrobisz się z równoległą akumulacją fazy w dwóch akumulatorach i
wystawieniem bajtu fazy na port przetwornika. Gorzej, że w 2313 brakuje
drugiego portu równoległego na drugą drabinkę R2R a wystawianie na zewn.
rejestr będzie kłopotliwe. Może coś ciut większego? Jakieś AtMega8?

--
Marek Dzwonnik, GG: #2061027 - zwykle jako 'niewidoczny'
(Uwaga Gadu-Gadulcowicze: Nie odpowiadam na anonimy.)

loko83
Guest

Thu Sep 23, 2004 6:32 pm   



Użytkownik Marek Dzwonnik napisał:
Quote:
Użytkownik "loko83" <loko83@tlen.pl> napisał w wiadomości
news:civ2l8$6rj$1@atlantis.news.tpi.pl

Mam duży(przynajmniej dla mnie) problem. Powiedzmy że muszę
wygenerować trzy częstotliwości za pomocą jednego uC(najlepiej AVR).
Pierwsza częstotliwość to 40kHz, druga to 60kHz a trzecia 1,2MHz.


Czy dokladnie 1.2MHz? Czy dokładnie 40kHz i 60kHz? Tzn. czy można je
uzyskać z prostego podziału zegara, czy musi byćDDS? Prostokąt czy sinus?
Za mało podałeś szczegółów, więc to co poniżej to tylko garść luźnych
skojarzeń:

Co do 1.2MHz: Wziąć 2313, pogonić z overclockiem na kwarcu 12MHz. (AFAIR w
Tiny2313 to już 12MHz da się nawet przyłożyć legalnie). 1.2MHz wygenerujesz
sprzętowo z podziału f_clk/10. Czyli rejestr "compare" ustawić na 5 a wy
OC1 w trybie "toggle".

Częstotliwości zbliżone 40 i 60kHz możesz wygenerować w zmodyfikowanym
układzie miniDDS. Oczywiście o ile nie da się tego sensowniej zrobić przez
podział na licznikach. Jedna pętla w oryginalnym miniDDS zajmuje 9cykli co
przy 12MHz dałoby takt DDS-a równy 1.33MHz . Nawet jeżeli wydłużysz tą pętlę
5-krotnie - do 45 cykli to jeszcze masz takt 266kHz czyli ponad dwie oktawy
powyżej max. częstotliwości wyjściowej DDS-a (60kHz). A w 45 cyklach
wyrobisz się z równoległą akumulacją fazy w dwóch akumulatorach i
wystawieniem bajtu fazy na port przetwornika. Gorzej, że w 2313 brakuje
drugiego portu równoległego na drugą drabinkę R2R a wystawianie na zewn.
rejestr będzie kłopotliwe. Może coś ciut większego? Jakieś AtMega8?

--
Marek Dzwonnik, GG: #2061027 - zwykle jako 'niewidoczny'
(Uwaga Gadu-Gadulcowicze: Nie odpowiadam na anonimy.)

Procesor nie będzie wykonywał innych czynności. Wiem, że dodatkowa

modulacja(PWM) spwoduje, że nie będzie możliwe generowanie trzech
częstotl. Z tego względu wyjściowe szpilki będę sobie formował poza uC.
Procesor - najlepiej aby nie był zbyt duży(coś w rodzaju at tiny w
obudowie dip8). Może na jakiś inny procek. Może PIC16F84 poradziłby
sobie z tym zadaniem(nie potrafie znaleźć w nocie jaki ma podział ale
coś mi się wydaje że jeden cykl przy 4MHz to 1us).
Dokładne częstotliwości to 38kHz, 57kHz, 1.1875MHz.

Marek Dzwonnik
Guest

Thu Sep 23, 2004 7:07 pm   



Użytkownik "loko83" <loko83@tlen.pl> napisał w wiadomości
news:civ8jm$mui$1@nemesis.news.tpi.pl

Quote:
Może PIC16F84 poradziłby
sobie z tym zadaniem(nie potrafie znaleźć w nocie jaki ma podział ale
coś mi się wydaje że jeden cykl przy 4MHz to 1us).

Tak. PICe dzielą przez 4. AVR przy 4MHz ma cykl maszynowy 250ns.

Quote:
Dokładne częstotliwości to 38kHz, 57kHz, 1.1875MHz.

Co to będzie? Kojarzy mi się z jakimiś podnośnymi, ale nie wiem od czego?
;-)

Hmmm... Wspólne wielokrotności niby proste, ale nie całkiem i nie do końca.
Całkowite wsp. podziału (375, 250, 12) wychodzą dopiero przy 14.25MHz. Skąd
wytrzasnąć taki kwarc? Programowalny generator Epsona?

A może na miniDDS wygenerować 38kHz i 57kHz a potem mając 38kHz jako f
odniesienia, powielić na PLLu razy 125 do 4.75MHz = 4x1.1875MHz ? Nawet
HC4046 się tu wyrobi, ale niestety oznacza to kawałek dodatkowego układu.

BTW: Skracaj cytaty!

--
Marek Dzwonnik, GG: #2061027 - zwykle jako 'niewidoczny'
(Uwaga Gadu-Gadulcowicze: Nie odpowiadam na anonimy.)

"pl.misc.elektronika" podlega zasadom usenetu i Netykiety:
http://www.pg.gda.pl/~agatek/netq.html
Nie zmieniaj tematu. CYTUJ (ale OSZCZĘDNIE). Pisz POD cytatem!

Piotrek Sz.
Guest

Thu Sep 23, 2004 7:51 pm   



loko83 <loko83@tlen.pl> napisał(a):

Quote:
Mam duży(przynajmniej dla mnie) problem. Powiedzmy że muszę wygenerować
trzy częstotliwości za pomocą jednego uC(najlepiej AVR). Pierwsza
częstotliwość to 40kHz, druga to 60kHz a trzecia 1,2MHz. Szukałem w
necie ale znalazłem tylko dds`y - np. minidds. Ale to jest tylko jedna
częstotliwość. W sumie to poradziłbym sobie z tym gdyby nie ta częstotl.
1,2MHz. Jeśli ktoś ma jakiś pomysł to chętnie poczytam - może jakieś
przykłady(najlepiej w c lub c + asm). Z góry dzieki za info.


Witam.
A czy ten procek miałby jeszcze coś do roboty ?
Bo jeśli tylko generowanie tych 3-ch częstotliwości to ... i tak potrzebny Ci
naprawdę szybki procek Sad
Ale jest to do zrobienia :)

Pzdr.
Piotrek Sz.


--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Piotr Chmiel
Guest

Fri Sep 24, 2004 11:47 am   



On Thu, 23 Sep 2004, loko83 wrote:

Quote:
Dokładne częstotliwości to 38kHz, 57kHz, 1.1875MHz.

Czy ty budujesz może jakis koder stereo i RDS ? :P

pzdr,

Marek Dzwonnik
Guest

Fri Sep 24, 2004 8:17 pm   



Użytkownik "Marek Dzwonnik" <mdz@WIADOMO_PO_CO_TO.message.pl> napisał w
wiadomości news:41532d15$1@news.home.net.pl

Quote:
Hmmm... Wspólne wielokrotności niby proste, ale nie całkiem i nie do
końca. Całkowite wsp. podziału (375, 250, 12) wychodzą dopiero przy
14.25MHz. Skąd wytrzasnąć taki kwarc? Programowalny generator Epsona?

I tak będzie chyba najłatwiej. Generator Epsona z serii SG-8002
(
http://www.epson-electronics.de -> Search "SG-8002"
-> www.spezial.pl
-> www.cyfronika.com.pl
)
zaprogramowany na 14.25MHz, poganiający jakiegoś AVR-a
Na jednym timerze zrealizować podział /12 i uzyskać 1.187500MHz
Na drugim timerze zrealizować podział /125 -> przerwania z
częstotliwością 114kHz
Mając przerwania 114kHz programowo dzielić /2 ( 57kHz ) oraz /3 (38kHz).

--
Marek Dzwonnik, GG: #2061027 - zwykle jako 'niewidoczny'
(Uwaga Gadu-Gadulcowicze: Nie odpowiadam na anonimy.)

elektroda NewsGroups Forum Index - Elektronika Polska - Jak skonfigurować AVR do generowania trzech częstotliwości: 40kHz, 60kHz i 1,2MHz?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map