Forum: Mikrocontroller und Digitale Elektronik Wie funktioniert dieser IR-Code?


von Aike T. (biertrinker)


Lesenswert?

Hallo,

ich habe eine Aufzeichnung eines IR-Codes von einen Panasonic Fernseher 
angehängt. Um RC5 handelt es sich dabei wohl nicht. Kann mir jemand 
eventuell dabei weiterhelfen den genauer zu verstehen? Mich interessiert 
dabei eigentlich nicht was genau da übertragen wird, sonder nur wie der 
Code technisch aufgebaut ist, damit ich zumindest einfacher einzelne 
Codes wiedererkennen kann.
Bisher kann ich eigentlich nur sagen das jeder Code mit diesem großen 
Block beginnt. Kenn jemand dieses Format?

viele Grüße

Aike

von John S. (linux_80)


Lesenswert?

Hi,

schau mal ob Du hier was passendes findest:
http://www.sbprojects.com/knowledge/ir/ir.htm

von Aike T. (biertrinker)


Angehängte Dateien:

Lesenswert?

Anhang...

von TB (Gast)


Lesenswert?

Wenn des end signal net fehlen würde würde ich auf sparcinc tippen

von Frankl (Gast)


Angehängte Dateien:

Lesenswert?

Vielleicht kannst Du damit etwas anfangen.

von Aike T. (biertrinker)


Lesenswert?

ja, durchaus, das sieht recht hilfreich aus, vielen Dank!

von Sven S. (schwerminator)


Lesenswert?

Wenn ich richtig gezählt habe, könnte das der Japan- oder auch 
Kaseikyo-Code sein.

Siehe: 
http://www.ktet.fh-muenster.de/Download/Diplomarbeiten/PdaLirc.pdf 
(Seite 17)

Allerdings war bei meinem Gerät die Modulationsfrequenz nicht 56kHz, wie 
in der Arbeit angegeben, sondern 38kHz, muss man dann mit dem 
Oszilloskop schauen.

von Aike T. (biertrinker)


Lesenswert?

Hallo Sven,

ja, ich denke du hast richtig gezählt. Das scheint er zu sein. Das hilft 
mir alles schon ein gutes Stück weiter. Jetzt muss ich den erstmal 
implementieren.

vielen Dank und viele Grüße

Aike

von Sven S. (schwerminator)


Lesenswert?

Ich habe eine C-Implementierung. Die arbeitet zwar mit delays, aber wenn 
du sie brauchst, schrei einfach.

von Aike T. (biertrinker)


Lesenswert?

für Senden oder Empfangen? Den Empfangsteil bekomme ich für meine Zwecke 
schon ganz gut hin, ich brauche quasi nur bis auf die Bit-Ebene zu 
kommen, weiteres Dekodieren brauch ich nicht.
Was mir jetzt noch fehlt ist das senden, da habe ich noch so meine 
schwierigkeiten mit.

von Sven S. (schwerminator)


Lesenswert?

Hier ist mein Sendecode. Übergeben wird nur der 10-Bittige Datenteil, 
Hersteller- und Gerätekennungen sind fix. Bei mir ists ein Denon 
DRA-700AE.
1
//Makros
2
#define IR_LED_ON()            DDRD |= (1<<PD7)
3
#define IR_LED_OFF()          DDRD &= ~(1<<PD7)
4
5
void IRInit(void){
6
  TCCR2A |= (1<<WGM21);    //CTC
7
  TCCR2A |= (1<<COM2A0);    //Toggle OC2 on compare match
8
  TCCR2B |= (1<<CS20);    //Voller CPU-Takt
9
}
10
11
void JAPAN(uint16_t data){
12
  //Modulationsfrequenz: 38kHz
13
  OCR2A = 104;
14
  
15
  //Sequenzvariable
16
  uint8_t sequenz[6];
17
  sequenz[0] = 84;                  //Erstes Herstellerbyte
18
  sequenz[1] = 50;                  //Zweites Herstellerbyte
19
  sequenz[2] = 112;                  //Paritynibble der Herstellerbytes und erstes Genrenibble
20
  sequenz[3] = 6 | (data << 4);            //Zweites Genrenibble und ersten vier Datenbits
21
  sequenz[4] = (data >> 4) | (0 << 6);        //Letzten sechs Datenbits und beide ID-Bits
22
  sequenz[5] = sequenz[2] ^ sequenz[3] ^ sequenz[4];  //Paritybyte
23
24
  //Start
25
  IR_LED_ON(); _delay_us(3454); IR_LED_OFF(); _delay_us(1654);
26
  
27
  //Datensequenz
28
  for(uint8_t i=0; i<6; i++){
29
    uint8_t temp_sequenz = sequenz[i];
30
    
31
    for(uint8_t j=0; j<8; j++){
32
      IR_LED_ON();
33
      _delay_us(465);
34
      
35
      IR_LED_OFF();
36
      _delay_us(394);
37
      
38
      if(temp_sequenz & 1)
39
        _delay_us(789);
40
      
41
      temp_sequenz >>= 1;
42
    }
43
  }
44
45
  //Stop
46
  IR_LED_ON(); _delay_us(474); IR_LED_OFF(); _delay_us(74755UL);
47
}

von Aike T. (biertrinker)


Lesenswert?

danke, das sollte bei mir so eigentlich passen, vielen Dank!

von Aike T. (biertrinker)


Lesenswert?

Ach so, erzeugst du die kurzen 36 khz Pulse extern?

von Aike T. (biertrinker)


Lesenswert?

Ach, quatsch, habs schon selbst gesehen, das machst du über den OC2 Pin, 
alles klar.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.