Infra DO s PIC - pomoc s PWM

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
tmz

Infra DO s PIC - pomoc s PWM

#1 Příspěvek 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.
Přílohy
S3.jpg
(28.12 KiB) Staženo 140 x

Uživatelský avatar
Modemo
Příspěvky: 90
Registrován: 13 kvě 2007, 02:00
Bydliště: Brno, Pov. Bystrica

#2 Příspěvek 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:

tmz

#3 Příspěvek 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

Uživatelský avatar
Modemo
Příspěvky: 90
Registrován: 13 kvě 2007, 02:00
Bydliště: Brno, Pov. Bystrica

#4 Příspěvek 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 :)

tmz

#5 Příspěvek od tmz »

Na osciloskopu to vypadalo takhle divnì (obr.) Vim, že univerzál. DO stojí pár stovek, ale chci si naprogramovat vlastní :)
Přílohy
remote.jpg
(26.85 KiB) Staženo 56 x
remote.jpg
(26.85 KiB) Staženo 62 x

Uživatelský avatar
Modemo
Příspěvky: 90
Registrován: 13 kvě 2007, 02:00
Bydliště: Brno, Pov. Bystrica

#6 Příspěvek od Modemo »

Vsetko pasovalo, az na to, ze to hore bolo rozmazane? A ako si snimal signal z origo DO a z tvojho?

tmz

#7 Příspěvek 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

Uživatelský avatar
Modemo
Příspěvky: 90
Registrován: 13 kvě 2007, 02:00
Bydliště: Brno, Pov. Bystrica

#8 Příspěvek od Modemo »

Hmm tak tomu nechapem preco to nejde :upset: , uvidime co ini poradia.

Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 02:00
Kontaktovat uživatele:

#9 Příspěvek od jankop »

Jaksi se tady zapomíná na nosnou.
Kolik to dělá..... 36, 38, 40, 56 KHz? Jak to máš ošetřený?

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#10 Příspěvek 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é...

Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 02:00
Kontaktovat uživatele:

#11 Příspěvek 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á.

tmz

#12 Příspěvek 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...

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#13 Příspěvek 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).

tmz

#14 Příspěvek 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.?

Uživatelský avatar
Modemo
Příspěvky: 90
Registrován: 13 kvě 2007, 02:00
Bydliště: Brno, Pov. Bystrica

#15 Příspěvek 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:

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“