Stránka 1 z 2

Infra DO s PIC - pomoc s PWM

Napsal: 26 čer 2007, 19:17
od tmz
Zdravím, chtěl bych si postavit infrared dálkové ovl. k HIFI SONY. Potřebuju vygenerovat asi takový signál (viz obr.) Mám k tomu PIC16F877A. Jak mám napsat program? Napadlo mě jedině dát střídu 100%, pak časová smyčka a změna střídy na 0% + zase časová smyčka.

Napsal: 26 čer 2007, 19:42
od Modemo
ja by som to riesil asi takto:
1.pustit si casovac aby po 45ms vzniklo prerusenie a nastavilo priznak ramca
2. nastavit 1 a pockat 2.4ms jednoduchou sluckou cakacou
3. dat do 0 a pockat 6ms
4. dat tam 1 a podla toho ci chces odoslat 0 alebo 1 pockat dany cas (je to tam 1.2 alebo 12ms??? Lebo vyzera to vacsie ako pre 6ms a je tam napisane 1.2ms)
5. kroky 3 a 4 opakovat dany pocet bitov
6. nastavit 0 a pockat na nastavenie priznaku ramca (cize ten od posled.bitu po koniec ramca)
Tod vsio, asi tak nejak :wink:

Napsal: 26 čer 2007, 19:48
od tmz
Je to 0,6 ms a 1,2 ms. Jak by to bylo s tím přerušením v assembleru (kód)?
Potřebuju to ale pomocí PWM, protože když jsem zkoušel normálně generovat obdélníky, tak na osciloskopu to sice vypadalo pěkně, ale nefungovalo to

Napsal: 26 čer 2007, 20:06
od Modemo
hmm, ja by som to PWM neriesil urcite, PWM je k niecomu inemu, nie na toto. No ako to ma v asm vyzerat je silne zavisle od pouziteho procesoru, asm viem iba pre 51ky a teraz uz pouzivam C pre AVR, takze s PIC v asm ti nehelfnem.
ALE! Ak ti to na osciloskope vyzeralo dobre, ale neslo to, tak chyba je inde! :roll: A si si isty protokolom? Skus si kuknut orginal DO.
Naco to vlasne chces? Ak ti ide len o tom mat nieco take, tak si kup uciace DO a nauc ho rovno z orginal DO a mas. Ak to robis kvoli programovaniu tak vela zdaru :)

Napsal: 26 čer 2007, 20:09
od tmz
Na osciloskopu to vypadalo takhle divně (obr.) Vim, že univerzál. DO stojí pár stovek, ale chci si naprogramovat vlastní :)

Napsal: 26 čer 2007, 20:15
od Modemo
Vsetko pasovalo, az na to, ze to hore bolo rozmazane? A ako si snimal signal z origo DO a z tvojho?

Napsal: 26 čer 2007, 20:18
od tmz
K osciloskopu jsem připojil IR LEDku a posvítil na ní ovladačem a mojí ledkou připojenou na PIC. V horní části byly slaběji svítící pruhy

Napsal: 26 čer 2007, 20:24
od Modemo
Hmm tak tomu nechapem preco to nejde :upset: , uvidime co ini poradia.

Napsal: 26 čer 2007, 21:09
od jankop
Jaksi se tady zapomíná na nosnou.
Kolik to dělá..... 36, 38, 40, 56 KHz? Jak to máš ošetřený?

Napsal: 26 čer 2007, 21:25
od Crifodo
podle toho oscilogramu to vypadá, že originál má nějakých 30% modulaci a tvoje signály jen modulační rámec bez nosné...

Napsal: 26 čer 2007, 22:13
od jankop
Modulace je stoprocentně 100%.
tmz píše:K osciloskopu jsem připojil IR LEDku a posvítil na ní ovladačem a mojí ledkou připojenou na PIC. V horní části byly slaběji svítící pruhy

Jen metodika měření a naprosté nepochopení základních principů výsledek poněkud zastírá.

Napsal: 27 čer 2007, 19:06
od tmz
Jede to snad okolo 39 kHz. Takže mám v pic udělat PWM s f=39kHz a měnit střídu? Nevim ale jestli mám generovat srřídu, pak časová smyčka, změna střídy a zase čas smyčka, nebo počítat počet PWM period...

Napsal: 27 čer 2007, 19:22
od Crifodo
co máš pořád s tou střídou? podle toho protokolu na obrázku jde o sériový přenos 12 bitů, kde start bit trvá 2,4 milisekund a pak jde přenos bitů u kterých log 0 je 0,6 ms mezera/0,6 ms "tečka" a log 1 je 0,66 ms mezera/1,2 ms "čárka". Střída nosné zůstává konstantní a je asi 50% (1:1). Tedy potřebuješ programový převod 12 bit slova na sériovou posloupnost a jen řídit příslušné časové smyčky. (protokol toho DO neznám, sorry).

Napsal: 27 čer 2007, 19:41
od tmz
Já už v tom mám guláš.... Takže šlo by nastavit PWM a dát zapnout na 2,4 ms pak vypnout na 0,6 ms atd.?

Napsal: 27 čer 2007, 19:49
od Modemo
Comu nerozumies??? Jednoducho urob to co sme sa bavili, s tym, ze ked mas mat na vystupe log 1 tak musis s vystupom kmitat medzi 0 a 1 o frekvencii nosnej vlny. :wink: V podstate to urobis tak, ze si navrhnes oneskorovaciu slucku tak, aby pocas cakania negovala vystup podla toho aku f nosnej mas.
Dufam, ze som netreskol kravinu :D
A ad ta tvoja PWMka, daj jej uz pokoj, teoreticky by to aj slo, ale tak to nerob. PWM sa nauc na RGB ledke racej :roll: