PIC a PWM - DDS

Michal HW michalgregor@centrum.cz
Pondělí Říjen 1 12:05:42 CEST 2007


50 instrukci je trochu moc. Na portu bude paraelni hodnota?
Napisu to v C od oka:

Vystup_PWM=1;
Cas_Pauzy=Horni_Cas;
do {
    nop();
   nop();
} while (Cas_Pauzy != 0);

Vystup_PWM=0;
Cas_Pauzy=Dolni_Cas;
do {
    nop();
   nop();
} while (Cas_Pauzy != 0);

Je to par radku kodu a v cyklu pauzy je hromada casu nacist pozadovane udaje ze seriove linky. Bude to chtit ale napsat v asembleru a dobre odladit casovani.

Michal

  ----- Original Message ----- 
  From: Šula Miloš 
  To: HW-news 
  Sent: Monday, October 01, 2007 11:47 AM
  Subject: Re: PIC a PWM - DDS


  Ale ja nechtel sinusovku, ale obdelnik.
  pri 20MHz to je:
  20/4=5MHz
  tj 5 milionu instrukci za sekundu
  při délce instrukcí 1 takt s 50 instrukcemi ( nastaveni portu do H + 
  zpozdeni+nastaveni do L + zpozdeni ) je max.frekvence 100KHz.

  Bohužel pak procesor není schopen dělat cokoliv jiného, takže budu muset 
  použít procesory 2.Jeden bude pracovat jako generátor frekvence, kterou si 
  přečte ze 2 portů a druhý bude obsluhovat a nastavovat porty podle 
  požadovaného kmitočtu.


  Miloš

  ----- Original Message ----- 
  From: "Jiri Bezstarosti" <jiri@bezstarosti.cz>
  To: "HW-news" <hw-list@list.hw.cz>
  Sent: Monday, October 01, 2007 11:06 AM
  Subject: Re: PIC a PWM - DDS


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

  _______________________________________________
  HW-list mailing list  -  sponsored by www.HW.cz
  Hw-list@list.hw.cz
  http://list.hw.cz/mailman/listinfo/hw-list 

  _______________________________________________
  HW-list mailing list  -  sponsored by www.HW.cz
  Hw-list@list.hw.cz
  http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20071001/1db15f67/attachment-0002.htm 


Další informace o konferenci Hw-list