Forum: Mikrocontroller und Digitale Elektronik Welcher IR Code ist das?


von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich habe einen 4 IR Codes einer Fernbedienung aufgenommen (Rot Grün Gelb 
Blau) Tasten im Videotext.

Fernseher "SAMSUNG" LCD TV.

Telegrammlänge 62ms
Start Low 4,6ms
dann High 4,4ms

High: lange (1,6ms) und kurze (0,6ms) Pausen
Low : alle 0,6ms

Ich würde das gern mit einem Atmega168 auswerten, für einen Tip zum 
passenden Codeschnipsel (in C) wäre ich dankbar.

Dennis

von Dennis (Gast)


Lesenswert?

bin gerade hier:

http://www.mikrocontroller.net/articles/IRMP

das scheint aber nich ganz zu passen...

Dennis

von Programist (Gast)


Lesenswert?

Wenn das Samsung ist, dann muss es auch Sumsung IR-code sein.

von Dennis (Gast)


Lesenswert?

Hi,

ja, aber bei den Samsung Protokollen ist für kurz low und High 0,55ms 
und 0,45ms angegeben und für lang high 1,45... ich habe längere 
gemessen...

Das mit Synx und stop kommt auch nicht ganz hin..

Dennis

von Ralli (Gast)


Lesenswert?

Entweder lässt sich eine Code-Beschreibung im Netz finden
(vor einigen Jahren wurden Suchmaschinen erfunden), oder
es ist ganz was Neues - dann freuen sich die Leute, die
Code-Beschreibungen ins Netz stellen, über eine Liste der
Codes.

Start Low 4,6ms dann High 4,4ms ... Synchronisierung.

Low : alle 0,6ms .................. Bit-Abgrenzung

High: (1,6ms) / (0,6ms) ........... Bit-Wert (1 oder 0)

Dazu könnte man annehmen, dass noch eine Fehlererkennung
mit dabei ist, weil (in den Beispielen) High-lang und
High-kurz immer mit gleicher Anzahl auftreten.

Was für ein Code-Schnipsel soll denn jetzt kommen?

Wie man den Timer programmiert?
Wie man den IRQ auf negative Flanke programmiert?

Oder wie man IR-Code-rein und
Erkanntes-Kommando-zur-Anzeige bringt?

von Programist (Gast)


Lesenswert?

Dann ist es halt der neue Samsung IR-code.

von Ralli (Gast)


Lesenswert?

@ Programist: Sehr hilfreich, danke!

Ansonsten darf man sich bei IR-Codes nicht zu schnell durch
+/-10% Abweichung der Low- und High-Zeiten abschrecken lassen.

Start Low 4,6ms dann High 4,4ms ... oder
Start Low 4,5ms dann High 4,5ms ... die Summe ist jeweils 9 ms!

Solche Abweichungen kommen von der Decoder-Hard- und Firm-Ware.
Hängt auch davon ab, wie gut das Signal empfangen wird.

0,6 ms / 1,6 ms   oder   560µs Puls / 1690µs Pause
das sind zusammen ca. 2,225 ms +/- 1,1 %

On-Chip-Oszillatoren sind manchmal nicht genauer...

Bis jetzt spricht noch nichts dagegen, dass wo "Samsung"
draufsteht, auch ein "Samsung" drin ist ...

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Dennis schrieb:

> ich habe einen 4 IR Codes einer Fernbedienung aufgenommen (Rot Grün Gelb
> Blau) Tasten im Videotext.
>
> Fernseher "SAMSUNG" LCD TV.
>
> Telegrammlänge 62ms
> Start Low 4,6ms
> dann High 4,4ms
>
> High: lange (1,6ms) und kurze (0,6ms) Pausen
> Low : alle 0,6ms

Ist das SAMSUNG32-Protokoll - so habe ich das jedenfalls im IRMP 
genannt. Das heisst: IRMP versteht es ;-)

Siehe auch:

  http://www.mikrocontroller.net/articles/IRMP#Die_IR-Protokolle_im_Detail

> Ich würde das gern mit einem Atmega168 auswerten, für einen Tip zum
> passenden Codeschnipsel (in C) wäre ich dankbar.

IRMP passt da wie die Faust aufs Auge. Du kannst ja alle anderen 
Protokolle in irmpconfig.h deaktivieren, damit der Code auch schön klein 
wird.

Gruß,

Frank

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

Hey Frank,

danke für die Rückmeldung, das beruhigt auf jeden Fall. Bevor ich mich 
entscheide wie ich das löse gibt es allerdings noch ein paar Rückfragen 
zur Datenstruktur, ich würde mich sehr über Antworten dazu freuen.

Es ist aufgefallen dass sich die 16 Adressbits aus 2 sich wiederholenden 
8Bit Folgen zusammenzusetzen scheinen.

Frame     1 Start-Bit +
          16 Daten(1)-Bits +
          1 Sync-Bit +
          20 Daten(2)-Bits +
          1 Stop-Bit

Daten(1)  16 Adress-Bits

Daten(2)   4 ID-Bits +
           8 Kommando-Bits +
           8 invertierte Kommando-Bits


Da ist die Frage ob es nun 8 Bit Adresse ist, oder 16. Die Frage ist 
aber zweitrangig.
Das Datenpaket scheint "nur" 32 Bits zu enthalten und nicht 36, also die 
ID und das mittlere Sync scheint zu "fehlen"
Die 8 Kommando Bits und deren Invertierung scheint da zu sein.

Meine Fragen:

Gibts Infos von Samsung für Taste<->Kommando und zweitrangig 
Adresse<->Gerät!?
Was hat das mit den ID Bits auf sich, wofür sind die angedacht und warum 
könnten sie hier fehlen?
Ist die Zuordnung 1-0 so richitg zu den zeiten gewählt? Das Signal wurde 
mit einem TSOP Empfänger aufgenommen (open Collector). Es ist 
Standardmässig High und wird bei Empfang Low und dann High...
Hast du eine Idee woran das mit dem geänderten Timing liegen könnte?

Zum IRMP,
wird mit Flankenerkennung und Signalzeitmessung gearbeitet (Interupts 
bei fallender und steigender Flanke? - Timer) Ich würde das Signal gern 
einfach nur pollen.
Arbeitet IRMP mit Signalzeiten oder werden in einem festen Raster nur 
Einsen und Nullen in ein Array geschrieben je nach Portpinzustand und 
das Signal danach interpretiert?

Ich würde mich über eine kurze Rückmeldung sehr freuen.

Gruß,
Dennis

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Hallo Dennis,

Dennis schrieb:

> Es ist aufgefallen dass sich die 16 Adressbits aus 2 sich wiederholenden
> 8Bit Folgen zusammenzusetzen scheinen.

Kann durchaus sein, es gibt einige Hersteller, die die Adresse oder das 
Kommand 2mal verpacken.

> Frame     1 Start-Bit +
>           16 Daten(1)-Bits +
>           1 Sync-Bit +
>           20 Daten(2)-Bits +
>           1 Stop-Bit

Du bist im falschen Film :-)

Ich meinte nicht das SAMSUNG-Protokoll, sondern das 
SAMSUNG*32*-Protokoll. Da gibt es nur 32 Bits und kein Sync-Bit. Du 
musst im Link zu den Protokoll-Details ein wenig runterscrollen, dann 
kommt in der Tabelle das SAMSUNG32-Protokoll.

> Meine Fragen:
>
> Gibts Infos von Samsung für Taste<->Kommando und zweitrangig
> Adresse<->Gerät!?

Nicht, dass ich wüsste. Du musst alle mal mit IRMP durchspielen, also:

a) Taste auf FB drücken
b) von IRMP Adresse/Kommando auf UART oder LCD ausgeben lassen.

> Was hat das mit den ID Bits auf sich, wofür sind die angedacht und warum
> könnten sie hier fehlen?

Siehe oben, bitte nicht SAMSUNG mit SAMSUNG32 verwechseln.

> Ist die Zuordnung 1-0 so richitg zu den zeiten gewählt? Das Signal wurde
> mit einem TSOP Empfänger aufgenommen (open Collector). Es ist
> Standardmässig High und wird bei Empfang Low und dann High...

Sieht gut aus.

> Hast du eine Idee woran das mit dem geänderten Timing liegen könnte?

Die FBs haben Abweichungen von bis zu 40%. IRMP arbeitet mit 
entsprechenden Toleranzen und erkennt auch stark abweichende Timings.

> Zum IRMP,
> wird mit Flankenerkennung und Signalzeitmessung gearbeitet (Interupts
> bei fallender und steigender Flanke? - Timer) Ich würde das Signal gern
> einfach nur pollen.

IRMP pollt - idealerweise mit 15kHz. Für SAMSUNG32 reicht auch 10kHz.

> Arbeitet IRMP mit Signalzeiten oder werden in einem festen Raster nur
> Einsen und Nullen in ein Array geschrieben je nach Portpinzustand und
> das Signal danach interpretiert?

Das Signal wird on-the-fly interpretiert. IRMP erkennt anhand der 
Startbits das Protokoll, schaltet die Timing-Tabellen dann auf das 
Protokoll um und erkennt den Rest, während das Signal reinkommt.

Das steht aber ziemlich zu Anfang des IRMP-Artikels, Du musst ihn auch 
mal lesen ;-)

> Ich würde mich über eine kurze Rückmeldung sehr freuen.

Kein Problem.

Gruß,

Frank

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.