PIC a PWM - DDS
Jiri Bezstarosti
jiri@bezstarosti.cz
Pondělí Říjen 1 11:06:16 CEST 2007
Zkusme uplny zaklad, abyste si udelal prehled o tom, co je mozne.
Predstavme si, ze taktujeme PIC 20MHz a jedna instrukce trva 4 cykly.
Pak nejvyssi mozna frekvence, kterou muzeme vygenerovat je
20MHz/4/2=2.5MHz, kde to /2 rika, ze na periodu musime jit nahoru a
dolu. Kdyz podelim 2.5MHz/38=65789Hz a 2.5MHz/39=64103Hz, vidim, ze krok
na nejvyssi frekvenci je 1686Hz. Ale to je jeste jen teoreticky. Ano,
mohu pouzit fintu a mit vzdy v urcitem case urceny pocet period, ale ta
prekvence nebude stabilni, jen vyrobi ten kyzeny pocet period za cas.
Ano, neresim ted zadnou specialni periferii, ale jen obycejny taktovaci
kmitocet, od ktereho se u PIC vsechno odviji. Kdyz vezmu PIC18, pobezi
do 40MHz (nebo 48MHz) a situace je tedy o pulku lepsi, ale stale to neni
nic v ramci toho, co pisete.
Uz z tohoto si muzete zhruba udelat prehled o tom, co je asi tak mozne,
zkusit si konkretne propocist sve pozadavky a z toho usoudit, co ano a
co ne.
Takze predstavme si, ze vezmeme CPLD, kus pameti s tabulkou sinusovky a
DAC s dolni propusti na vystupu. CPLD pojede po tabulce po kroku
(pricita k akumulatoru, ktery je smernikem do pameti), ktery zadame
externe. Takze ukazatel jede po pameti a z pameti si data davame na DAC
a vyfiltrujeme. Tim jde z vystupu sinus a ten ackoli nebude slozen vzdy
ze stejnych hodnot z tabulky (podle toho jak pricita k akumulatoru
proste mnoho hodnot preskoci), bude po vyfiltrovani vzdy sinem a tim
bude frekvence kde chceme bez vetsiho rozladovani (ten sin zkratka neni
samoucelny ani kdyz chcete ve vysledku obdelniky, protoze pri
vytvarovani Vam vyhodi hranu lepe kde ma byt, nez kdyz je bud pred a
nebo za, jestli to pisu srozumitelne). Ted si musite vypocist, kolik
potrebujete pameti, jak rychle to taktovat a kolik udelat rozsah
pricitane hodnoty (aby nejvyssi frekvence mela alespon par vzorku a
nejnizsi se take dala zadat).
Nazorny obrazek najdete zde:
http://www.cs.washington.edu/homes/diorio//Talks/InvitedTalks/MTT97/sld005.htm
Myslim, ze ale takoveto brouky pro digitalni syntezu frekvence existuji
a nekdo tady uz o nich psal, takze mozna by bylo snazsi se po nich
podivat, nez to realizovat jinak.
http://www.analog.com/en/subCat/0,2879,770%255F843%255F0%255F%255F0%255F,00.html
--
Jiri Bezstarosti
Šula Miloš napsal(a):
> Zdravím,
> potřebuji generovat PICem ideálně přes PWM, signál o různých
> frekvencích od zhruba 800Hz - 65KHz s rozlišením tak 14 - 16 bitů cca
> 1-5Hz/1bit.Na duty cycle mi nezáleží ten bude pevně nastavený třeba na
> 1:4.Koukal jsem teď na dokumentaci třeba k 18F2550, ale ten umí jen
> rozlišení 10bit pro PWM ( z TMR2 ),což mi nestačí. Existuje nějaký
> brouk, který to zvládne ? Plus musí mít alespoň 1 A/D 16 bit vstup.
>
> děkuji
> Miloš Šula
>
>------------------------------------------------------------------------
>
>_______________________________________________
>HW-list mailing list - sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
>
>------------------------------------------------------------------------
>
>No virus found in this incoming message.
>Checked by AVG Free Edition.
>Version: 7.5.488 / Virus Database: 269.13.35/1040 - Release Date: 30.9.2007 21:01
>
>
Další informace o konferenci Hw-list