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
bin gerade hier: http://www.mikrocontroller.net/articles/IRMP das scheint aber nich ganz zu passen... Dennis
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
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?
@ 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 ...
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.