Jak wygenerować trzy różne częstotliwości (40kHz, 60kHz, 1,2MHz) na AVR?

Generator trzech =?ISO-8859-2?Q?cz=EAstotliwo=B6ci?=





Poprzedni Następny
Wiadomość
Spis treści
From: loko83 <loko83_at_nospam_tlen.pl>
Subject: Generator trzech =?ISO-8859-2?Q?cz=EAstotliwo=B6ci?=
Date: Thu, 23 Sep 2004 19:53:40 +0200


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.


=======

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl>
Subject: =?iso-8859-2?Q?Re:_Generator_trzech_cz=EAstotliwo=B6ci?=
Date: Thu, 23 Sep 2004 20:46:22 +0200


Użytkownik "loko83" <loko83_at_nospam_tlen.pl> napisał w wiadomości
news:civ2l8$6rj$1_at_nospam_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.)


========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: loko83 <loko83_at_nospam_tlen.pl>
Subject: Re: Generator trzech =?ISO-8859-2?Q?cz=EAstotliwo=B6ci?=
Date: Thu, 23 Sep 2004 21:32:32 +0200


Użytkownik Marek Dzwonnik napisał:
Użytkownik "loko83" <loko83_at_nospam_tlen.pl> napisał w wiadomości
news:civ2l8$6rj$1_at_nospam_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.


=======

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl>
Subject: =?iso-8859-2?Q?Re:_Generator_trzech_cz=EAstotliwo=B6ci?=
Date: Thu, 23 Sep 2004 22:07:47 +0200


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

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.

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!


=======

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl>
Subject: =?iso-8859-2?Q?Re:_Generator_trzech_cz=EAstotliwo=B6ci?=
Date: Fri, 24 Sep 2004 23:17:55 +0200


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

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


========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!lublin.pl!news.lublin.pl!piot

Poprzedni Następny
Wiadomość
Spis treści
From: Piotr Chmiel <piotr_at_nospam_topaz.zsel.lublin.pl>
Subject: Re: Generator trzech =?ISO-8859-2?Q?cz=EAstotliwo=B6ci?=
Date: Fri, 24 Sep 2004 14:47:02 +0200


On Thu, 23 Sep 2004, loko83 wrote:

Dok=B3adne cz=EAstotliwo=B6ci to 38kHz, 57kHz, 1.1875MHz.

Czy ty budujesz mo=BFe jakis koder stereo i RDS ? :P

pzdr,


========
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotrek Sz." <zumek_at_nospam_WYTNIJ.gazeta.pl>
Subject: =?ISO-8859-2?Q?Re:_Generator_trzech_cz=EAstotliwo=B6ci?=
Date: Thu, 23 Sep 2004 18:51:47 +0000 (UTC)


loko83 <loko83_at_nospam_tlen.pl> napisał(a):

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 :(
Ale jest to do zrobienia :)

Pzdr.
Piotrek Sz.


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

========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai