Távirányító probléma

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
pakibec
Biztosítékgyilkos
Hozzászólások: 61
Csatlakozott: 2006. március 20. hétfő, 7:00

Távirányító probléma

Hozzászólás Szerző: pakibec »

Sziasztok!

Mega8-as avr vezérléséhez szeretnék infrás távirányítót használni, ill. esetleg a késöbbiekben sajátot építeni. Sajnos a bascom-ban lévő rc5 ill. 6 -tal nem sikerült, így építettem egy teszt kapcsolást:
TSOP PORTC.5-re, PORTB.1-re infra led ellenálláson keresztül, Portb.2-re egy vörös led, szintén elleálláson keresztül.

A configok után ezt a progit írtam hozzá:
Do
A = Pinc.5
If A = 1 Then Portb = 0
If A = 0 Then Portb = 6
Loop

A lényeg az lenne, hogy az eredeti távirányítóval rávilágítok, így kapcsolná pl a TV-t. (Később elmenteném a jelsorozatot és így talán kihámozhatóak lennének a kódok). A problém csak az, hogy nem müködik :(

A vörös led szépen villog, de a TV nem kapcsol. Elvileg azonos a jel a távirányitó jelével, akkor miért nem megy? Esetleg elcsúszhat az időzítés?

Előre is köszönöm a válaszokat!
Üdv
Robert-

Hozzászólás Szerző: Robert- »

A vett jel 36kHz hordozon van! A kimenojelednek is ilyen 36kHzra kell ültetve lenni! Nálad ez nincs. A TSOP ezt leválasztja...

Ezért nem működik.

A legegyszerűbb: Timerx-en 36kHz jel összehoz, kimenete vagy a megszakításrutinban tetszőleges láb ki/bekapcsol (Toggle esetén 36*2 kHz!). És a timert engedélyezd/tiltod a magas/alacsony TSOP jel függvényében.

A TSOP kimenetén a felhúzóellenállás ott van?
A M8-as ICt a lehető legmagasab órajelen járasd (10 MHz felett), mert a 36 kHz ha megszakítás alapon állítod sok futásidőt elvesz., Érdemes a Timer Tx kimenetére (x=0,1,2) hardveresen! előállítani a 36kHz-t és azt a Stop Timerx /Start Timerx paranccsal engedélyezni/újraindítani.
Avatar
pakibec
Biztosítékgyilkos
Hozzászólások: 61
Csatlakozott: 2006. március 20. hétfő, 7:00

Hozzászólás Szerző: pakibec »

Hálásan köszi :!: :!: :!:

:oops: Teljesn igaz a 36 kHZ-ről megfeletkeztem, nyilván a TV-ben is TSOP vagy hasonló van. a felhúzó ellenállás és a kondi azért megvan :)

Délután kipróbálom, remélem megoldja a problémát.

Hardveres előállítás alatt mit értessz? Hogy az OC1A-t használom, a port kapcsolgatása helyett? Sajnos a sebesség nagyon lényeges, mert a kapcsolás órát is üzeletetne (propeller clock).

Egyébként nagyjából már müködik. Az óra nem pontos, a távi még nem jó, és a trafó telesítmény is kicsi, de a többi az ok, szép a megjelenítés :)

Üdv
Robert-

Hozzászólás Szerző: Robert- »

Óra:
Külső 32kHz kristályról és a Timer2-t használja. Ld. bascom súgó Config clock=... rutinját.
Ekkor a chip a belső 8 MHz-ről jár.

HW előállítás az OC1A-ra.
Config timer=...... és ezzel előállítani a 36 kHz-t és erre megy az IR LED.

Propeller Clock: 20 ford/sec (?) és a körív felbontva ~180 részre (2 fok/frissites) eseten a LED vezerlesek 180*20=3600 / sec. Ez nem olyan veszes... bar kerdes hova fer el ennyi adat (pl. egyedi kep, karakterkod stb). Belso EEPROM? Kulso SRAM? ez ezert 3,6kbyte/sec folyamatos adatatvitel a kulso memoriabol!
Avatar
pakibec
Biztosítékgyilkos
Hozzászólások: 61
Csatlakozott: 2006. március 20. hétfő, 7:00

Hozzászólás Szerző: pakibec »

Előrelépés történt :)

A kapcsolás továbbítja megfelelően a távirányító jelét.

De ez csak az első lépés, következő tesztként "felvettem" a jelet az eepromba. Pontosabban eltároltam a logikai szintek változása között eltelt időket, majd "visszajátszottam", 36 KHz-el modulálva, de sajnos nem jó.

Az impulzusok csopotokra oszlanak, nem teljesen azonosak, de csak az egyesek és néha a tizesek térnek el. Lehet hogy ez is sok? Timer1-et használtam, 8MHz-es órajel 8-al leoszva. Ami egy kicsit fura, hogy az impulzusszélesség(a csoportok között) elég tág határok között változik.

A cél végülis az lenne, hogy a propeller clock-hoz egy már meglévő távirányítót tudjak használni.

Egyébként a propeller clocknál a müködés, hogy van a forgó részen egy IR fotodióda, ez int0 megszakítást indikál. Ez a nullpont. Minden körben innen indul egy ciklus, ami data sorokból sorban a számjegyeknek megfelelően olvassa ki a led világítási poziciókat. Az időket nem kell külön megadni, mert a fix kezdőpont és a viszonylag stabil fordulat miatt elég kontansak. Nekem 1 karakter 9 oszlopból áll, 100uS-ig világít 1 oszlop. Szóval a digitális kijelzés nagyon egyszerű, az analóg már komolyabbnak tűnik.

A 32 KHz-es kristályt hová kötöd be?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A 32kHz kristály az XTAL helyére megy ekkor. A chip órajele a belső 8MHz RC. A Config Clock parancsban megadott paraméterek miatt a Timer 2-t használja és az órarutinok (óra és dátumkezelés) is készen vannak:).
Avatar
pakibec
Biztosítékgyilkos
Hozzászólások: 61
Csatlakozott: 2006. március 20. hétfő, 7:00

Hozzászólás Szerző: pakibec »

Mennyire pontos ez az óra?

Van lehetőség finomhangolásta? Csak mert ha simán kristályról járatom az avr-t, és a frekit losztom, az idő úgy sem szokott teljesen pontos lenni.


Előre is köszi!
Üdv
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A Xtal esetén a kvarc pontossága határozza meg. Ez ~30 ppm, napi 1-2 mp eltérés lehet.

A főórajel leosztva és úgymeghivogatva macerás lehet, mert:
1, meg kell írnod az órakezelő rutinokat
2, elcsúszás lehet mert drága erőforrást pazarolsz a számolásokra ami csúszást okozhat.
3, plusz tárhelyet is foglal....


Legjobb: Külső óraIC önálló táppal(töltődő elem v. Supercap), és így az ébresztés is HWből megy, valamint van fix 1Hz órajeled és belül van a chipben az összes óraszámlálás....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Illetve az órajelről járatott számláló esetén a 16 bites! timert lövöd el. Abból meg 1 van csak.

A megszakításban csak Mp-t illik léptetni és a főprogramban lehkezelni, különben az IT hossza mindíg más lesz és fejreállsz a főprogrammal.
Avatar
pakibec
Biztosítékgyilkos
Hozzászólások: 61
Csatlakozott: 2006. március 20. hétfő, 7:00

Hozzászólás Szerző: pakibec »

Teljesen igaz. Sajnos kevés a hely a nyákon, azt hiszem a 32kHz-es kristály lesz a megoldás, a beépített ora rutinokkal.

Hallottam olyan progiról, ami irda-n keresztül veszi különböző távirányítók jeleit és analizálja a protokollt. Kerestem a neten, de nem igazán találtam.
Nem tudtok véletlenül egy proginevet, úgy könnyebb lenne a keresés.

Üdv
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Girder+IrDA plugin....

Helyileg a http://www.tavir.hu oldal letöltések alatt a Girder 3.00.

DE: Az IrDA már egy protokoll és a SIR (azaz kb. ömlesztett adatok) vevővel jutsz eredményre. Ezt a legtöbb IrDA nem tudja:(.

Infra távirányító vevő a TSOP17xx ill TSOP18xx vevők, és az adó pedig IR LED 30-32-34-36-38-56kHz-vel meghajtva. Így 10-14m hatótávot tudsz. Az IrDA tud kb. 1 métert....
Rag

Hozzászólás Szerző: Rag »

Távirányítós kérdés:

Ha a szimulációban szeretném az a távirányítót "használni", akkor a két változót(address, command) ott is létre kell hoznom értéket adva neki, majd kézzel az Interrupt fülön indítani egy megszakítást?

Üdv
Rag
Robert-

Hozzászólás Szerző: Robert- »

Ha a Getrc5re gondolsz, akkor igen.
Az INTx-l inditod, itt lepesenkent hajtasz vegre es a kilepes elott adsz a ket valtozodnak erteket.
Avatar
nobody_hun
Bitfaragó
Hozzászólások: 425
Csatlakozott: 2005. november 14. hétfő, 7:00

Hozzászólás Szerző: nobody_hun »

Üdv,
Kérdésem a köv. lenne:
Adott két egyforma eszköz amit "távirányítani" kellene, de 1 kontrollerrel. Ez nem gáz, valamivel átkapcsolgatom a jel útját.
Viszont, az átvitelnek nem IR, hanem fixen bedrótozottan kell történnie (nyilván, hogy a két egység ne foghassa a másiknak szánt jelet).
Szerintetek az megoldás, ha az IR vevőt likvidálom és ellenálláson+váltókapcsolón (amit az AVR vezérel) keresztül kötöm az AVR-re?
Robert-

Hozzászólás Szerző: Robert- »

Sorosport nem jo? Muszaly elbonyolitani?

TTL 5V soroson összekötöd.
Válasz küldése