Um das ganze zu vervollständigen möchte ich das RCCar jetzt auch noch in
den IRSND einfügen.
Das habe ich schon gemacht:
in der irsndconfig.h habe ich eingefügt:
1
#define IRMP_SUPPORT_RCCAR_PROTOCOL 1 // flag: support RC car
Was muß mit dem has_stop_bit gemacht werden und wie ist es mit den
repetitions, sowas gibt es da alles nicht.
Was wohl noch fehlt sind die eigentlichen Daten, da blicke ich aber noch
nicht ganz durch was da gemacht werden muß ?
Auf jeden Fall müßte da ja auch wieder "zurückgeschoben" werden, aber
ich weis nicht genau wo das dann hin muß
Hi eku,
eku schrieb:> Die versprochenen Scans bei 20kHz, Reihe für Reihe von oben nach unten> (vgl. Beitrag "Re: IRMP - Infrared Multi Protocol Decoder").
Danke, habe sie nun mal durch den IRMP geschickt, Deine Tastatur hat
dasselbe Timing wie Torsten, die Tasten werden alle als FDC2-Protokoll
erkannt.
Das heisst, dass Dein damaliger Scan key15.txt aus
Beitrag "Re: IRMP - Infrared Multi Protocol Decoder"
tatsächlich nur mit 10kHz erzeugt wurde - und nicht mit 15kHz, wie Du
angegeben hast.
Was auffällig ist: die Timings Deiner Tastatur sind wesentlich exakter,
sie würde auch bei 10kHz von IRMP einwandfrei erkannt werden. Die
Streuungen der Puls-/Pausenlängen sind bei Torstens Tastatur wesentlich
breiter, gerade die Pausen werden zwischendurch arg kurz, so dass hier
20kHz als Scan-Rate benutzt werden muss.
Woran liegt das? Vielleicht doch am benutzten IR-Empfänger?
Daher Frage an Euch beide (eku und Torsten): welche IR-Empfänger nutzt
Ihr?
Ich werde das FDC2-Protokoll in FDC umbenennen und das FDC1-Protokoll
aus dem IRMP wieder rausnehmen. Es gibt keine zwei verschiedenen
Timings, es gibt nur eins.
Ich melde mich dann später wegen der Tastatur-Matrix nochmal.
Gruß,
Frank
Hi Torsten,
Torsten Kalbe schrieb:> ich benutze diesen hier von Reichelt, ich ein 36kHz Typ.>> SFH 5110-36
Danke für die Info. Bin gespannt, ob eku einen mit höherer Frequenz
benutzt und deshalb sein Timing besser ist.
> Ich hatte mir das Signal ja auch auf dem Oszilloskop angeschaut, und da> konnte ich solche Ausreisser ja garnicht sehen.
Ich habe die Analyze-Funktion von IRMP mal ein wenig ausgebaut, hier die
Timings von ekus Tastatur:
eku schrieb:> ich benutze das Pollin ATMEL Addon-Board V1.0 (810 053) mit TSOPxx36,> der breitbandiger als der SFH 5110-36 ist.
Das könnte der Unterschied sein:
Wenn das FDC-Keyboard mit 40kHz oder höher sendet, könnte der
SFH-Empfänger seine Probleme damit haben. Beim TSOP1736 gibt es keine
Probleme mit einer 40kHz-Modulation, da wird "nur" die Reichweite ein
wenig geringer.
Ich habe zu Hause sowohl TSOP1736 als auch TSOP1738 zum Testen.... aber
leider ist immer noch keine FDC-Tastatur angekommen. Pollin lässt sich
mal wieder ein wenig Zeit...
Gruß,
Frank
Ich schraube die nächsten Tagen nochmal meine Tastatur auseinander und
hänge das Scope an die IR-LED, dann sehen wir was da für eine Frequenz
drauf liegt.
Pollin hat bei meiner letzten Lieferung auch über eine Woche gebraucht,
die haben wohl momentan gut zu tun....
hallo,
sorry schon mal für die dumme frage aber:
was läuft hier beim Kompilieren falsch?
meine makefile (arbeite unter linux und will es für einen atmega168
erstellen)
1
# controller
2
MCU = atmega168
3
4
# frequency
5
F_CPU = 20000000UL
6
7
# main application name (without .hex)
8
# eg 'test' when the main function is defined in 'test.c'
9
TARGET = main
10
11
# c sourcecode files
12
# eg. 'test.c foo.c foobar/baz.c'
13
SRC = $(TARGET).c irmp.c
14
15
# asm sourcecode files
16
# eg. 'interrupts.S foobar/another.S'
17
ASRC =
18
19
# headers which should be considered when recompiling
Max M. schrieb:> was läuft hier beim Kompilieren falsch?> # use more debug-flags when compiling> DEBUG = 1
Das muss weg oder auf 0. Debuggen kann man unter Linux nur, wenn man
IRMP nativ für Linux übersetzt.
Gruß,
Frank
Hi Torsten,
Torsten Kalbe schrieb:> Tastatur läuft auf 38kHz, hab ich grad nachgemessen.
Danke für die Info. Das sollte Dein IR-Empfänger aber noch packen. Oder
hast Du alternativ einen 38kHz-Empfänger zur Hand?
Gruß,
Frank
Hallo Torsten,
Torsten Kalbe schrieb:> Um das ganze zu vervollständigen möchte ich das RCCar jetzt auch noch in> den IRSND einfügen.
Du hast das schon ganz gut hinbekommen, aber ein paar wichtige Sachen
fehlen noch. Solange es dafür keine Doku gibt, wie man einen Encoder in
IRSND einbaut, wirds auch schwierig.
Ich schaue, dass ich RCCAR diese Woche in den IRSND einbaue. Vielleicht
kannst Du das dann "abgucken" und im IRMP-Artikel dokumentieren ;-)
Gruß,
Frank
Hy,
also ich habe einen TSOP1738 Empfänger hier, mit dem könnte ich ein paar
Scans machen. Ich bin mir aber garnicht sicher, welchen ich ursprünglich
mal verwendet hatte....
Zum RCCar und der Doku, das kann ich dann sicherlich mal versuchen.
Hi eku,
eku schrieb:> Könntest Du bitte die Variable irmp_pause_time auf uint16_t setzen um> den Überlauf bei höheren Sampleraten zu verhindern.
Wird jetzt abhängig von F_INTERRUPTS gemacht, sobald IRMP_TIMEOUT_LEN
(das ist die Konstante mit dem höchsten Zeitwert) droht überzulaufen,
werden irmp_pause_time und last_pause als uint16_t definiert.
So kommt der erhöhte Codebedarf nur bei höheren Frequenzen zum Tragen -
aktuell ab 15875Hz und mehr. Ist eingecheckt im SVN als Version 1.6.5.
Gruß,
Frank
Hallo Frank!
Schade das sich RC5 und FDC ausschließen. Im
Beitrag "Re: IRMP - Infrared Multi Protocol Decoder"
beschreibst Du ja, woran es liegt. Fällt Dir vielleicht noch ein Kniff
ein, wie es doch gehen könnte?
Zum FDC-Protokoll noch ein paar Punkte: Jede Taste wird als zwei Frames
erkannt, egal wie kurz ich sie betätige. Alle Maustasten werden immer
als 0000 dekodiert. Ich vermute, dass beides an den nicht dekodierten
Bits begründet sind.
In Beitrag "Re: IRMP - Infrared Multi Protocol Decoder" schreibst Du noch
was von anderen Bits,
Frank M. schrieb:> Ich schaue, dass ich RCCAR diese Woche in den IRSND einbaue. Vielleicht> kannst Du das dann "abgucken" und im IRMP-Artikel dokumentieren ;-)
FDC- und RCCAR-Protokoll sind nun auch im IRSND drin - eingecheckt im
SVN.
Demnächst gibt es dann ein neues Release.
Gruß,
Frank
eku schrieb:> Schade das sich RC5 und FDC ausschließen.
Ja, sehr schade.
> Fällt Dir vielleicht noch ein Kniff ein, wie es doch gehen könnte?
Im Moment "verrennt" sich der IRMP im RC5, weil er das Start-Bit früher
gegen RC5 checkt als gegen FDC. Vielleicht drehe ich die Reihenfolge
rum, denn ein FDC-Frame ist länger als ein RC5-Frame. Ich könnte ihn
also zunächst in den FDC-Decoder reinlaufen lassen und wenn plötzlich
völlige Dunkelheit herrscht, aber noch nicht alle vermeintlichen
FDC-Bits empfangen wurden, die bisherigen Bits in RC5-Manchester-Code
"umrechnen". Das könnte vielleicht gehen, ich werde mal drüber
nachdenken.
> Zum FDC-Protokoll noch ein paar Punkte: Jede Taste wird als zwei Frames> erkannt, egal wie kurz ich sie betätige.
Im Deinen Scans sehe ich die Wiederholung nur ab und zu, nicht
ausnahmslos. Ich könnte die Regel einbauen, dass ein Frame mindestens 2x
reinkommen muss (einmal mit vier 0-en im REPEAT-Block des Frames, einmal
mit vier 1-en). Erst alle weiteren Repeat-Frames werden dann als
tatsächlicher langer Tastendruck erkannt werden. Meinst Du das so?
Wenn Du meinst, dass das so besser wäre, mache ich das. Allerding
wundere ich mich, dass ich diesen 2. Frame nur bei manchen Tastendrücken
gesehen habe....
> Alle Maustasten werden immer> als 0000 dekodiert. Ich vermute, dass beides an den nicht dekodierten> Bits begründet sind.
Ja, die Maustasten werden noch nicht ausgewertet. Dafür werden die
bisher nicht dekodierten Bits genutzt. Diese werden noch ignoriert.
Mich hätte aber schon mal interessiert, wie z.B. eine Tastenkombination
STRG-C gesandt wird. Es kann nicht sein, dass zunächst der Keycode für
STRG, dann der für C gesandt wird. Was ist bei der nächsten Taste? Da
muss der Empfänger doch wissen, ob die STRG-Taste überhaupt noch
gedrückt ist. Kannst Du das mal testen, evtl. mit Kombinationen von
STRG, ALT, SHIFT?
Gruß,
Frank
Frank M. schrieb:> Max M. schrieb:>>> was läuft hier beim Kompilieren falsch?>> # use more debug-flags when compiling>> DEBUG = 1>> Das muss weg oder auf 0. Debuggen kann man unter Linux nur, wenn man> IRMP nativ für Linux übersetzt.>> Gruß,>> Frank
Danke für den Hinweis hab es gerade abgeändert.
nun bekomm ich aber immer noch fehler... woran liegt jetzt bitte das?
Frank M. schrieb:>> Zum FDC-Protokoll noch ein paar Punkte: Jede Taste wird als zwei Frames>> erkannt, egal wie kurz ich sie betätige.>> Im Deinen Scans sehe ich die Wiederholung nur ab und zu, nicht> ausnahmslos.
Könnte das an IRMP_LOGGION=1 liegen? Die Uart-Ausgabe bremst die
Interruptroutine aus und es werden weniger Sequenzen
erkannt/protkolliert?
eku schrieb:> Könnte das an IRMP_LOGGION=1 liegen? Die Uart-Ausgabe bremst die> Interruptroutine aus und es werden weniger Sequenzen> erkannt/protkolliert?
Die Uart-Ausgabe wird erst gestartet, wenn über eine längere Zeit kein
Signal mehr am IR-Eingang anliegt. Bis dahin wird gepuffert. In Deinem
allerersten Scan sandte fast jede Taste 2 Frames. Der lief mit 10kHz. In
Deinem Scan mit 20kHz kam es nur vereinzelt zu Frame-Wiederholungen. Das
kann daran liegen, dass bei 20kHz der Logging-Buffer schneller voll ist,
denn hier wird das Doppelte an Speicher für einen Frame benötigt.
Okay, Du hast zwar meine Frage nicht beantwortet, aber ich nehme mal an,
dass Du es auch für besser hältst, den ersten und zweiten Frame zusammen
zu betrachten und erst weitere Frames (ab dem 3.) als Wiederholungen -
analog zum SIRCS-Protokoll.
Gruß,
Frank
P.S.
Meine Pollin-Tastaturen sind gestern eingetroffen. Leider bin ich in den
nächsten Tagen viel unterwegs und werde es wohl auch nicht am Wochenende
schaffen, die Dinger mal selbst zu testen.
Die Zeile ist irgendwie Unsinn.
Hier soll ein main.elf gelinkt werden, welches sich aus main.o, irmp.o
und irmp.h zusammensetzt. So versucht nun der avr-gcc, das irmp.h für
sich allein zu übersetzen. Das ist aber Quatsch, denn irmp.h ist kein
eigenständiger Source, sondern nur eine Include-Datei. Das ist in der
Zeile definitiv zu viel.
Da der make ja schon beim Linken angekommen ist, müsste die Compilierung
von irmp.c und main.c bereits geschehen sein und Du müsstest dort
bereits ein main.o und irmp.o vorliegen haben. Ist dem so?
Gruß,
Frank
Max M. schrieb:> ja das ist so aber warum will er die header datei linken?
Keine Ahnung, ich habe mal eben Dein Makefile unter Linux abgespeichert,
die führenden Blanks in den Kommando-Zeilen durch TABs ersetzt und
anschließend eingegeben:
Wie man hier in der letzten Zeile sieht, werden nur main.o und irmp.o
zusammen gelinkt - kein irmp.h. Das ist so vollkommen korrekt. Hast Du
vielleicht Dein Makefile, was Du hier gepostet hattest, nochmal nachher
geändert? Für mich sieht es so aus, als ob Du entweder die SRC-Variable
im Makefile um irmp.h erweitert hast oder gar OBJECTS. Überprüfe das
bitte nochmal oder nimm das Makefile, was Du hier gepostet hattest und
setze lediglich DEBUG auf 0.
Gruß,
Frank
P.S.
Wenn Du das hiesige Makefile nimmst, musst Du wohl die führenden TABs
reparieren. Ich musste das jedenfalls, bevor ich Dein Makefile testen
konnte. Du kannst natürlich die letzte angezeigte Zeile auch einfach per
Copy&Paste in der Shell ausführen ;-)
Hallo Frank!
Mit der SVN-Version von IRMP werden nicht mehr alle Codes des
Siemens-Protokolls erkannt. Samplerate ist 15kHz, kein anderes Protkoll
aktiv.
DOS-Zeileenden in test-suite.sh sind Mist
./test-suite.sh
-bash: ./test-suite.sh: /bin/sh^M: bad interpreter: Datei oder
Verzeichnis nicht gefunden
Hi eku,
eku schrieb:> DOS-Zeileenden in test-suite.sh sind Mist
Weiß ich schon seit 25 Jahren ;-)
Nee, im Ernst, ich nutze unter Linux noch meinen eigenen CVS-Server.
Wenn ich dann unter Windows das Script wieder auschecke, geraten die
DOS-Zeilenenden da rein. Wenn ich dann anschließend über SVN (unter
Windows) das Script wieder einchecke, isses dann kaputt. Ich werde das
Script im CVS explizit auf binary setzen, dann passiert das nicht mehr.
> [code]> $ ../irmp-15kHz -v < Siemens-Gigaset-M740AV-15kHz.txt|grep error
Kann ich nicht nachvollziehen. Ich habe mir dazu extra nochmal die
SVN-Version geholt, aus test-suite.sh die DOS-Zeilenenden entfernt und
dann laufen lassen. Geht ganz normal durch.
Auch Deine obitge Zeile mit Siemens-Gigaset-M740AV-15kHz.txt läuft
anstandslos durch. Wie hast Du denn irmp-15kHz erzeuhgt? Wenn, dann
solltest Du die Linux-Binaries mit
make -f makefile.lnx
erstellen.
> Das ging schon mal besser ;-(
Das geht immer noch so gut ;-)
Gruß,
Frank
Frank M. schrieb:>> [code]>> $ ../irmp-15kHz -v < Siemens-Gigaset-M740AV-15kHz.txt|grep error>>> Kann ich nicht nachvollziehen. Ich habe mir dazu extra nochmal die> SVN-Version geholt, aus test-suite.sh die DOS-Zeilenenden entfernt und> dann laufen lassen. Geht ganz normal durch.
Bitte setze in irmpconfg.h alle Protokolle außer Siemens auf 0 und
teste noch einmal!
eku schrieb:> Bitte setze in irmpconfg.h alle Protokolle außer Siemens auf 0 und> teste noch einmal!
Sag mal, kannst Du mit solchen Infos nicht sofort rauskommen, damit ich
mir nicht einen Wolf suchen muss?
Sobald DENON eingeschaltet ist, funktioniert die SIEMENS-Erkennung.
Bin dran,
Frank
eku schrieb:> Bitte setze in irmpconfg.h alle Protokolle außer Siemens auf 0 und> teste noch einmal!
Ist korrigiert und eingecheckt. Es fehlte ein else im Code. Der Fehler
trat nur auf bei deaktiviertem DENON-Protokoll.
Gruß,
Frank
Frank M. schrieb:> Der Fehler trat nur auf bei deaktiviertem DENON-Protokoll.
Danke. Die Testsuite sollte zusätzlich jedes Protokoll für sich testen,
damit solche Fehler früher auffallen. Dazu braucht es aber Binaries für
jedes Protokoll. Sollte per Makefile nichht zu kompliziert sein.
Fehlt noch ein Lösung für den Ausschluss von RC5 und FDC/RCCAR wie in
Beitrag "Re: IRMP - Infrared Multi Protocol Decoder" geschrieben.
Im SVN ist eine neue Testversion, welche den Konflikt zwischen RC5 und
FDC bzw. RCCAR aufhebt.
Kurze Schilderung der Lösung:
Wird RC5 erkannt und passt das Start-Bit zeitlich auch als
FDC-Protokoll, dann laufen 2 Decoder los. Sobald einer von beiden einen
Timing-Fehler erkennt, beendet er sich und der andere gewinnt. Dasselbe
gilt für das RCCAR-Protokoll. Funktioniert mit meinen vorliegenden
Scan-Daten tadellos.
Man sollte sich aber wirklich überlegen, ob man RC5 und FDC bzw. RC5 und
RCCAR in Kombination einschalten sollte. Der Decoder für FDC kostet nur
50 Bytes im Binary, wenn RC5 deaktiviert ist. Ist sowohl RC5 als auch
FDC eingeschaltet, dann erhöht sich der Platzbedarf des "dualen
Decoders" auf 500 Bytes. Dasselbe gilt für das RCCAR-Protokoll.
Naja, wer RC5 unbedingt braucht... ich brauchs nicht ;-)
Viel Spaß,
Frank
Frank M. schrieb:> Naja, wer RC5 unbedingt braucht...
Das hängt doch in erster Linie von den rumliegenden Fernbedienungen ab.
Und so alt ist mein DVD-Spieler nun auch nicht. Problematisch ist in
meinen Augen, dass es so viele unterschiedliche Protokolle existieren.
Hallo Frank!
Wenn man die "static PROGMEM IRMP_PARAMETER" Blöcke in ein Array
ir_protos legt und darüber das Protkoll detektiert, spart das noch
einmal Flash für die vielen Vergleiche:
1
uint8_ti;
2
for(i=0;i<NELEMS(ir_protos);i++)
3
{
4
if(pulse_time>=ir_protos[i].start_len_min&&
5
pulse_time<=ir_protos[i].start_len_max&&
6
pause_time>=ir_protos[i].pause_len_min&&
7
pause_time<=ir_protos[i].pause_len_max)
8
{
9
DPRINTF("protocol %d\n",i);
10
ir_data.protocol=i;
11
ir_protop=&ir_protos[i];
12
break;
13
}
14
}
15
if(i==NELEMS(ir_protos))
16
{
17
DPRINTF("protocol UNKNOWN\n");
18
/* wait for another start bit */
19
start_bit_detected=0;
20
}
Bitte Variablennamen **kreativ** an irmp anpassen.
Ich habe gestern abend mal meine FDC-Pollin-Tastatur mit IRMP getestet.
Dabei konnte ich noch ein paar Geheimnisse lüften. Die vermeintlichen
REPEAT-Bits im Frame kennzeichnen keine Wiederholung, sondern das
Drücken bzw. Loslassen einer Taste. Damit können dann auch
Tasten-Kombinationen wie
SHIFT + A
ALT + M
STRG + C
usw.
erkannt werden.
Ich habe IRMP dahingehend angepasst, dass in den untersten 7 Bit der
Keycode der Taste gespeichert ist und im oberen 8. Bit vermerkt wird, ob
die Taste gedrückt oder losgelassen wird. Die entsprechende Änderungen
im IRMP habe ich als Version 1.6.9 ins SVN eingecheckt.
Ebenso habe ich prototypisch eine kleine C-Funktion geschrieben, welche
aus einem Keycode oder einer Keycode-Folge (bei obigen
Tastenkombinationen) den zugehörigen ASCII-Code ermittelt, siehe Anhang.
Diese kann entweder direkt auf dem µC zur Ermittlung der Taste oder auf
dem Host, wo die irmp-Datenstruktur hin übertragen wird, eingesetzt
werden.
Gruß,
Frank
Hi eku,
eku schrieb:> Wenn man die "static PROGMEM IRMP_PARAMETER" Blöcke in ein Array> ir_protos legt und darüber das Protkoll detektiert, spart das noch> einmal Flash für die vielen Vergleiche:
Gute Idee, geht zwar nicht ganz so glatt, wie Du es darstellst, aber das
kann durchaus was bringen. Werde ich testen.
Gruß,
Frank
Neue Version 1.7.0 von IRMP verfügbar, Download unter
http://www.mikrocontroller.net/articles/IRMP#Download
Änderungen gegenüber 1.6.0:
- Neues Protokoll: RCCAR
- Tastenerkennung für FDC-Protokoll (IR-keyboard) erweitert
- Konflikte FDC <--> RC5 beseitigt
- Interrupt-Frequenz nun bis zu 20kHz (und mehr) möglich
Ebenso ist nun die Version 1.7.0 von IRSND verfügbar, Download unter
http://www.mikrocontroller.net/articles/IRMP#Download_IRSND
Änderungen gegenüber 1.6.0:
- Neues Protokoll: RCCAR
Die Dokumentation im IRMP-Artikel habe ich auch angepasst bzw.
erweitert, siehe:
http://www.mikrocontroller.net/articles/IRMP
Für die Pollin-FDC-Tastatur habe ich im Artikel ein eigenes Kapitel
vorgesehen, wo sämtliche Tasten/Keycodes und die Anwendung mit IRMP
dokumentiert sind:
http://www.mikrocontroller.net/articles/IRMP#IR-Tastaturen
@Hugo Portisch:
Kannst loslegen mit der USB-Portierung ;-)
@eku & @ Torsten Kalbe:
Ich habe bei der FDC-Tastatur und einem TSOP1736 als Empfänger nur eine
Reichweite von max. 15cm, das ist viel zu wenig. Klar, die
Modulationsfrequenz der FDC-Tastatur ist 38kHz, daher sollte die
Reichweite bei meinem Aufbau schon eingeschränkt sein. Aber ich dachte
schon, dass ein paar Meter drin sein müssten. Naja, ich werden den
TSOP1736 mal durch einen TSOP1738 ersetzen und dann nochmal testen.
Welche Reichweite schafft Ihr mit der Tastatur?
Viel Spaß,
Frank
Hallo Frank!
Frank M. schrieb:> Tastenerkennung für FDC-Protokoll (IR-keyboard) erweitert
Was liefert eigentlich das Steuerkreuz rechts der Tastatur? Soweit ich
mich erinnere sind da mehr als nur 4 Richtungen möglich.
#warning F_INTERRUPTS too low, RECS80EXT protocol disabled (should be at least 20000)
11
#endif
Wo sind denn die undefs für das 'disabled' geblieben?
Prinzipiell sollte F_INTERRUPTS auf den höchsten benötigten Wert anhand
der aktivierten Protokolle automatisch gesetzt werden. Warum den
Benutzer damit belasten. Dann entfallen auch die Warnungen und
Automatismen zur Deaktivierung von Protkollen. Gegenteilige Meinungen?
Frank M. schrieb:> eku schrieb:>> Wenn man die "static PROGMEM IRMP_PARAMETER" Blöcke in ein Array>> ir_protos legt und darüber das Protkoll detektiert, spart das noch>> einmal Flash für die vielen Vergleiche:> Gute Idee, geht zwar nicht ganz so glatt, wie Du es darstellst, aber das> kann durchaus was bringen. Werde ich testen.
Gibt es schon Erkenntnisse bezüglich Speicherverbrauch?
Hi eku,
eku schrieb:> Was liefert eigentlich das Steuerkreuz rechts der Tastatur? Soweit ich> mich erinnere sind da mehr als nur 4 Richtungen möglich.
Das Ding ist nach meinen Versuchen her ziemlich unbrauchbar, da kommen
relativ wirkürlich 4 verschiedene Bits für oben, unten, rechts, oben und
bei Zwischenstellungen dann die Summen davon. Leider ist das aber so
ungenau, dass da beim Drücken des Steuerkreuzes nach rechts so ziemlich
alles kommt zwischen unten, unten-rechts, rechts, oben-rechts und oben.
Daher habe ich aufgegeben, das Steuerkreuz zu decodieren. Es wird
schlichtweg ignoriert.
> Wo sind denn die undefs für das 'disabled' geblieben?
Vergessen ;-)
Werde ich dieses Wochenende korrigieren.
> Prinzipiell sollte F_INTERRUPTS auf den höchsten benötigten Wert anhand> der aktivierten Protokolle automatisch gesetzt werden. Warum den> Benutzer damit belasten. Dann entfallen auch die Warnungen und> Automatismen zur Deaktivierung von Protkollen. Gegenteilige Meinungen?
Du kommst jedesmal, wenn ich was umbaue nach Deinen Wünschen, mit einer
neuen Idee. ;-)
Ob eine 20kHz-Interrupt-Rate bei einer CPU-Frequenz von 8MHz noch
sinnvoll ist, kann ich nicht beurteilen. Wenn man alle Protokolle
einschaltet, könnte es dabei eng werden. Um das herauszubekommen, müsste
man mal die Belastung der CPU in der ISR messen.
Ich halte wenig von Deiner Idee, die Interrupt-Frequenz selbst zu
bestimmen, denn ich möchte den Anwender von IRMP nicht übermäßig
bevormunden. Vielleicht hat er durchaus Gründe, die ISR mit 15kHz
anzusprechen statt mit 10kHz, auch wenn 10kHz reichen würde. Auch kommt
es darauf an, welchen Timer er nimmt. Die Wahl des Timers und die Wahl
der Vorteiler/Timing-Register bestimmt die Frequenz und nicht umgekehrt.
Gruß,
Frank
eku schrieb:> Frank M. schrieb:>> eku schrieb:>>> Wenn man die "static PROGMEM IRMP_PARAMETER" Blöcke in ein Array>>> ir_protos legt und darüber das Protkoll detektiert, spart das noch>>> einmal Flash für die vielen Vergleiche:>> Gute Idee, geht zwar nicht ganz so glatt, wie Du es darstellst, aber das>> kann durchaus was bringen. Werde ich testen.>> Gibt es schon Erkenntnisse bezüglich Speicherverbrauch?
Nein, da habe ich mich noch nicht durchringen können, das umzusetzen.
Ich schwanke nämlich mittlerweile, ob ich diese "Optimierung" überhaupt
machen soll, nämlich aus folgenden Gründen:
1. Jetzt werden die Startbit-Timings gegen Konstanten geprüft. Das ist
mit nur wenigen CPU-Takten möglich. Beim Testen der Timings gegen
Variablen in einer for-Schleife dauert der Check eines Protokolls
gegen die Startbit-Timings wesentlich länger, weil dann erstmal
die Variablen in Register geladen werden müssen, um sie gegen die
ermittelten Timing-Werte zu testen. Bei knapp 20 Protokollen kommt
da einiges an Laufzeit zusammen, was da zusätzlich verbraten wird.
Da dies alles innerhalb eines einzigen ISR-Laufes passieren muss,
kann das arg knapp werden. Man spart zwar Speicherplatz, aber auf
Kosten von Laufzeit.
2. Wenn Du Dir die Startbit-Timing-Checks anschaust, wirst Du sehen,
dass nur die wenigsten aller Tests identisch sind. Bei den
Manchester-Protokollen (RC5, RC6, Grundig, usw.) sind 4 Tests
notwendig, bei den anderen nur 2 Tests - aber nur, wenn sie
ausgezeichnete Startbits haben. Beim Denon-Protokoll, welches
keine Startbits aufweist, muss ich hingegen wieder 4 Tests machen,
weil das erste Bit schon eine 0 oder eine 1 sein kann. Ausserdem
kommen dann evtl. weitere Tests hinzu, beim RC5-Protokoll können
(wegen des erweiterten RC5-X-Protokolls) auch die ersten beiden
Puls-Pausen-Werte schon verschieden sein. Desweiteren kommt dann
noch das "Starten" eines zweiten Parallel-Decoders hinzu, um
den Konflikt zwischen RC5<->FDC und RC5<->RCCAR zu lösen.
Wenn man diese ganzen Sonderbedingungen in die for-Schleife
zusätzlich einbaut, wird das ähnlich viel Code verschlingen
wie jetzt auch.
Man könnte einen Kompromiss eingehen:
Diejenigen Pulse-Distance-Protokolle, für die keine Sonderbedingungen
anfallen, kann man in einer for-Schleife zusammenfassen - also SIRCs,
NEC, SAMSUNG, MatSUSHITA, KASEIKYO und noch ein paar andere. Aber ob
sich das dann noch lohnt? Weiß ich nicht.
Mir schwebt eine andere Optimierung vor: Im Moment ist die Ermittlung
des Protokolls aus den Startbit-Timings eine lineare Suche. Ab einer
bestimmten Anzahl wird dies ineffektiv, weil dann N Tests gemacht werden
müssen. Wenn man die lineare Suche gegen eine baumartige Suche ersetzen
würde, geht das effektiver und spart Zeit. Die ISR kommt nämlich
irgendwann ab einem bestimmten N (Anzahl der Protokolle) an seine
Grenzen, und zwar genau nach dem Empfang des Startbits: hier geht die
Sucherei los... und das kann lang dauern. Wenn man das durch eine
Intervallschachtelung ersetzt, braucht man nur noch log2(N) viele Tests.
Ungefährer Algorithmus:
Man teilt die Protokolle in 2 Gruppen: Diejenigen mit kurzen und
diejenigen mit langen Startbits. Dann kann man schon mal 50% der
Protokolle auf einen Schlag ausschließen. Dann werden die diese 2
Gruppen wieder in Untergruppen zerschlagen, so dass man mit einem
weiteren Test von den 50% wieder 50% ausschließen kann. Dann bleiben nur
noch 25% übrig usw.
Die Kunst besteht nun darin, diesen Abfragebaum zur Compilezeit
zusammenzustellen - oder zumindest in der init-Funktion. Da denke ich
noch drüber nach, wie ich das bewerkstellige.
Gruß,
Frank
Hi Frank!
Frank M. schrieb:> Du kommst jedesmal, wenn ich was umbaue nach Deinen Wünschen, mit einer> neuen Idee. ;-)
In den 25 Jahren Deiner Softwareentwicklung hast Du bestimmt
mitbekommen:
* Softwareentwicklung ist ein iterativer Prozess
* der Kunde hat immer neue Wünsche an die Software
* ein Programm, das fertig ist, ist veraltet
Lass Dich von mir nicht entmutigen!
eku schrieb:> Lass Dich von mir nicht entmutigen!
Nönö, alles noch im grünen Bereich ;-)
Ich hatte Dich noch gefragt, welche Reichweite Deine FDC-Tastatur hat,
wahrscheinlich hast Du es überlesen... mit meinem TSOP1736 und einer
Reichweite von nur 15cm bin ich nicht zufrieden. Ich weiß, dass ein
TSOP1738 bei der Tastatur besser geeignet wäre, jedoch kann ich mir
diese geringe Reichweite damit nicht allein erklären.
Gruß,
Frank
eku schrieb:> Gibt es schon Erkenntnisse bezüglich Speicherverbrauch?
Ich habe das gerade mal getestet:
Alle Startbit-Timings in eine struct gepackt und dann zwei for-Schleifen
(eine mit ausgezeichneten Startbits: 2 Tests, eine für diejenigen
Protokolle, die direkt mit den Daten beginnen: 4 Tests) gebaut.
Ergebnis: Wenn alle Protokolle aktiviert sind, liegt die Ersparnis bei
150 Bytes. Leider steigt die Größe des Datensegments dabei um 140 Byte.
Wenn weniger Protokolle aktiviert sind, dann ist der Gewinn noch
geringer.
Das kann man also vergessen: es bringt nichts. Im Gegenteil: die
Laufzeit vergrößert sich drastisch wegen des Ladens aller Startbit-Werte
aus der struct in die Register, um den Vergleich durchführen zu können.
Das Einzige, was mir an der Änderung gefällt, ist, dass der Source
"schöner" aussieht ;-)
Ich werde daher diese Änderung erstmal auf Eis legen und später
vielleicht wieder aufgreifen, nämlich dann, wenn ich die lineare Suche
durch eine Intervallschachtelung ersetzen werde.
Gruß,
Frank
Frank M. schrieb:> Ich hatte Dich noch gefragt, welche Reichweite Deine FDC-Tastatur hat,> wahrscheinlich hast Du es überlesen... mit meinem TSOP1736 und einer> Reichweite von nur 15cm bin ich nicht zufrieden.
Nicht überlesen, nur gerade den AVR nicht dabei :-)
Also mein TSOP1736 auf dem Pollin AVR Add-On reagiert noch am anderen
Ende des Zimmers, d.h. mehr als drei Meter sind kein Problem.
Hy,
ich kann die Reichweite auch nicht so einfach testen, was größer als ein
paar Meter sein sollte. Dann müßte ich meinen Testempfänger mal mit
einem 9Volt Block betreiben und die Straße unsicher machen.
Gruß
Torsten
Gehört zwar vielleicht nicht direkt hierher, hat aber mit IRMP zu tun:
wie lässt sich effektiv (speicher- und laufzeittechnisch) eine Art
Lookup-Tabelle erstellen, die anhängig von empfangenen IR-Daten ein
Zeichen über die UART sendet?
Ich will nicht den kompletten IR-Frame senden, sondern wirklich nur ein
einzelnes 8-bit-Zeichen. Nach Möglichkeit sollte das Ganze lernbar sein,
d.h. nicht festgelegt auf bestimmte IR-Protokolle/-Kommandos. Auch
verschiedene Protokolle sollten möglich sein.
BTW: IRMP ist ein richtig feines Stück Software... Vielen Dank dafür!
eku schrieb:> Also mein TSOP1736 auf dem Pollin AVR Add-On reagiert noch am anderen> Ende des Zimmers, d.h. mehr als drei Meter sind kein Problem.Torsten Kalbe schrieb:> ich kann die Reichweite auch nicht so einfach testen, was größer als ein> paar Meter sein sollte. Dann müßte ich meinen Testempfänger mal mit> einem 9Volt Block betreiben und die Straße unsicher machen.
Danke fürs Feedback, da muss meine Tastatur (eine von 5, die ich
bestellt hatte) nicht in Ordnung sein, normale Fernbedienungen werden
nämlich auch bei mir auf 3-5 Meter erkannt. Muss ich heute abend mal die
zweite Tastatur auspacken....
Gruß,
Frank
Micha schrieb:> wie lässt sich effektiv (speicher- und laufzeittechnisch) eine Art> Lookup-Tabelle erstellen, die anhängig von empfangenen IR-Daten ein> Zeichen über die UART sendet?
Das ginge mit einer Hash-Funktion. Da hatte mal jemand so etwas im
Februar diesen Jahres hier in der Codesammlung vorgestellt:
Beitrag "Universeller IR-Receiver für viele Protokolle"
Hier wird aus dem IR-Frame ein 32-Bit-Hash-Wert berechnet - ohne
Kenntnis des Protokolls. Hat aber ein paar Stolpersteine... z.B. die
Behandlung von Repetition-Frames, Eindeutigkeit usw.
Da Du sogar alles in ein einziges Byte packen möchtest, sind doppelte
Rückgabewerte vorprogrammiert. Auch bei einem 32-Bit-Hash-Wert kann man
nicht ausschließen, dass zwei verschiedene Fernbedienungen auf
irgendwelchen Tasten denselben Hash-Wert ergeben. Aber es ist halt
relativ unwahrscheinlich - jedenfalls dann, wenn die Hash-Funktion "gut"
ist. Aber eine Hash-Funktion, die nur einen eindeutigen 8-Bit-Wert
zurückgeben soll - und das ohne Kenntnisse irgendwelcher Protokolle -
kannste vergessen.
Gruß,
Frank
Frank M. schrieb:> Aber eine Hash-Funktion, die nur einen eindeutigen 8-Bit-Wert> zurückgeben soll - und das ohne Kenntnisse irgendwelcher Protokolle -> kannste vergessen.
Und wenn ich nur ein Protokoll "gleichzeitig" zulassen würde? Wie
schätzt du die Chancen dann ein?
Micha schrieb:> Frank M. schrieb:> Und wenn ich nur ein Protokoll "gleichzeitig" zulassen würde? Wie> schätzt du die Chancen dann ein?
Das kommt darauf an, wieviele Tasten Du unterscheiden möchtest. Sind es
lediglich die Tasten 0-9, kommst Du mit 4 Bit aus. Wenn wir uns noch das
NEC-Protokoll anschauen, dann ist die Chance, dass Du in Deinem Haushalt
2 NEC-kompatible Fernbedienungen hast, schon relativ groß. Dass es
Überschneidungen bei den Tasten '0' bis '9' gibt, ist auch relativ
wahrscheinlich.
Du müsstest Dich also nicht nur auf ein Protokoll einschränken, sondern
auch noch auf eine Adresse konzentrieren, um ein Kommando einer FB
eindeutig zu erkennen. Wenn Du bis zu 32 Tasten unterscheiden möchtest,
sind 5 Bit weg und Du hast noch 3 Bit, um verschiedene FBs anhand ihrer
Adresse zu unterscheiden. Das wird arg knapp.
IRMP nutzt nicht umsonst 16 Bit für die Adresse und 16 Bit für das
Kommando. Meist kommt man mit 8 Bit für die Adresse und 8 Bit für das
Kommando aus - aber nicht immer.
Warum willst Du Dich unbedingt auf 8 Bit beschränken? Hugo Portisch, der
den IRMP im USB-IR-Receiver nutzt, überträgt einfach 6 Bytes, nämlich:
1. Byte: irmp_data.protocol
2. und 3. Byte: irmp_data.address
4. und 5. Byte: irmp_data.command
6. Byte: irmp_data.flags
Du könntest natürlich auch mittels IRMP alles in ein Byte packen:
a) Nur ein Protokoll aktivieren, alle anderen deaktivieren
b) irmp_data.address auf einen festen Wert prüfen, also nur
eine Adresse zulassen
c) Für die Tasten, die Du übertragen willst, einen case-switch
bauen, der bestimmte Werte von irmp_data.command in die Werte
1, 2, 3, 4, usw. übersetzt.
Man könnte noch einen Schritt weiter gehen: Bei 32 verschiedenen Tasten
hast Du dann noch 3 Bits übrig. Damit könntest Du in den 8 Bits
folgendes codieren:
RAACCCCC
wobei:
R = Repetition Flag
AA = 00 Adresse FB Nr. 1
01 Adresse FB Nr. 2
10 Adresse FB Nr. 3
11 Adresse FB Nr. 4
CCCCC = 32 verschiedene Tasten
Somit könntest Du dann zumindest für 4 verschiedene FBs 32 verschiedene
Tasten-Codes übertragen.
Das obige gilt aber nur für IRMP - unter der Voraussetzung, dass man
nicht nur das Protokoll, sondern auch schon die Tastencodes kennt. Eine
Hash-Funktion zu finden, die ohne Kenntnis des Protokolls alles in 8 Bit
ohne Dubletten stopft, halte ich für illusorisch. Und dann auch noch
"anlernbar"? Da müsste sich die Hash-Funktion selbst modifizieren,
sobald ein neuer Code angelernt werden soll, um Dubletten zu vermeiden.
Okay, letzter Versuch:
Du nimmst die 32-Bit-Hashfunktion aus
Beitrag "Universeller IR-Receiver für viele Protokolle"
und trägst den ermittelten 32-Bit-Hash-Wert in eine 256 x 4 Byte große
Tabelle ein. Dann kannst Du den 8-Bit-breiten Index auf diese Tabelle
nutzen, um eine Taste zu identifizieren. Kostet Dich leider 1KB RAM ;-)
Gruß,
Frank
Frank M. schrieb:> Warum willst Du Dich unbedingt auf 8 Bit beschränken? Hugo Portisch, der> den IRMP im USB-IR-Receiver nutzt, überträgt einfach 6 Bytes, nämlich:
Ich habe ähnliches vor wie Hugo, allerdings wollte ich den AVR (einen
ATtiny84) "direkt als Tastatur" nutzen, also ohne dlls und dergleichen.
Anlernbar sollte heißen, dass man die IR-Kommandos beliebig einer Taste
zuweisen kann, à la "Drücken Sie jetzt die Taste für 'a' auf Ihrer
FB"...
Micha schrieb:> Anlernbar sollte heißen, dass man die IR-Kommandos beliebig einer Taste> zuweisen kann, à la "Drücken Sie jetzt die Taste für 'a' auf Ihrer> FB"...
Wo ist das Problem? Du nimmst IRMP und eine NEC-kompatible
Fernbedienung. Da sind die Codes zwischen 0x00 und 0xFF.
Zu jeder Taste (z.B. 'a') merkst Du Dir imrp_data.command.
Gruß,
Frank
Frank M. schrieb:> Du nimmst IRMP und eine NEC-kompatible Fernbedienung. Da sind die Codes> zwischen 0x00 und 0xFF.
Das wäre natürlich eine Möglichkeit. Nachdem ich eine
Universal-Fernbedienung habe ist das Protokoll eh relative egal - ich
muss mir halt ein entsprechendes Gerät aus der Datenbank suchen.
Wenn ich so darüber nachdenke müsste es sogar möglich sein mir was
eigenes zu basteln.
Ich werd mal verschiedenes testen. Vielen Dank für die Tipps!
Frank M. schrieb:> Du nimmst IRMP und eine NEC-kompatible Fernbedienung. Da sind die Codes> zwischen 0x00 und 0xFF.
Das wäre natürlich eine Möglichkeit. Nachdem ich eine
Universal-Fernbedienung habe ist das Protokoll eh relative egal - ich
muss mir halt ein entsprechendes Gerät aus der Datenbank suchen.
Wenn ich so darüber nachdenke müsste es sogar möglich sein mir was
eigenes zu basteln.
Ich werd mal Verschiedenes testen. Vielen Dank für die Tipps!
Hallo zusammen,
es gibt einen Bugfix für IRMP - Version 1.7.2, Download unter
http://www.mikrocontroller.net/articles/IRMP#Download
Änderungen gegenüber 1.7.1:
- Bugfix: Einführen eines Timeouts für NEC-Repetition-Frames, um
"Geisterkommandos" zu verhindern.
Was ist ein "Geisterkommando"?
Folgende Situation:
1. IRMP empfängt NEC-Kommonda A und weitere Repetition-Frames
2. Danach wird die Taste B lange gedrückt und IRMP empfängt das
Kommando nicht vollständig - z.B. wegen zu geringer Reichweite oder
weil die Katze durch den Strahl läuft.
3. Die FB sendet nun Repetition-Frames für Kommando B und IRMP
interpretiert diese Wiederholungen als Wiederholungen für Kommando A!
Frank Lorenzen hat mich auf den Fehler aufmerksam gemacht, denn er
konnte dieses Phänomen tatsächlich im "real life" erleben... naja...
nicht die Katze war schuld ;-) Vielen Dank dafür!
Viel Spaß,
Frank
Frank M. schrieb:> Version 1.7.2
In irsndconfig.h ist noch die alte Behandlung für
IRSND_SUPPORT_SIEMENS_PROTOCOL. Würdest Du das bitte an irmpconfig.h
anpassen, d.h. Ausgabe einer Warnung mit Deaktivierung des Protokolls.
eku schrieb:> In irsndconfig.h ist noch die alte Behandlung für> IRSND_SUPPORT_SIEMENS_PROTOCOL. Würdest Du das bitte an irmpconfig.h> anpassen, d.h. Ausgabe einer Warnung mit Deaktivierung des Protokolls.
Ich hatte nur IRMP angepasst. IRSND hat noch die alte Version ;-)
Aber klar, ich korrigiere das.
Gruß,
Frank
Frank M. schrieb:
[...]
> Änderungen gegenüber 1.7.1:>> - Bugfix: Einführen eines Timeouts für NEC-Repetition-Frames, um> "Geisterkommandos" zu verhindern.
[...]
Funktioniert einwandfrei :-)
> Viel Spaß,>> Frank
Vielen Dank für den schnellen Bugfix.
Viele Grüße,
Frank
puh alles durchgelesen,
nur habe ich das mit dem Widerholungsflag noch nicht gesehen
kein loslassen, Lautstärke Helligkeit geht ja mit repeat, aber bei
Programmwahl wäre das ja unglücklich, ergo muss das Bit loslasen
interpretieren
ist da schon was eingebaut ?
IRMP ist erstmal geil, bin schon am nachbauen,
Probleme bereitet mit bis jetzt nur der heftige Aufwand (für mich)
entweder, Neubau, + Codeumschreibung, denn im Prinzip liegen hier 2(3)
Geräte mit mega644(32), TSOP1736, LCD, LED, Triber für LCD HG-LED und
Taster
alle Codes zeigen auf einen mega 88 der einzige Plan (den ich bis jetzt
gefunden hatte) aber auf einen mega 168
klar könnte ich aus dem Code für mega 88 die Ports ohne Plan extrahieren
da meine HW quasi schon fast steht mal eben die beiden Codes und Quellen
verheiratet, was aber logisch schief ging, ich nutze halt timer1 für die
LCD HG LED per pwm OCRA und OCRB für den Kontrast
Ziel ist es aber nach Dekodierung meiner pansonic FB einen FB Sender zu
generieren der per PC aktiviert wird, über VNC meinen HD Recorder
fernzuprogramieren, aber da ich nicht noch mehr IR Sendedioden frei
plazieren möchte, was ist mit IR zu RF 433 MHz Umsetzung, 433 Empfänger
und IR Sender sind vorhanden, da die ja auf alle FB reagiren vermute ich
die Trägerfrequenz 30 - 40 kHz ist denen egal, morsen die in 433 Mhz nur
das an und aus der IR LED ?, wie könnte man ein RF(m?) 12 Modul den
Transmitter dafür nutzen ?
hier gibt es ja Beispiele für Atmel atmel mit Sender und Empfänger, also
per seriell Umsetzung, aber ich weiss nicht ob es digital oder analog
ist was da gesendet wird, habe so eine Funk FB mal belaucht mit dem Oszi
und Empfängermodul, aber nur Grundrauschen bekommen oder Störsignale,
weiss aber nicht ob die 433 Module dafür gehen.
wenn sich dazu jemand äussern kann würde mich freuen,
den PC als fernbedienten IR/433 MHz Sender zu nutzen aus dem ganzen
I-Net muss doch mehr interessieren ?
Rückmeldung der Programmierung geht natürlich toll per winTV und den HD
Rec am AV Modulator ins Subkabelnetz gespeist, muss also auf dem PC nur
winTV starten, den HDrec Kanal einstellen und schon kann ich alles
programmieren, mit 433 MHz brauch ich nicht mal ne Sichtverbindung PC
HDrec (das macht die IR Pyramide)
so
1 Nachbau läuft mit 644 intern 8MHz
meine panasonic DVD wird als KASEIKYO erkannt
nur warum die Tasten OFF (2002/3d0) und TV OFF (2002/3d0) denselben Code
bringen obwohl 2 getrennte Tasten ist mir noch unklar
loggen kann ich (noch) nicht, kein Maxim spendiert und keine Ahnung wie
ich das dem PC erkläre
erst mal das Prototypeboard auf Akku umstellen und heim alle FB testen
alle in Urlaub ? oder sind meine Fragen zu doof ?
egal, noch ein Versuch
so nun verschiedenste FB durchprobiert
Samsung wird als solche erkannt
drei Panasonic als Kaseikyo
nur alle OFF Knöpfe bringen den selben Code (2002/3d0)
aber natürlich reagieren die Geräte nicht so
VHS off Kaseikyo 2002/3d0 nur der VHS geht aus
HDrec off Kaseikyo 2002/3d0 nur der HDrec geht aus
TV off Kaseikyo 2002/3d0 weder der HDrec noch der VHS geht aus
alle RC5 FB zeigen im IRMP nix an (interner 8MHz), dabei geht "meine"
andere Schaltung mit 8 MHz Quarz und Fleury RC5 Lib wohl
wo soll ich nun suchen ?
Jitter ? auf 8 MHz Quarz umstricken ?
internen auf 8 MHz kalibrieren (keine Ahnung wie das geht) meine andere
Idee, einfach an den Teilern drehen bis 1s Blink LED 1s auf dem Oszi
wird ?
1s soll ja nach 10000 ISR aufrufen vergangen sein
ergo lasse ich eine uint16 VAR immer wieder von 0-10000 laufen
in ISR wird uint16 VAR++
in main auf uint16 VAR >= 10000 abgefragt und 0 gesetzt und LED Bit xor
gesetzt
muss ja 1s Puls / Pause rauskommen
jar schrieb:>> 1s soll ja nach 10000 ISR aufrufen vergangen sein>> ergo lasse ich eine uint16 VAR immer wieder von 0-10000 laufen>> muss ja 1s Puls / Pause rauskommen
Kommando zurück, man sollte RC5 auch enabeln
hatte ich schon mal dann aber neu angefangen und vergessen
wer also noch Codes braucht kann sich ja melden, ich versuche dann den
Max nachzurüsten und aufzuzeichnen
und suche immer noch ne Lösung für 433 MHz send statt IR (das IR
überlasse ich den IR Pyramiden)
hat schon jemand IRSND am PC zu USB mit Atmel ?
wenn hier keiner ne bessere Idee hat nehme ich einen Atmal als USB zu
rs232 Umsetzer und frickel da IRSND ein, ggffs mit 433 MHz Modul
puh, schwerer als gedacht
also die JVC RM C085 wird nicht erkannt, obwohl JVC unter Nec als RC5
geführt wird, aus dem TSOP1736 kommt schönes Signal raus so das ich die
Frequenz erst mal nicht vermessen hab,
Interrupt auf 15k hochgesetzt hat nix gebracht, den Rest nicht
verschlechtert aber der JVC nicht geholfen.
Der Oszi liefert schönen Stream sieht aber dem RC5 der erkannt wird
nicht ähnlich
Anlage in der Zip:
ein PIC vom Oszi
hardcopy -> Ref1 ist unbekannte JVC und Ref2 ist bekannte Pinnacle RC5
und die Daten als 2x CSV (JVC-FB und Pinnacle FB RC5) und einmal zu XLS
umgesetzt
ich hoffe das Projekt lebt noch und sind alle nur in Urlaub
ich mache mich nun an die 433 MHz Umsetzung und hoffe weiter auf
Antworten auf meine Fragen
liebe gruesse
jar
jar schrieb:> meine panasonic DVD wird als KASEIKYO erkannt
Prima.
> nur warum die Tasten OFF (2002/3d0) und TV OFF (2002/3d0) denselben Code> bringen obwohl 2 getrennte Tasten ist mir noch unklar
Beim Kaseikyo-Protokoll (48 Bit!) werfe ich sämtliche CRCs raus.
Vielleicht etwas zuviel...
Aktiviere bitte IRMP_LOGGING und schicke mir die Scan-Dateien. Dann
werde ich den Unterschied schon finden.
> loggen kann ich (noch) nicht, kein Maxim spendiert und keine Ahnung wie> ich das dem PC erkläre
Du startest einfach ein Terminal-Emulationsprogramm (z.B. HyperTerm) und
speicherst die Ausgabe.
jar schrieb:> alle in Urlaub ? oder sind meine Fragen zu doof ?
Ja, bis gestern :-)
> Samsung wird als solche erkannt
Gut.
> drei Panasonic als Kaseikyo
Auch gut.
> nur alle OFF Knöpfe bringen den selben Code (2002/3d0)
Wie gesagt: ich brauche die Scans dazu.
> alle RC5 FB zeigen im IRMP nix an (interner 8MHz), dabei geht "meine"> andere Schaltung mit 8 MHz Quarz und Fleury RC5 Lib wohl
Scan schicken. Vielleicht haben wir hier nur eine zu starke Abweichung
vom RC5-Timing.
> Jitter ? auf 8 MHz Quarz umstricken ?
Quarz ist auf jeden Fall gut. Bitte auch hier die Scan-Datei schicken,
dann kann ich Dir mehr sagen.
> internen auf 8 MHz kalibrieren (keine Ahnung wie das geht) meine andere> Idee, einfach an den Teilern drehen bis 1s Blink LED 1s auf dem Oszi> wird ?
IRMP ist vom Timing her ziemlich tolerant. Bist Du sicher, dass Dein
Timer mit der richtigen Frequenz läuft? Zeigst Du bitte mal die Passagen
Deiner Timer-Initialisierung?
Joachim B. schrieb:> Kommando zurück, man sollte RC5 auch enabeln
RC5 geht also jetzt?
> wer also noch Codes braucht kann sich ja melden, ich versuche dann den> Max nachzurüsten und aufzuzeichnen
Ja, wäre nicht schlecht.
> und suche immer noch ne Lösung für 433 MHz send statt IR (das IR> überlasse ich den IR Pyramiden)
Du meinst die 433 MHz-Sender/Empfänger von Pollin, die RFM12?
Sag mal genau, was Du willst. Sowas vielleicht:
IR Funk
IR-FB ---------> RFM12 ---------> RFM12 ------> Und was dann????
> hat schon jemand IRSND am PC zu USB mit Atmel ?
Meines Wissens nicht. Nur IRMP zu USB, siehe
Beitrag "USB IR Remote Receiver (V-USB + IRMP)"> wenn hier keiner ne bessere Idee hat nehme ich einen Atmal als USB zu> rs232 Umsetzer und frickel da IRSND ein, ggffs mit 433 MHz Modul
Male bitte mal ein Schaubild, ich verstehe nicht ganz, was Du vorhast.
Joachim B. schrieb:> also die JVC RM C085 wird nicht erkannt, obwohl JVC unter Nec als RC5> geführt wird, aus dem TSOP1736 kommt schönes Signal raus so das ich die> Frequenz erst mal nicht vermessen hab,
Bitte Scan schicken.
> Anlage in der Zip:> ein PIC vom Oszi
Nützt mir nichts.
> hardcopy -> Ref1 ist unbekannte JVC und Ref2 ist bekannte Pinnacle RC5
Nützt mir nichts.
> und die Daten als 2x CSV (JVC-FB und Pinnacle FB RC5) und einmal zu XLS> umgesetzt
Nützt mir nichts.
> ich hoffe das Projekt lebt noch und sind alle nur in Urlaub
Jau :-)
> ich mache mich nun an die 433 MHz Umsetzung und hoffe weiter auf> Antworten auf meine Fragen
Siehe oben.
Gruß,
Frank
hmmm, schade das die die CSV Dateien nix nutzen
jede Zeile ist 10µs also ist bei Zeile 70 der Wechsel bei 700 µs und so
weiter, ist das für dich nicht lesbar ?
ist Exelformat und die XLS ist schon zu µs umgesetzt
oszi zu CSV oder XLS ist halt schneller als HW bauen
ich verstehe auch nicht manche Kommentare im Quellcode
mal wird JVC als RC5 bezeichnet mal als NEC aber hier steht was anderes
http://www.sbprojects.com/knowledge/ir/jvc.htm
JVC unterscheidet in 1 und Null bits zu 1 ms und 2 ms und das sehe ich
auf dem Oszi, aber im Quellcode nicht ???
ich dachte auch mein JVC hat zu große Abweichung im Timing, aber ! 1ms
und 2ms sind nahezu exakt nur warum werden die nicht erkannt ?
also wenn es nicht anders geht muss ich den MAX wohl noch nachrüsten
433 MHz
Ziel ist es später im PC den Code nicht auf eine IR Diode auszugeben
sondern statt IR Diode auf einen 433 MHz Sender ähnlich den
Funkfernedienungen oder der FB Transmitter (IR Empfänger - Funkstrecke
433 MHz - IR Sender)
da zwei 433 MHz Empfänger mit IR Sendedioden schon im Zimmer stehen wäre
es doch schön wenn der PC den IR Code statt in IR zu senden 433 MHz
senden würde, dann spart man sich die PC IR Sendediode Ausrichtung zu
den Geräten. ausgerichtet sind die Pyramiden ja schon
Ziel des ganzen, per PC den HD Recorder zu programmieren, auch übers
I-Net (VNC)
war der Urlaub schön ?
liebe gruesse
achim
Joachim B. schrieb:> hmmm, schade das die die CSV Dateien nix nutzen> jede Zeile ist 10µs also ist bei Zeile 70 der Wechsel bei 700 µs und so> weiter, ist das für dich nicht lesbar ?
Es muss nicht für mich, sondern für IRMP lesbar sein, ich analysiere die
Scans mit IRMP unter Linux, siehe auch Artikel:
http://www.mikrocontroller.net/articles/IRMP#IRMP_unter_Linux_und_Windows
Du kannst natürlich Deine XLS-Dateien wieder ins IRMP-Format umwandeln,
das geht so: für jede zehntausendstel Sekunde schreibst Du eine 1, wenn
der Empfänger aus war, für jede zehntausendstel Sekunde schreibst Du
eine 0, wenn der Empfänger aktiv war. Das gibt dann eine Folge von 0en
und 1en in einer langen Zeile z.B. so:
000000011111111111111000111000111.....
Davor schreibst Du noch einen Kommentar:
# OFF-Taste TV
000000011111111111111000111000111.....
# OFF-Taste VCR
000000011111111111111000111000111.....
> ist Exelformat und die XLS ist schon zu µs umgesetzt
Nützt mir nichts. IRMP "versteht" halt nur das IRMP-Format selbst.
> oszi zu CSV oder XLS ist halt schneller als HW bauen
Naja, einen MAX232 dranbauen ist auch nicht soooo schwierig.
> ich verstehe auch nicht manche Kommentare im Quellcode
Welche?
> mal wird JVC als RC5 bezeichnet mal als NEC aber hier steht was anderes> http://www.sbprojects.com/knowledge/ir/jvc.htm
JVC ist nicht notwendigerweise RC5 oder NEC. JVC ist einfach ein
Hersteller, der verschiedene IR-Protokolle verwendet. Meist jedoch NEC.
> JVC unterscheidet in 1 und Null bits zu 1 ms und 2 ms und das sehe ich> auf dem Oszi, aber im Quellcode nicht ???
Schau Dir im IRMP-Artikel folgende Tabelle an:
http://www.mikrocontroller.net/articles/IRMP#Die_IR-Protokolle_im_Detail_2
Da sind alle Timings der von IRMP unterstützten Protokolle aufgeführt.
Im Quellcode findest Du diese Timings wieder in irmp.h. Sie sind in der
Header-Datei, da sie auch von IRSND verwendet werden.
> ich dachte auch mein JVC hat zu große Abweichung im Timing, aber ! 1ms> und 2ms sind nahezu exakt nur warum werden die nicht erkannt ?
Wie gesagt: Scan-Datei hilft weiter.
> also wenn es nicht anders geht muss ich den MAX wohl noch nachrüsten
Jepp :-)
> Ziel ist es später im PC den Code nicht auf eine IR Diode auszugeben> sondern statt IR Diode auf einen 433 MHz Sender ähnlich den> Funkfernedienungen oder der FB Transmitter (IR Empfänger - Funkstrecke> 433 MHz - IR Sender)
Also:
IR Funk IR
IR-FB -----> RFM-Sender mit IRMP -----> RFM-Empf. mit IRSND ------>
fernzubedienendes Gerät
Geht mit IRSND, siehe IRMP-Artikel.
Das einzige, was fehlt, ist der Code für die RFM-Module. Aber da gibt es
ja hier im Forum genügend Quellcode, wo man sich bedienen kann.
Gruß,
Frank
Sag mal genau, was Du willst. Sowas vielleicht:
IR Funk
IR-FB ---------> RFM12 ---------> RFM12 ------> Und was dann????
so ähnlich,
wenn der Atmel oder PC erst mal alle KASEIKYO Codes kennt soll der PC
diese senden (notfalls über den Umweg eines Atmels)
aber es soll KASEIKYO nicht in IR gesendet werden, sondern in 433 MHz
und ja ich denke an die RM12 Module, diese senden dann ungerichtet vom
PC auf die Empfängerpyramiden die das dann zu IR Strahlung gerichtet
umsetzen bis zum HD Recorder
Kaseikyo Code von PC (ggffs mit Hilfe eines ATMEGA) als 433 MHz an
Funkempfängerpyramide - in IR an HDrec
PC kaseikyo Code ---------> RFM12 ---------> Funkempfängerpyramide
------> IR ------> HD Rec
Joachim B. schrieb:> Ziel des ganzen, per PC den HD Recorder zu programmieren, auch übers> I-Net (VNC)
Dann würde doch folgendes reichen:
USB-to-RS232 -> MAX232 -> AVR
Den USB-to-RS232-Wandler bekommst Du überall für ein paar Euros
nachgeworfen. Dann kannst Du über die COM-Schnittstelle Befehle an den
AVR senden. Dort läuft IRSND, welcher die Befehle per IR-LED wieder
aussendet.
Anregungen findest Du vielleicht hier:
http://www.klaus-leidinger.de/mp/Mikrocontroller/IR-LCD/IR-LCD.html> war der Urlaub schön ?
Danke, oft über 40°C und viel Sonne :-)
Gruß,
Frank
P.S.
Ausgerechnet Kaseikyo unterstützt IRSND (das Gegenstück zu IRMP) noch
nicht. Könnte sich aber ändern, wenn ich genügend "Futter" in Form von
Scans bekomme ;-)
Frank M. schrieb:> Joachim B. schrieb:>> Ziel des ganzen, per PC den HD Recorder zu programmieren, auch übers>> I-Net (VNC)>> Dann würde doch folgendes reichen:>> USB-to-RS232 -> MAX232 -> AVR>> war der Urlaub schön ?> Danke, oft über 40°C und viel Sonne :-)> Gruß,> Frank>> P.S.> Ausgerechnet Kaseikyo unterstützt IRSND (das Gegenstück zu IRMP) noch> nicht. Könnte sich aber ändern, wenn ich genügend "Futter" in Form von> Scans bekomme ;-)
also da denke ich eher an:
http://www.embedded-projects.net/index.php?page_id=135
mit
http://www.embedded-projects.net/index.php?page_id=160
da habe ich etwas mitgewirkt (Platinengröße für USB Stickgehäuse), der
kann auch als USB zu RS232 Umsetzer arbeiten (über virtcom Treiber) und
statt den Code als RS232 auzugeben wird das Kommando direkt als KASEIKYO
ausgegeben (mittels IRSND an 433 MHz)
Ich muss dann eben die RS232 Schnitte nachrüsten in meinem IRMP (seufs
geht nicht wirklich leicht auf dem Steckbrett, muss wohl erst ne Platine
schnitzen) damit ich dich mit KASEIKYO Codes füttern kann
dann ist da noch das 433 MHz Problem, senden empfangen mag ja in den
RS232 Atmel Funkstrecken gehen, ist aber digital, meine Versuche eine
China Funk FB (Cam RF Remote Auslöser , Canon Pentax, alle nach dem
selben Prinzip, 4 DIP für Sende/Empfang an Cam mit kleinen Handsender
mit Stabantenne) zu belauchen mit den Modulen war erfolglos, scheint mir
analog zu sein....
Frank M. schrieb:> Du kannst natürlich Deine XLS-Dateien wieder ins IRMP-Format umwandeln,>> das geht so: für jede zehntausendstel Sekunde schreibst Du eine 1, wenn>> der Empfänger aus war, für jede zehntausendstel Sekunde schreibst Du>> eine 0, wenn der Empfänger aktiv war. Das gibt dann eine Folge von 0en>> und 1en in einer langen Zeile z.B. so:>>>> 000000011111111111111000111000111.....>>>> Davor schreibst Du noch einen Kommentar:>>>> # OFF-Taste TV>> 000000011111111111111000111000111.....>> # OFF-Taste VCR>> 000000011111111111111000111000111.....>>>>> ist Exelformat und die XLS ist schon zu µs umgesetzt>>>> Nützt mir nichts. IRMP "versteht" halt nur das IRMP-Format selbst.>>>>> oszi zu CSV oder XLS ist halt schneller als HW bauen>>>> Naja, einen MAX232 dranbauen ist auch nicht soooo schwierig.
zu umwandeln, low aktiv oder high aktiv ?
in Ruhe kommen 5V aus dem TSOP 1736 wenn IR Signale erkannt werden
wechselt es zu low
also 1 = 0 ? und 0 = 1 ?
dem MAX anbauen ist schwierig, weil 1. kein max232 in der Kiste, aber in
der Datenbank, aber max233 in der Kiste aber nur SMD und da muss ich
löten, dito macht sub-d in dem steckbrett keinen sinn und in smd hab ich
den nicht, also muss ich max233 auf SMD und dann auf Lochraster mit
SUB-D verheiraten bevor es ans Steckbrett geht, ist schon nicht trivial
für mich mit meene ollen ogen :|
so, ich baue grad mit dem max233 auf (murphy, natürlich habe ich den nur
als SO und in der LBR gibt es den nur in DIL und die SO Variante hat
andere Pinbelegung, deswegen erst mal Symbol und Dev in Eagle bauen,
mann mann mann, das Leben könnte doch einfacher sein)
kann jemand kurz sagen wozu der Taster ist vergessen ? :o (Plan von Hr.
Leidinger ?)
und warum muss Vcc an Ri ?
mit den Datenrichtungen DTE / DCE komme ich regelmäßig durcheinander
wer ist hier eigendlich was ? ich denke mal Atmel spielt Modem und
betrachte ihn als DCE und nicht als DTE
glücklicherweise scheint bis jetzt im Plan alles zu stimmen
liebe gruesse
jar
Joachim B. schrieb:> kann jemand kurz sagen wozu der Taster ist vergessen ? :o (Plan von Hr.> Leidinger ?)
gefunden bootloader, SW nachladen, kann also raus,
bleibt also die Frage:
> und warum muss Vcc an Ri ?
liebe gruesse
jar
Joachim B. schrieb:> bleibt also die Frage:>> und warum muss Vcc an Ri ?
Wovon redest Du? Vom Pullup am Reset-Pin in der Schaltung von Klaus
Leidinger?
Gruß,
Frank
Frank M. schrieb:> Joachim B. schrieb:>>> bleibt also die Frage:>>> und warum muss Vcc an Ri ?>> Wovon redest Du? Schaltung von Klaus Leidinger?>> Gruß,>> Frank
ja schrieb ich das nicht ?
bald kann ich scans von den FB loggen, dann schick ich alles was ich an
FB finde
liebe gruesse
jar
und nun ? ich wusste ich hasse logging
#ifndef IRMP_LOGGING
#define IRMP_LOGGING 1 // 1: log IR
signal (scan), 0: do not (default)
#endif
ich verstehe logging auf 1 ?
steht ja auch da, 1 log IR
aber dann :
#if IRMP_LOGGING == 0
// USART initialization has to be done here if Logging is off
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART0 Mode: Asynchronous
// USART Baud Rate: 9600
#define BAUDRATE 9600L
UCSR0A=0x00;
UCSR0B=0x08;
UCSR0C=0x06;
UBRR0H = ((F_CPU+BAUDRATE*8)/(BAUDRATE*16)-1) >> 8; //
store baudrate (upper byte)
UBRR0L = ((F_CPU+BAUDRATE*8)/(BAUDRATE*16)-1) & 0xFF;
#endif
also wird das UART init wenn logging off ?
nix verstehen.....
bei build gibt:
../irmp.c:645: error: 'U2X' undeclared (first use in this function)
UART0_UCSRA &= ~(1<<U2X);
ich finde die DEF von U2X nirgends ,
wo gehört sie wie hin ?
danke (sorry das ich blöd bin, ist immer schwer sich in fremden code
zurechtzufinden und mit dem uart hab ich noch nie im atmel gearbeitet,
tippe da muss irgendwo ein init vergessen sein)
liebe grüße jar
so uart ausgabe läuft,
irgendwie uart.c und .h vergessen
da der at644 irgendwie nicht drin lief eben ein paar defs geändert
egal läuft
nur com terminal spuckt nix aus
aber hterm aber mit sonderzeichen
nun weiss ich leider immer noch nicht wie ich mitloggen soll
entweder es ist zu dünne erklärt oder ich bin unfähig....
blicke grad nicht durch warum com terminal nix zeigt aber hterm und
welches pc log prgramm laufen muss und unter xp laufen kann, mal eben
linus booten ist grad nicht möglich und den rücken verdrehen zum anderen
rechner auch nicht so lang sind meine kabel nicht
gruss
jar
Joachim B. schrieb:> aber hterm aber mit sonderzeichen
Du musst hterm auf 9600 Bd 8 Bit no Parity stellen.
> entweder es ist zu dünne erklärt oder ich bin unfähig....
Da ich von den IRMP-Anwendern bereits Dutzende Scan-Dateien erhalten
habe, sollten die Erklärungen im IRMP-Artikel eigentlich reichen ;-)
Gruß,
Frank
so
versuch mal dein Glück bitte
wenn das erfolgreich ist scanne ich alle Tasen und mher FBs
ich glaube meine Schaltung spinnt noch ein bissl,
nicht so leicht scans einzufangen wenn irgendjemand
irgendwo auf die FB drückt,
muss wohl in ein dunkles Zimmer ohne Fenster
und ohne IR Pyramiden,
die fangen sich offensichtlich auch was ein
lg
jar
Joachim B. schrieb im Beitrag #1813217:
> so ?> 11111111111111111110000......
Klasse, Du hast es geschafft, dass die Fensterbreite dieses Threads
enorm gewachsen ist ;-)
Wäre wohl besser, den Beitrag zu löschen, sonst muss man zum Antworten
erstmal eine halbe Stunde scrollen...
Gruß,
Frank
Joachim B. schrieb:> versuch mal dein Glück bitte
Habe es mir eben mal kurz angeschaut: Der Scan ist mit 15kHz
aufgezeichnet worden... hättest Du auch sagen können ;-)
> nicht so leicht scans einzufangen wenn irgendjemand> irgendwo auf die FB drückt,> muss wohl in ein dunkles Zimmer ohne Fenster> und ohne IR Pyramiden,> die fangen sich offensichtlich auch was ein
Allerdings... die erste Zeile ist nur ein Fragment, die kann man nur in
die Tonne stopfen. Die anderen 3 Zeilen sind brauchbar, allerdings hat
sich da in die zweite Zeile neben eines Kaseikyo-Frames auch noch ein
kompletter SAMSUNG32-Frame mit reingeschmuggelt. Ausserdem ist da auch
noch ab und an anderer Schrott zwischendurch zu sehen.
Ich muss Deine Scans erstmal ein wenig säubern, bevor ich da näheres
erkenne. Besser wäre es allerdings, mit 10kHz zu scannen (reicht für
Kaseikyo vollkommen aus) und wirklich dafür zu sorgen, dass keine
anderen IR-Sender dazwischenfunken.
Gruß,
Frank
Frank M. schrieb:> Joachim B. schrieb im Beitrag #1813217:>> so ?>> 11111111111111111110000......>> Klasse, Du hast es geschafft, dass die Fensterbreite dieses Threads> enorm gewachsen ist ;-)>> Wäre wohl besser, den Beitrag zu löschen, sonst muss man zum Antworten> erstmal eine halbe Stunde scrollen...>> Gruß,>> Frank
ich hab versucht zu löschen, geht nicht, ist mir ja auch peinlich, aber
ich wollte kein Umbrüche drin haben
ich habe den Beitrag gemeldet, wenn ein Mod bitte diesen löscht !
kannst du mit den Scans was anfangen ?
hier noch mal
alle meine FB
die Kaseikyo würde ich scannen wenn du sagst du kannst sie auswerten,
muss ich dann wirklich alle Tasten scannen ? ist ein Haufen Arbeit
warum wird die JVC immer noch nicht erkannt ? der Code sollte doch drin
sein ?
habe mal jvc dazugelinkt
Joachim B. schrieb:> ich habe den Beitrag gemeldet, wenn ein Mod bitte diesen löscht !
Ich hatte ihn auch schon gemeldet ;-)
> kannst du mit den Scans was anfangen ?
Ja, habe ein Ergebnis. Die beiden verschiedenen OFF-Tasten bringen
folgende 48 Daten-Bits:
1
1 2 3 4
2
123456789012345678901234567890123456789012345678
3
010000000000010000001101000000001011110010110001 p = 5, a = 0x2002, c = 0x03d0, f = 0x00
4
010000000000010000000001000000001011110010111101 p = 5, a = 0x2002, c = 0x03d0, f = 0x00
5
ccccccccccccccccPPPPssssppppppppffffffffCCCCCCCC
IRMP ermittelt daraus jeweils die Adresse 0x2002 und das Kommando
0x03d0. Tatsächlich unterscheiden sich aber die 48 Bits genau an 4
Stellen, nämlich Bit21-22 und Bit45-46.
Dabei haben die 48 Bits folgenden Aufbau:
c = 16 Hersteller (customer) Bits
P = 4 Parity Bits
s = 4 System-Bits
p = 8 Produkt-Bits
f = 8 Funktions-Bits
C = 8 Datenüberprüfungs-Bits
Der signifikante Unterschied der beiden Tasten liegt in den 4
System-Bits, die von IRMP bisher komplett ignoriert wurden - einfach,
weil ich dafür keine genauen Infos herausgefunden habe, was diese Bits
genau bedeuten. Dass IRMP überhaupt Datenbits bei Kaseikyo ignoriert,
hat einen einfachen Grund: Ich muss die 48 bit irgendwie in 16 Adress-
und 16 Kommando-Bits pressen. Ich muss mir also überlegen, wie ich die 4
Systembits da noch unterbringe. Gib mir also bitte etwas Zeit ;-)
> alle meine FB> die Kaseikyo würde ich scannen wenn du sagst du kannst sie auswerten,> muss ich dann wirklich alle Tasten scannen ? ist ein Haufen Arbeit
10 Tasten reichen. Bitte aber nicht einfach nur die Zahlen 0-9 ;-)
> warum wird die JVC immer noch nicht erkannt ? der Code sollte doch drin> sein ?
Ich werde mir den JVC-Scan anschauen. Ist der auch mit 15kHz gescannt?
Gruß,
Frank
Frank M. schrieb:> Ich werde mir den JVC-Scan anschauen.
Das Ding benutzt zwar die NEC-Timings, das Protokoll ist aber komplett
anders aufgebaut: Nach jeweils 16 der insgesamt 50 Bits wird eine
längere Pause von ca. 22msec eingelegt. Ausserdem scheinen die Daten
(die nur eine Länge von 16 Bit haben) insgesamt 2x wiederholt zu werden.
Also ist der Aufbau:
1 NEC-Start-Bit
16 Daten-Bits
1 Stop-Bit + Pause (Synchronisation?)
16 Daten-Bits
1 Stop-Bit + Pause (Synchronisation?)
16 Daten-Bits
Näheres kann ich Dir erst sagen, wenn Du mich mit mehr JVC-Scans
versorgst.
Gruß,
Frank
Frank M. schrieb:> 10 Tasten reichen. Bitte aber nicht einfach nur die Zahlen 0-9 ;-)
mach ich nach Wunsch oder Querbeet ?
Frank M. schrieb:> Frank M. schrieb:>>> Ich werde mir den JVC-Scan anschauen.>> Das Ding benutzt zwar die NEC-Timings,...> Gruß,> Frank
auch das, s.o.
mach ich nach Wunsch oder Querbeet ?
Joachim B. schrieb:> mach ich nach Wunsch oder Querbeet ?
Querbeet - halt die Tasten, die Du für am wichtigsten erachtestest. Wäre
nicht schlecht, wenn die Nummerntasten 0, 1, 2 dabeiwären, da kann man
meist gut eine Systematik ablesen.
Gruß,
Frank
Frank M. schrieb:> Joachim B. schrieb:>> mach ich nach Wunsch ?>> Querbeet - halt die Tasten, die Du für am wichtigsten erachtestest. Wäre> nicht schlecht, wenn die Nummerntasten 0, 1, 2 dabeiwären, da kann man> meist gut eine Systematik ablesen.> Gruß,> Frank
so getan, aber nicht alle 10er Tasten 1-5 jeweils doppelt
ich hoffe ich habe mich nicht ver C&P und verguckt
ich sehe Jitter ? oder Frequenzabweichung, da ich ja doppelt gescant
hatte erwarte ich 1 und 0 immer fast gleich, mal eine mehr oder weniger
muss dann Jitter sein ? oder Frequenzabweichung ?
so ich werde dann mal das 128 x 64 gLCD anfrickeln mit LED Beleuchtung
jetzt hängt ja nur das 4x20 Z dran unbeleuchtet
wenn dir Scans fehlerhaft scheinen oder fehlen, bitte sofort melden,
schick ich dann nach
die pana VCR FB fehlt mir noch, muss ich nachreichen, habe nur noch 3
Tage Zugriff drauf
Joachim B. schrieb:> ich sehe Jitter ? oder Frequenzabweichung,
Ich sehe da zwischendurch viel Schrott, auch mal zwischendurch
Samsung32-Frames. Ausserdem sind da bei den ersten paar Tasten
unerklärliche Zeilenumbrüche drin. Funkt da was dazwischen?
Hatte ich auch heute vormittag in
Beitrag "Re: IRMP - Infrared Multi Protocol Decoder"
geschrieben.
Bitte ausschließen, dass Deine "Pyramiden" dazwischenfunken und bitte
auch die Scan-Frequenz auf 10kHz zurückschrauben. 15kHz sind hier nicht
notwendig und verlängert die Scans unnötig.
Gruß,
Frank
Frank M. schrieb:> Bitte ausschließen, dass Deine "Pyramiden" dazwischenfunken und bitte> auch die Scan-Frequenz auf 10kHz zurückschrauben. 15kHz sind hier nicht> notwendig und verlängert die Scans unnötig.> Gruß,> Frank
die heutigen scans ohne OFF Taste ohne Störungen von den Pyramiden, die
sind daheim (die zuvor gescanten OFF Tasten hab ich aber reinkopiert um
Arbeit zu sparen)
auf 10kHz umgestellt, nach Durchsicht der config brauche ich die wohl
nicht
IRMP_SUPPORT_FDC_PROTOCOL
IRMP_SUPPORT_RCCAR_PROTOCOL
IRMP_SUPPORT_SIEMENS_PROTOCOL
IRMP_SUPPORT_RECS80_PROTOCOL
SUPPORT_RECS80EXT_PROTOCOL
Siemens könnte evt. noch kommen, dann wird man sehen
>15kHz sind hier nicht> notwendig und verlängert die Scans unnötig.> Gruß,> Frank
aber hilft das nicht der Genauigkeit der Auswertung, weniger
Jitterfehler ?
Frank M. schrieb:> Allerdings... die erste Zeile ist nur ein Fragment, die kann man nur in> die Tonne stopfen. Die anderen 3 Zeilen sind brauchbar, allerdings hat> sich da in die zweite Zeile neben eines Kaseikyo-Frames auch noch ein> kompletter SAMSUNG32-Frame mit reingeschmuggelt. Ausserdem ist da auch> noch ab und an anderer Schrott zwischendurch zu sehen.> Gruß,> Frank
das hatte ich wohl überlesen,
ist halt doof wenn Frau beim Scan der Panasonic die Samsung bedient weil
sie lauter oder leiser haben will (ich hatte vesucht aufzupassen,
klappte wohl nicht immer) ausserdem sehe ich ab und an unmotiviert die
IR Pyramiden blinken, war wohl keine gute Idee die alten scans
dazuzulinken, OK und 15 kHz hatte ich verschwiegen, aber du findest
offensichtlich alle Gemeinheiten die dir die User wohl unterjubeln (ohne
Absicht)
also wie gesagt,
auf 10 kHz ist umgestellt (immer noch die Frage, wäre für Scan nicht 15
kHz genauer?)
IR Pyramiden sind nicht hier und @work kann kein weiteres IR Signal
stören, ausser Schmutz auf der Versorgungsleitung oder
Maschineninduktion, hier sind schon irgendwo heftige Stanzen zu hören,
aber wo die sind habe ich noch nicht rausgefunden, so ein Stahlbetonbau
lääst die Gräusche zwar weit durch aber schlecht ortbar
ich sanne neu bei Bedarf
Joachim B. schrieb:> auf 10 kHz ist umgestellt
Gut.
> (immer noch die Frage, wäre für Scan nicht 15 kHz genauer?)
Nein, 10kHz reicht bei Deinen FBs vollkommen aus.
> ich sanne neu bei Bedarf
Ich baue erstmal die angekündigten Änderungen für Kaseikyo ein
(Berücksichtigung der 4 System-Bits) und implementiere das
JVC-Protokoll. Da wäre es aber klasse, wenn Du mir von der JVC ein paar
10kHz-Scans liefern würdest.
Gruß,
Frank
Frank M. schrieb:> Ich baue erstmal die angekündigten Änderungen für Kaseikyo ein> (Berücksichtigung der 4 System-Bits)
super DANKE dafür ! und bitte bitte IRSND nicht vergessen darauf kommt
es ja hauptsächlich an (Ziel nicht aus den Augen verlieren will)
>und implementiere das> JVC-Protokoll. Da wäre es aber klasse, wenn Du mir von der JVC ein paar> 10kHz-Scans liefern würdest.
klaro das hat Zeit ist weniger für mich mehr für alle deren FB nicht
mehr geht
ich hoffe ich habe keine copy paste Fehler drin
(einige scans waren zu lang und dann läuft hterm leicht über, im scroll
fenster und man erwischt den anfang nicht)
heute frisch gescant 10 kHz ohne IR Pyramiden
#Sondertasten (VCR/DVD play rec usw.) unter Schiebeklappe bitte nicht
noch auch, nur wenn die Not gross ist :-)
Joachim B. schrieb:> heute frisch gescant 10 kHz ohne IR Pyramiden
Die Scans sehen sehr gut aus. Die Abweichungen (Jitter) sind normal, die
FBs senden nicht soooo genau. Ausserdem kommt schon durch das Pollen in
der ISR ein Fehler von +/- 1 zustande. IRMP arbeitet aber mit
Toleranzen, deshalb ist das überhaupt nicht tragisch.
Ich kümmere mich erstmal um Kaseikyo, dann melde ich mich wieder.
Gruß,
Frank
Frank M. schrieb:> Ich kümmere mich erstmal um Kaseikyo, dann melde ich mich wieder.> Gruß,> Frank
fein morgen scanne ich alle meine Panasonic FB Kaseikyo neu
VCR NV FJ630 VHS
TV TX-L32S10ES
DVD/HDrec Panasonic DMR-EX 79
10 kHz ohne IR Pyramidenstörungen
Frank M. schrieb:> Ich baue erstmal die angekündigten Änderungen für Kaseikyo ein> (Berücksichtigung der 4 System-Bits)> Gruß,> Frank
brauchst du noch was ?
hier die KASEIKYO Panasonic VCR FB
Frank M. schrieb:> Die Scans sehen sehr gut aus. Die Abweichungen (Jitter) sind normal,> Gruß,> Frank
das wundert mich nun etwas,
sagte ich nicht das an dem MAX nur +5 und NULL rauskamen ?
nun nachdem ich den Schluss unter dem SMD PAD (MAX233 9 GND nach 10
irgendein int. Kondi) gefunden hatte habe ich jetzt endlich +-10V
aber wenn die Scans schon vorher gut waren soll das nicht weiter stören
Joachim B. schrieb:> hier die KASEIKYO Panasonic VCR FB
Danke, habe ich mir angeschaut, leider sind nur 161 von 216 Scans okay.
55 Scans weisen einen abweichenden Herstellercode auf, welcher für
Panasonic 0x2002 ist. Ist die Datei auch schon mit dem MAX-Kurzschluss
erstellt worden?
Macht nix, der Rest ist echt brauchbar.
Achja, noch eine Bitte: Beim Scannen bitte immer die Tasten so kurz wie
möglich drücken. Beim JVC-Scan hast Du da offenbar des öfteren ziemlich
lange den Finger auf den Tasten gehabt - jedenfalls zu Anfang bei den
ersten Tasten ;-)
Dank und Gruß,
Frank
Frank M. schrieb:> Ich baue erstmal die angekündigten Änderungen für Kaseikyo ein> (Berücksichtigung der 4 System-Bits) und implementiere das> JVC-Protokoll.
Anbei die geänderten Sources zum Test.
Neu:
- Kaseikyo: es werden nun die 4 System-Bits (Genre2) im Frame
ausgewertet
- Neues Protokoll: JVC
Viel Spaß,
Frank
Frank M. schrieb:> Joachim B. schrieb:>> hier die KASEIKYO Panasonic VCR FB>> Danke, habe ich mir angeschaut, leider sind nur 161 von 216 Scans okay.> 55 Scans weisen einen abweichenden Herstellercode auf, welcher für> Panasonic 0x2002 ist.
hmm, welche ?, könnte die ja nachliefern, hast ja die #Headerzeile dazu
>Ist die Datei auch schon mit dem MAX-Kurzschluss> erstellt worden?
ja leider, wollte erst liefern, dann hat mich der Pegel doch nicht ruhen
lassen und ich ging auf Fehlersuche
> Macht nix, der Rest ist echt brauchbar.> Achja, noch eine Bitte: Beim Scannen bitte immer die Tasten so kurz wie> möglich drücken. Beim JVC-Scan hast Du da offenbar des öfteren ziemlich> lange den Finger auf den Tasten gehabt - jedenfalls zu Anfang bei den> ersten Tasten ;-)> Dank und Gruß,> Frank
na ja man wartet immer auf Bestätigung, ich hab ne LED Quittung
eingebaut, 1s LED Blink wenn Code erkannt, nur im Logging Mode erkennt
er ja nix und ich warte vergebens und im HTERM kommen die Daten
offensichtlich erst verzögert, also bleib ich zu lang drauf und dann
wollen die Daten nicht enden
einige Tasten sind auch versenkt um Fehlbedienungen zu meiden, deren
Druckpunkt ist schwer zu fühlen
ich weiss, alles Ausreden, aber wer so lange im Beruf ist der kann wohl
nicht anders
danke und gruß zurück
jar
Frank M. schrieb:> Frank M. schrieb:> Ich baue erstmal die angekündigten Änderungen für Kaseikyo ein> (Berücksichtigung der 4 System-Bits)> Neu:> - Kaseikyo: es werden nun die 4 System-Bits (Genre2) im Frame> ausgewertet
hmm, aber scheinbar noch etwas wackelig (muss ich mir meine
Abblockkondis ansehen oder meine 5V Versorgung ?), wenn die FB nicht
genau ausgerichtet ist und man nicht lange drückt erkennt er viele
Zufallscodes, ist nicht so stabil wie RC5, da kenne ich nur ja / erkannt
oder nein / eben nicht, aber Zufallscodes seh ich nie
> und implementiere das> JVC-Protokoll.> - Neues Protokoll: JVC
ah, erst verwundert, wird nicht angezeigt, dann aber
meine JVC wird erkannt , A + C wird angezeigt aber unter Code nicht JVC
!
> Viel Spaß,> Frank
danke den hab ich schon
Frank M. schrieb:> Ja, und? Ist hier die Bezeichnung "Jitter" falsch, wenn es um> Messabweichungen von Rechtecksignalen wie bei den folgenden geht?
Nein, nicht bei dir.
Nur bei Joachim klang es danach, dass er damit die
Spannungs-Sonderheiten wegen seiner MAX-Beschaltung meinte.
Joachim B. schrieb:> meine JVC wird erkannt ,
Gut.
> A + C wird angezeigt
Auch gut.
> aber unter Code nicht JVC
Den Satz verstehe ich nicht. Hast Du im main() eine Text-Ausgabe über
ein Text-Array drin und vermisst nun das Wörtchen "JVC"? Das gehört
nicht wirklich zu den IRMP-Sources dazu, denn:
irmp_get_data liefert lediglich
uint8_t protocol
uint16_t address
uint16_t command
protocol hat den Wert 20 bei JVC, siehe irmp.h, da sind alle Protokolle
drin.
Du müsstest bei Deiner Textausgabe das Text-Array auf 20 vergrößern und
dort den String "JVC" eintragen.
Gruß,
Frank
Joachim B. schrieb:> hmm, aber scheinbar noch etwas wackelig (muss ich mir meine> Abblockkondis ansehen oder meine 5V Versorgung ?), wenn die FB nicht> genau ausgerichtet ist und man nicht lange drückt erkennt er viele> Zufallscodes, ist nicht so stabil wie RC5,
Was für einen IR-Empfänger nutzt Du? TSOP1736 oder 1738? Das Problem
ist, dass Kaseikyo mit 56 kHz moduliert wird und der TSOP mit seinen
36kHz bzw. 38kHz ziemlich daneben liegt. Die Entfernung sinkt drastisch
und die Fehlerquote nimmt zu.
Gruß,
Frank
Frank M. schrieb:> Den Satz verstehe ich nicht. Hast Du im main() eine Text-Ausgabe über> ein Text-Array drin und vermisst nun das Wörtchen "JVC"? Das gehört> nicht wirklich zu den IRMP-Sources dazu, denn:>> irmp_get_data liefert lediglich>> uint8_t protocol> uint16_t address> uint16_t command> protocol hat den Wert 20 bei JVC, siehe irmp.h, da sind alle Protokolle> drin.> Du müsstest bei Deiner Textausgabe das Text-Array auf 20 vergrößern und> dort den String "JVC" eintragen.> Gruß,> Frank
sowas dachte ich schon, nur hab ich die Zuweisung nicht gefunden
aber nun
static char
*Proto[]={"SIRCS","NEC","SAMSUNG","MATSUSH","KASEIKYO","RECS80","RC5(x)"
,"DENON","RC6","SAMSG32","APPLE","RECS80x","NUBERT","JVC"};
> Du müsstest bei Deiner Textausgabe das Text-Array auf 20 vergrößern
wie das ich finde nirgends eine Zuweisung von Array auf 20
soweit wie ich C gelernt habe ist durch anhängen von ,"JVC" das Array
schon ab compile vergrößert, da es ja statisch initialisiert wird, eine
seperate Zuweisung dürfte nicht (nötig) sein und finde ich auch nicht
hmm es funzt jedenfalls noch nicht
ich tippe auf NEC erkannt und JVC eben nicht
Frank M. schrieb:> Was für einen IR-Empfänger nutzt Du? TSOP1736 oder 1738? Das Problem> ist, dass Kaseikyo mit 56 kHz moduliert wird und der TSOP mit seinen> 36kHz bzw. 38kHz ziemlich daneben liegt. Die Entfernung sinkt drastisch> und die Fehlerquote nimmt zu.> Gruß,> Frank
TSOP 1736 , aber mein Scan an einer BPW21 lieferte 36 kHz Schwingungen
ich könnte ja noch mal einen OP vorschalten und eine FFT machen
gruss
jar
peinlich peinlich
sind ja nur 14 Text STR definiert, hab nicht nachgezählt
musste also 6x "", einfügen das 20 auf "JVC" zeigt ......
ja ich bin aus der Übung und sehe nicht immer alles (sofort)
gruss
jar
Joachim B. schrieb:> aber nun>> static char> *Proto[]={"SIRCS","NEC","SAMSUNG","MATSUSH","KASEIKYO","RECS80","RC5(x)"
,"DENON","RC6","SAMSG32","APPLE","RECS80x","NUBERT","JVC"};
Du hast "JVC" an 14. Stelle statt an 20. Stelle eingetragen, damit das
Array auch nur auf 14 Elemente vergrößert.
>>> Du müsstest bei Deiner Textausgabe das Text-Array auf 20 vergrößern>> wie das ich finde nirgends eine Zuweisung von Array auf 20
Eben, die Dimension von Proto[] ist nicht angegeben.
> hmm es funzt jedenfalls noch nicht
Trage alle fehlenden Namen ein (die einzelnen nicht zu lang machen!) und
sorge dafür, dass "JVC" an 20. Stelle steht, siehe Nummern der
Protokolle 1-20 in irmp.h.
Gruß,
Frank
Frank M. schrieb:> Eben, die Dimension von Proto[] ist nicht angegeben.> Trage alle fehlenden Namen ein (die einzelnen nicht zu lang machen!) und> sorge dafür, dass "JVC" an 20. Stelle steht, siehe Nummern der> Protokolle 1-20 in irmp.h.> Gruß,> Frank
hatte ich doch schon,
Joachim B. schrieb:> peinlich peinlich> sind ja nur 14 Text STR definiert, hab nicht nachgezählt> musste also 6x "", einfügen das 20 auf "JVC" zeigt ......> ja ich bin aus der Übung und sehe nicht immer alles (sofort)> gruss> jar
ich denke ich werde trotzdem noch mal einen Frequenz Scan aller FB
machen
wie geschrieben mit BPW21 OP und FFT
und mal alle meine FB scannen
Frank M. schrieb:> Das Problem ist, dass Kaseikyo mit>> 56 kHz> moduliert wird und der TSOP mit seinen 36kHz bzw. 38kHz> ziemlich daneben liegt.> und die Fehlerquote nimmt zu.> Gruß,> Frank
wo hast du die Daten her ?
ich kann hier machen was ich will
ich messe burst von 26-28 µs was 35,9 - 38,5 kHz gibt
übrigens alle
>> meine Kaseikyo liegen eher bei 36 kHz ,
nur die JVC scheint um 38 kHz zu liegen
bin verwirrt von deinen 56 kHz
gruss
jar
Ich lese oben, dass es Probleme gibt/gab mit dem Code einer Kathrein
UFS-922 Fernbedienung. Wurde das Problem gelöst? Ich habe beim Bau einer
FB diesen Code enträtselt.....
ach ja , vergessen
irgendwer schrieb mal was von 450 kHz IR Modulation, aber ich bin nicht
sicher ob das so stimmt, weil :
einige modilieren auch mit x-facher Frequenz wegen oversampling
da können die paar 100 kHz auch vielfache von 36 oder 38 - 40 oder 56
kHz sein
ggffs kann man später mal in IRSND oversampling einstellen und schauen
was aus den TSOP rauskommt, ich vermute mit exakt doppelter oder gerade
Vielfache werden die auch output liefern.......
gruss
jar
Samuel schrieb:> Joachim B. schrieb:>> peinlich peinlich> Spiegelt deinen Auftritt hier gut wieder.> Du hast mal von jar nüscht Ahnung.
danke danke, von nüscht würde ich nüscht sagen.....
OK ich bin nicht so der Softi und aus der Übung
aber war der Kommentar nötig ?
na egal wer anonym so was schreibt braucht das wohl
ich komm schon klar, hab halt nicht die Arrays ausgezählt
wer so perfekt ist wie du kann sich anmelden und auch besser Fragen
beantworten und zum Rest höflich schweigen....
freundlichen gruss
jar
Wolfgang Dunczewski (midi-rakete) schrieb:> Ich lese oben, dass es Probleme gibt/gab mit dem Code einer Kathrein> UFS-922 Fernbedienung. Wurde das Problem gelöst?
Nein, die Kathrein benutzt einen RC6-Mode, der nicht oder nur spärlich
dokumentiert ist. IRMP unterstützt nur den sog. Mode 0 von RC6, siehe
auch:
http://www.sbprojects.com/knowledge/ir/rc6.htm> Ich habe beim Bau einer FB diesen Code enträtselt.....
Dann schieß mal los.
Gruß,
Frank
Frank M. schrieb:> Nein, die Kathrein benutzt einen RC6-Mode, der nicht oder nur spärlich..>> http://www.sbprojects.com/knowledge/ir/rc6.htm>>> Ich habe beim Bau einer FB diesen Code enträtselt.....>
Ich fand im Web Infos über den RC-6 Mode 6A 20:
[[http://www.guiott.com/wrc/RC6-6.html]]
mit 20 Bit Nutzrate
Die Kathrein nutzt "in etwa" diesen als 32 Bit Version (RC-6 mode 6a
32), aber nicht nach Norm:
Die FB vom UFS-922 macht folgendes:
Leader Pulse (ok)
Start Bit (ok)
Mode Bits 2,1,0 (H,H,L = Mode 6)
Trailer Bit: Flanke immer L>H (nicht offiziell, soll normal toggeln)
Dann folgen 4 Bytes:
Das erste Byte ist immer 10000000 (von links nach rechts wird gesendet)
Das zweite Byte ist immer 01000110
Das dritte Byte enthält das Toggle-Bit TB und
die Ebene/Adresse falls man mehrere FBs hat
TB AD2 AD1 AD0 0000
also normal bei Adresse 0:
10000000
und abwechselnd
00000000
Eigenlich gehört das Togglebit an eine andere Stelle. Das Trailer Bit
soll eigentlich toggeln. Aber Kathrein lässt ein Bit togglen. Deshalb
funtioniert fast keine programmierbare FB mit dem Kathrein.
Und im 4. Byte kommen die Befehe 00-FF
nnnnnnnn
Wolfgang Dunczewski (midi-rakete) schrieb:> Die Kathrein nutzt "in etwa" diesen als 32 Bit Version (RC-6 mode 6a> 32), aber nicht nach Norm:> [...]
Vielen Dank für die Infos, werde ich mir mal zu Gemüte führen.
Gruß,
Frank
Frank M. schrieb:>> Joachim B. schrieb:>> sehr interessant:>> http://ecee.colorado.edu/~mcclurel/vishay_ir_data_formats.pdf>> Danke, immerhin steht da drin, dass Kaseikyo mit 36.7kHz moduliert wird.> Werde ich im IRMP-Artikel anpassen.> Insgesamt ist Deine Liste nicht so der Renner, trotzdem danke dafür.> Vielleicht hättest Du Dir vorher mal die Literatur-Hinweise aus dem> IRMP-Artikel angucken sollen, um entsprechend auszufiltern und nicht> jeden Google-Treffer einfach hier reinzukopieren ;-)> Gruß,> Frank
immerhin hab trotzdem noch was gefunden, sorry das es mir nicht möglich
war alle Infos mit den vorhandenen abzugleichen, ich hab hier grad Land
unter und bin deswegen nur sehr begrenzt konzentriert dabei, ich hoffe
das geht trotzdem i.O.
gruss
jar
Frank M. schrieb:> Vielen Dank für die Infos, werde ich mir mal zu Gemüte führen.> Gruß,> Frank
hallo,
wie siehts aus mit KASEIKYO im IRSND ?
würde dann bald ein IRSND Modul aufbauen für
PC -> RS232 -> Atmel IRSND -> IS Sendediode
ich grübel gerade ob der Umweg über Atmel sein muss weil,
kennst du den CT Artikel IRDEO ?
http://www.heise.de/ct/projekte/Fernregie-IRdeo-284185.htmlhttp://irdeo.de/
dort wurde IR Empfang und Senden mit der seriellen Schnitte gemacht,
funzte so leidlich (sogut win das eben zulässt) mit W2k und XP musste
der IO (giveio o.ä.) Treiber installiert werden
http://irdeo.de/ntdriver.zip
GIVEIO.SYS (Dale Roberts), LOADDRV (Paula Tomlinson)
senden war übrigens tricky, die IR Modulation 36 38 40 kHz wurde per
Baudrate / respektive geschickte 1/0 Wahl eingestellt, je nach 1/0 Folge
und Baudrate ist ja quasi jede IR Modulation machbar, die Start oder
Stoppbits, wenn sie einzeln erfolgen, scheinen nicht zu stören
leider war es nur eine lernbare FB welche die Codes nur gelernt wieder
abspielen konnte und mit der Erkennung haperte es leider auch, da ist
dein Projekt viel weiter und besser, aber ggffs kann man die beiden
Konzepte zusammenbringen
für mich wäre ja nur IR Sender nötig wenn ich das ohne Atmel am RS232
Port erreiche spart das Arbeit und Geld (nix gegen die Atnelbastelleien)
freundliche Grüße
jar
Joachim B. schrieb:> wie siehts aus mit KASEIKYO im IRSND ?
Wie ich schon schrieb: dafür brauche ich Futter, damit ich sämtliche
Paritätsbits aus den Daten wieder erzeugen kann. Nur so kann ich die 32
Bit IRMP-Datenstruktur auf die vollen 48bit-Kaseikyo-Frames aufblasen.
Ich warte daher immer noch auf die Scan-Dateien Deiner 3
Kaseikyo-Fernbedienungen, die Du mir schon vor ein paar Tagen
angekündigt hattest.
Ich brauche von jeder dieser 3 FB ca. 10 Tasten, wie ich schon mal
schrieb.
Du hattest hier mal für die Panasonic VCR FB Scans reingestellt, wo aber
noch erhebliche Störungen drin waren. Du hattest den Grund wohl gefunden
und wolltest den Scan wiederholen. Bisher hab ich da aber nix neues von
Dir gesehen.
> kennst du den CT Artikel IRDEO ?
Ja, habe ich mal vor Jahren überflogen.
> für mich wäre ja nur IR Sender nötig wenn ich das ohne Atmel am RS232> Port erreiche spart das Arbeit und Geld (nix gegen die Atnelbastelleien)
Sorry, wüsste ich jetzt nicht, wie. Du kannst natürlich den IRSND-Code
auf eine andere Plattform portieren.
Gruß,
Frank
Frank M. schrieb:> Joachim B. schrieb:>> wie siehts aus mit KASEIKYO im IRSND ?> Wie ich schon schrieb: dafür brauche ich Futter, damit ich sämtliche> Paritätsbits aus den Daten wieder erzeugen kann. Nur so kann ich die 32> Bit IRMP-Datenstruktur auf die vollen 48bit-Kaseikyo-Frames aufblasen.>> Ich warte daher immer noch auf die Scan-Dateien Deiner 3> Kaseikyo-Fernbedienungen, die Du mir schon vor ein paar Tagen> angekündigt hattest.>> Ich brauche von jeder dieser 3 FB ca. 10 Tasten, wie ich schon mal> schrieb.>> Du hattest hier mal für die Panasonic VCR FB Scans reingestellt, wo aber> noch erhebliche Störungen drin waren. Du hattest den Grund wohl gefunden> und wolltest den Scan wiederholen. Bisher hab ich da aber nix neues von> Dir gesehen.> Gruß,> Frank
war wohl ein Missverständniss
auf die VCR FB hab ich nun kein Zugriff mehr, ich hab noch im Ohr, sind
zwar Störungen drin aber brauchbar
Frank M. schrieb:> Joachim B. schrieb:>> hier die KASEIKYO Panasonic VCR FB>> Danke, habe ich mir angeschaut, leider sind nur 161 von 216 Scans okay.> 55 Scans weisen einen abweichenden Herstellercode auf, welcher für> Panasonic 0x2002 ist. Ist die Datei auch schon mit dem MAX-Kurzschluss> erstellt worden?>> Macht nix, der Rest ist echt brauchbar.> Dank und Gruß,> Frank
die 161 scans reichen nicht von der VCR ?
Ich kann also nur noch
Panasonic TV liefern und Panasonic HDrec/DVD
muss mal sehen ob ich den VCR noch mal bekomme
Joachim B. schrieb:> die 161 scans reichen nicht von der VCR ?
Wenn es diese FB ist, welche Du über IRSND auch emulieren willst - ja,
dann reicht es.
> Ich kann also nur noch> Panasonic TV liefern und Panasonic HDrec/DVD
Wenn Du die für IRSND nicht brauchst, dann nicht. Wäre aber trotzdem
nett, wenn Du davon jedoch auch noch je 10 Scans machen könntest, dann
kann ich das allgemeiner in IRSND machen.
Sag mir bitte auch, welche FB Du mit IRSND emulieren möchtest.
Gruß,
Frank
Frank M. schrieb:> Sag mir bitte auch, welche FB Du mit IRSND emulieren möchtest.> Gruß,> Frank
eigendlich genau diese
Panasonic HDrec/DVD
und die sollst du noch mal bekommen
zur Fernprogrammierung über PC
TV hat ja aus der Ferne irgendie keinen Sinn, da könnte ich gleich winTV
im Rechner starten
ich hab den IRMP so schön auf 4x MiMh Akku laufen, damit wäre mobiles
logging auch für den VCR möglich, aber seit der MAX dranhängt läuft der
TSOP nicht mehr, der MAX braucht 1W sind 200mA und zieht offensichtlich
den Pegel runter, ohne externe Versorgung geht da leider nix
ich grübel gerade ob ich den MAX rausschmeisse und einfach mit 2 Trasis,
simple RS232 Konverter baue
http://picprojects.org.uk/projects/simpleSIO/ssio.htm
1W ist schon heftig
alternativ ginge ja die RS232 anzuzapfen, einige Dioden nach P5 sollte
wieder mehr Strom liefern, DTR und RTS kann man ja setzen, nur auf +
setzen , sollten ja ungefähr je 20mA liefern können
so ähnlich hatte ich auch meine PONY Elektronik aus der parallelen
gespeist, einfach 15 BAT42 an jede signalführende Leitung auf einen
Pufferkondi, reicht für CMOS Logik und Signal LED 3mA
Halbzeit
versucht alle Tasten je 2x zu scannen, Tastendruck so kurz wie möglich
musste leider im logging CR LF einfügen, ich hoffe das stört nicht
morgen verm. den Rest
freundliche Grüße
jar
Joachim B. schrieb:> versucht alle Tasten je 2x zu scannen, Tastendruck so kurz wie möglich
Sehr sauberer Scan: keine Störungen, keine Erkennungsfehler. Bei der
Gelegenheit habe ich erkannt, dass bei Kaseikyo auch bei kurzen
Tastendrücken immer mindestens zwei Frames verschickt werden. Bei
längeren Tastendrücken werden drei Frames und mehr gesandt. Ich hatte
das bisher zwar schon immer vermutet, hatte aber da noch nie geeignete
Kaseikyo-Scans.
Ich muss da im IRMP bzgl. Kaseikyo noch nacharbeiten: die erste
Wiederholung des Frames muss unterdrückt werden. Erst alle weiteren
Wiederholungsframes sind als langer Tastendruck auszuwerten. Sonst
bekommt man immer einen langen Tastendruck zurück - auch wenn man die
Taste nur kurz gedrückt hat.
> musste leider im logging CR LF einfügen, ich hoffe das stört nicht
Passt perfekt.
Wann ich das Enkodieren in den IRSND einbaue, kann ich Dir noch nicht
genau sagen. Habe im Moment viel um die Ohren.
Gruß,
Frank
Frank M. schrieb:> Ich muss da im IRMP bzgl. Kaseikyo noch nacharbeiten: die erste> Wiederholung des Frames muss unterdrückt werden. Erst alle weiteren> Wiederholungsframes sind als langer Tastendruck auszuwerten. Sonst> bekommt man immer einen langen Tastendruck zurück - auch wenn man die> Taste nur kurz gedrückt hat.
gibt es da keine Toggel Bits wie in RC5 ? dort klappt das hervorragend
mit der Toggelbitauswertung, habe meinen Timer ja mit
Peters RC5 gebaut
Beitrag "Fernbedien RC5 Empfänger"
da klappt das einfach mit toogle Bit auswerten, muss ja nicht erkennen
ob lang oder kurz
> Wann ich das Enkodieren in den IRSND einbaue, kann ich Dir noch nicht> genau sagen. Habe im Moment viel um die Ohren.> Gruß,> Frank
OK danke erst Mal, ich bekomm ja Bescheid wenn du hier weiterbist und
postest
viel um die Ohren, wer nicht ;-) (wenn du wüsstest)
gruss
jar
Joachim B. schrieb:> gibt es da keine Toggel Bits wie in RC5 ?
Nein, gibt es nur in RC5, RC6 und RECS80. In den anderen 17 Protokollen,
die IRMP "versteht", gibt es kein Toggle-Bit. Dort gibt es u.a.
alternative Mechanismen wie zum Beispiel Repetition-Frames (NEC).
Kaseikyo hat hier nichts, hier arbeite ich mit Timeouts, um längere
Tastendrücke von X-maligen Tastendrücken zu unterscheiden.
>> Wann ich das Enkodieren in den IRSND einbaue, kann ich Dir noch nicht>> genau sagen. Habe im Moment viel um die Ohren.> OK danke erst Mal, ich bekomm ja Bescheid wenn du hier weiterbist und> postest
Bin doch schon fertig damit. Ich lade hier gleich den Test-Source hoch.
Gruß,
Frank
Anbei die geänderten Sources (gegenüber der Download-Version) mit
verbesserter Unterstützung des Kaseikyo-Protokolls als Test-Version.
Änderungen IRMP
---------------
- Kaseikyo-Protokoll:
Unterschiedliche Behandlung des 1. Wiederholungsframes (kein langer
Tastendruck) von nachfolgenden Wiederholungsframes (langer
Tastendruck).
- Kaseikyo-Protokoll:
Auswertung der 4 + 8 = 12 "Parity-Bits", um Empfangsfehler zu
erkennen.
Änderungen IRSND
----------------
- Unterstütrung des Kaseikyo-Protokolls inkl. Parity- und Genre1-Bits.
- Keine Unterstützung der Genre2-Bits beim Kaseikyo-Protokoll
Schwächen
---------
Das Kaseikyo-Protokoll enthält von den 48 Bit insgesamt 36
Nutzdatenbits. Da die IRMP-Datenstruktur nur 32 Bits (16 Adresse, 16
Kommando) davon speichern kann, gehen leider 4 Bits verloren. Dabei
handelt es sich um die sog. Genre2-Bits, die aber meist 0000 sind.
Relevant kann diese Schwäche beim Senden per IRSND werden, da dann die
Codes einiger bestimmter Tasten (wie MENÜ und OK bei Panasonic) nicht
gesandt werden können.
Abhilfe könnte hier die Erweiterung der IRMP-Datenstruktur um ein neues
Byte namens "product" bringen. Muss ich nochmal nachdenken, ob ich das
einbaue. Wahrscheinlich wird es im nächsten Release enthalten sein.
Gruß,
Frank
Hallo,
Ist IRMP eigentlich mit der neuen Apple Remote (Unibody) kompatibel?
Hab mir gestern eine gekauft und wollte sie in meinem aktuellen Projekt
verwenden; funktionierte aber leider nicht. Keinerlei Reaktion von IRMP.
Einen Debug Trace der Apple Remote habe ich mal angehängt (Trace enthält
noch eine Taste einer anderen FB zum Vergleich), sowie einen
aufbereiteten Oszilloskop-Mitschnitt.
CU Dirk
Hallo Dirk,
diese Seite: http://en.wikipedia.org/wiki/Apple_remote
lässt darauf schliessen das beide gleich sind.
Laut Apple Seite ist die Unibody Remote mit allen Produkten nach 2005
eingeführt wurden kompatibel, was nicht das gleiche ist...
Ich hatte die alte (Plastik) FB mit dem iPod 5 Generation getestet, der
im Oktober 2005 vorgestellt wurde, hatte funktioniert. Diese scans waren
auch die "Referenz" für Frank. (falls nicht jemand neue scans geliefet
hat).
Ich glaube dem Wiki Artikel und bin sicher das beide Remote das gleiche
Protokoll haben.
HTH,
Klaus
Dirk W. schrieb:> Hab mir gestern eine gekauft und wollte sie in meinem aktuellen Projekt> verwenden; funktionierte aber leider nicht. Keinerlei Reaktion von IRMP.
Ich habe mir gerade den Scan angeschaut. Das Timing ist NEC- und
APPLE-kompatibel, allerdings verwendet Deine APPLE-FB eine andere ID als
die APPLE-FB von Klaus - nämlich genau da, wo NEC eigentlich die Bits
nochmal invertiert ausgibt.
Das ist ein Klacks, die neue ID in den IRMP einzubauen. Mache ich am
Wochenende.
Gruß,
Frank
Hi,
Danke Frank :-).
Hab gerade mal ein bisschen gesucht und beim LIRC Projekt folgendes
gefunden:
http://lirc.sourceforge.net/remotes/apple/A1294> pre_data 0x77E1> UP 0x50> DOWN 0x30> LEFT 0x90> RIGHT 0x60> PLAY 0xFA> MENU 0xC0> OK 0x3A
Das würde dem von mir ausgelesenen Protokoll entsprechen.
Scheinbar hat Apple wohl verschiedene Codes in seinen Produkten
hinterlegt.
Wünsche ein schönes WE...
CU Dirk
Frank M. schrieb:> APPLE-kompatibel, allerdings verwendet Deine APPLE-FB eine andere ID als> die APPLE-FB von Klaus - nämlich genau da, wo NEC eigentlich die Bits> nochmal invertiert ausgibt.
Laut der lirc Seite sind die Adressen von alter und neuer FB gleich, nur
die Kommandos der Tasten unterscheiden sich:
http://lirc.sourceforge.net/remotes/apple/A1156http://lirc.sourceforge.net/remotes/apple/A1294
Allerdings stimmen die "Lirc" Werte der alten FB mit der Wiki Seite
überein, wenn man LSB berücksichtigt.
Ich habe noch mal meine Aufzeichnungen gecheckt, die alte FB wurde von
IRMP ebenfalls mit Adresse 0x77E1 erkannt,
0x87EE (von der Wiki Seite) in LSB gelesen ergibt 0x77E1
Ach ja, die "alte" FB gibt es wohl auch erst seit Oktober 2005, das
hatte ich überlesen.
Mal wieder raffiniert gemacht von A**le...
Grüße,
Klaus
Hallo und supper Arbeit.
So weit leuft alles bei mir mit dem einlesen der codes. Aber die
Ferbedinung von der XBOX 360 macht schwierwigkeiten.Egal welche Taste
ich drücke kommt immer der Code
irmp_data.protoco =9
irmp_data.address =0
irmp_data.command =31
Vieleicht kann mir von euch Jemand helfen
danke
Graf-von-Socke
Frank M. schrieb:> Das ist ein Klacks, die neue ID in den IRMP einzubauen. Mache ich am> Wochenende.
Habe gerade mal IRMP an den APPLE-Scan angepasst.
@Dirk:
Ersetze bitte die Zeile:
in irmp.c. Dann sollte die FB erkannt werden.
Ich werde das aber anders im nächsten IRMP-Release implementieren. Das
Problem ist nämlich, dass beide FBs dieselbe NEC-Adresse (0x87ee) haben,
aber eine unterschiedliche ID verwenden. Damit dann später auch IRSND
APPLE-Frames versenden kann, welche beide (und auch weitere!) APPLE-FBs
unterstützt, werde ich zukünftig die bisher von IRMP zurückgegebene
Adresse 0x87ee ersetzen durch die ID. Das wäre dann bei der FB von Klaus
die 0xD100 und bei Dirk die 0x4600. Nur so kann eine IRMP-Anwendung auch
beide APPLE-FBs auseinanderhalten. Daher bitte den obigen Patch erstmal
als Test/Notlösung sehen...
Die korrekte Fassung kommt dann am Sonntag.
Gruß,
Frank
Graf-von-Socke schrieb:> So weit leuft alles bei mir mit dem einlesen der codes. Aber die> Ferbedinung von der XBOX 360 macht schwierwigkeiten.Egal welche Taste> ich drücke kommt immer der Code>> irmp_data.protoco =9> irmp_data.address =0> irmp_data.command =31
IRMP glaubt da anhand des Timings einen RC6-Code zu empfangen. Ich
glaube aber nicht, dass Microsoft tatsächlich einen von Philips
entwickelten Code verwendet, sondern (wie so oft) sich etwas eigenes
ausgedacht hat.
> Vieleicht kann mir von euch Jemand helfen
Da helfen nur Scans. Wie Du diese erstellen kannst, steht im
IRMP-Artikel:
http://www.mikrocontroller.net/articles/IRMP
Gruß,
Frank
Graf-von-Socke schrieb:> Hallo hier ist nein Scan ergbis fielicht finden sie etwas
Danke, scheint ein simpler 32-Bit-Code zu sein. Zwei Tasten reichen da
aber nicht, ich bräuchte schon so um die 10 Tasten-Scans, um da auch
eine Struktur zu erkennen. Dann kann ich das in den IRMP integrieren.
Noch als Tipp:
Bitte vor und hinter jedem Kommentar eine neue Zeile beginnen und den
Kommentar selbst mit dem #-Zeichen einleiten, also:
# Die X Taste
000000000000000000000000000000000000000000000000001111...
# Die Play Taste
000000000000000000000000000000000000000000000000001111...
Ist der Scan mit 10kHz aufgenommen worden?
Gruß,
Frank
Ok werde ich morgen abend nochmal durchführen
habe was nettes im Internet gefunden fielicht hilft das weiter
........................................................................
..
lircd.conf für USB-Empfänger (MCEUSB2)
# this config file was automatically generated
# using lirc-0.8.0-CVS(mceusb2) on Tue Jan 17 15:14:11 2006
#
# contributed by Kyle at shadowmage.org
#
# brand: Microsoft
# model no. of remote control: Xbox 360 Universal Media Remote
# devices being controlled by this remote: Xbox 360
#
# This probably works for the normal Xbox 360 remote too.
#
# TV button sends no signal and toggles Xbox 360/TV mode. TV mode can be
# signals for any device the remote supports. Volume Up, Volume Down and
# Mute always use the TV mode while the Xbox live guide button always
sends
# to the xbox.
begin remote
name Microsoft_Xbox360
bits 16
flags RC6|CONST_LENGTH
eps 30
aeps 100
header 2676 870
one 454 429
zero 454 429
pre_data_bits 21
pre_data 0x37FF0
gap 106291
min_repeat 1
toggle_bit 0
rc6_mask 0x100000000
begin codes
OpenClose 0x8BD7
XboxFancyButton 0x0B9B
OnOff 0x8BF3
Stop 0x0BE6
Pause 0x8BE7
Rewind 0x0BEA
FastForward 0x8BEB
Prev 0x0BE4
Next 0x8BE5
Play 0x0BE9
Display 0x8BB0
Title 0x0BAE
DVD_Menu 0x8BDB
Back 0x0BDC
Info 0x8BF0
UpArrow 0x0BE1
LeftArrow 0x8BDF
RightArrow 0x0BDE
DownArrow 0x8BE0
OK 0x0BDD
Y 0x8BD9
X 0x0B97
A 0x8B99
B 0x0BDA
ChUp 0x8BED
ChDown 0x0BEC
Start 0x0BF2
Play 0x8BE9
Enter 0x0BF4
Record 0x8BE8
Clear 0x0BF5
1 0x8BFE
2 0x0BFD
3 0x8BFC
4 0x0BFB
5 0x8BFA
6 0x0BF9
7 0x8BF8
8 0x0BF7
9 0x8BF6
100 0x0BE2
0 0x8BFF
Reload 0x8BE3
end codes
end remote
........................................................................
..
Quelle
http://www.vdr-wiki.de/wiki/index.php/Fernbedienung_-_Microsoft_XBOX_360_Universal_Media_Remote
Hi,
@Frank:
Danke dir; die Apple-FB klappt jetzt wunderbar :-)
@Frank, Graf-von-Socke
Weiß nicht ob's euch hilft, aber ich hatte vor meiner Apple FB
mit dem Gedanken gespielt die XBOX360 FB zu nehmen.
Hab meinen Trace mal angehängt. Wurde mit 15000 gemacht
und jede Taste 3x aufgezeichnet.
CU Dirk
Zusatz:
Hatte ich ganz vergessen; Im Trace sind noch an einigen Zeilenenden
</n>'s
Bitte vorher ersetzen, falls es den Parser stören sollte ?
Dirk W. schrieb:> Danke dir; die Apple-FB klappt jetzt wunderbar :-)
Freut mich. Wie angekündigt, habe ich das mittlerweile allgemeiner
gelöst: die ID wird nun als Adresse zurückgegeben. So sind Deine
Fernbedienung und die von Klaus (und auch weitere APPLE-FBs)
unterscheidbar. Nachteil ist: Die Adresse Deiner FB wird dann eine
andere sein, nämlich 0x0046. Die von Klaus ist dann 0x00D1.
Update kommt in Kürze als Download im Artikel bzw. über SVN.
> Weiß nicht ob's euch hilft, aber ich hatte vor meiner Apple FB> mit dem Gedanken gespielt die XBOX360 FB zu nehmen.> Hab meinen Trace mal angehängt. Wurde mit 15000 gemacht> und jede Taste 3x aufgezeichnet.
Vielen Dank! Deine Scans sind wunderbar, Graf-von-Socke hat offenbar
eine ganz andere Scan-Frequenz genutzt, so dass ich mit seinen Scans
wenig bis gar nichts anfangen konnte, weil IRMP mit 10kHz erst gar nicht
RC6 erkannt hat.
Die XBOX benutzt tatsächlich RC6-Code, wer hätte das gedacht. Aber ich
habe hier genau dieselben Probleme wie mit der Kathrein-FB, deren Scans
hier schon mal gepostet wurden. Das ist leider kein Mode-0-RC6, wie er
in
http://www.sbprojects.com/knowledge/ir/rc6.htm
beschrieben ist. Ich werde mich nochmal mit der RC6-Decodierung
beschäftigen und hoffe damit, die Kathrein-FB und die XBOX erschlagen zu
können. Im Moment werden nämlich nur Mode-0-FBs mit 7 + 16 Datenbits
erkannt. Die XBOX und die Kathrein-FB benutzen einen abweichenden Mode
mit wesentlich mehr Datenbits. Wenn da jemand irgendeine Doku findet,
wie die Struktur der Datenbits (Länge der Adresse und der Kommandos)
ist, würde ich mich freuen.
> Hatte ich ganz vergessen; Im Trace sind noch an einigen Zeilenenden> </n>'s> Bitte vorher ersetzen, falls es den Parser stören sollte ?
Das war kein Problem :-)
Gruß,
Frank
Achim schrieb:> Ich habe eine Dokumentation zum Mode 6A von RC6 gefunden:> http://slycontrol.ru/scr/kb/rc6.htm. Ich hoffe die hilft dir weiter.
Vielen Dank, das ist ja schon mal ein wenig mehr. Habe den URL direkt
mal im IRMP-Artikel verlinkt. Jetzt muss ich nur schauen, ob ich den
Mode 6A mit den Scans in Einklang bringen kann...
Gruß,
Frank
Es gibt eine neue Version 1.7.3 von IRMP.
Download:
http://www.mikrocontroller.net/articles/IRMP#Download
Änderungen gegenüber 1.7.2:
- Neues Protokoll: JVC
- Kaseikyo-Protokoll: Berücksichtigung der Genre-Bits.
ACHTUNG: dadurch neue Command-Codes!
- Kaseikyo-Protokoll: Verbesserte Behandlung von Wiederholungs-Frames
- Verbesserte Unterstützung des APPLE-Protokolls.
ACHTUNG: dadurch neue Adress-Codes!
Analog dazu gibt es auch eine neue Version 1.7.3 von IRSND.
Download:
http://www.mikrocontroller.net/articles/IRMP#Download_IRSND
Änderungen gegenüber 1.7.2:
- Neues Protokoll: Kaseikyo (Panasonic u.a.)
Viel Spaß,
Frank
Hallo
und danke für den richtigen scan war mein fehler hatte den scan auf
20000 eingestellt.
Nun wenn es euch intersesiert bastel ich gerade eine schaltung damit ich
den
mikrocontroller über mein Handy dazu auffoder die geräere (TV usw) zu
steuern.
bis dann
Hi,
noch interessant ist eventuell folgende Seite:
http://www.picbasic.nl/info_rc6_uk.htm
und folgendes Dokument (Seite: 28)
http://home.hccnet.nl/m.majoor/files/pronto.pdf
Hatte vor kurzem auch mal probiert RC6a per Hand zu dekodieren ..
Hab wohl allerdings einen Fehler gemacht, denn das Ergebnis
das ich zum Vergleich herangezogen hatte war unterschiedlich.
Hab's trotzdem mal angehängt; vielleicht hilft es ??
CU Dirk
Hallo zusammen
Habe nun ein anders Problem auf meine ATMEGA8 leuft alles supper.
Bin nun wegen platzmagel auf einen ATMGA 168 umgestigen nun leuft nur
noch ISR aber es werden keine IR-CODES Ausgeben
gruß
Graf-von-Socke
Dirk W. schrieb:> noch interessant ist eventuell folgende Seite:> http://www.picbasic.nl/info_rc6_uk.htm
Super Link! Danke. Damit werde ich RC6/RC6A wohl endlich in den Griff
bekommen.
> Hatte vor kurzem auch mal probiert RC6a per Hand zu dekodieren ..> Hab wohl allerdings einen Fehler gemacht, denn das Ergebnis> das ich zum Vergleich herangezogen hatte war unterschiedlich.>> Hab's trotzdem mal angehängt; vielleicht hilft es ??
Danke, werde ich mir anschauen.
Gruß,
Frank
Joachim B. schrieb:> hattest du meine Frage per Mail bekommen ?> darf man dich per Mail fragen ?
Habe ich bekommen. Da ich aber erst Freitag aus dem Urlaub gekommen bin
und eine Antwort auf Deine Mail etwas länger dauert, bin ich noch nicht
dazu gekommen, Deine Mail zu beantworten.
Gruß,
Frank
So, ich habe RC6A als extra Protokoll No. 21 eingebaut. Damit sollte
nicht nur die XBOX-FB funktionieren, sondern endlich auch die
Kathrein-FB, an der ich schon längere Zeit rumdoktere.
Anbei die gegenüber der Download-Version geänderten Sources als
Testversion. Sobald mir jemand sagt, dass es läuft, gibt es ein neues
Release.
Viel Spaß,
Frank
Graf-von-Socke schrieb:> werde es mal gleich ausprobieren ob es geht
Nimm aber 10kHz, das reicht vollkommen. 20kHz braucht man nur für
Protokolle, die enorm kurze Pulse nutzen. Ds ist bisher bisher lediglich
bwi RECS80 der Fall.
15kHz sind auch okay, verbät aber schon mehr CPU-Zeit.
Gruß,
Frank
Nochnal Hallo
habe es gestest und funktioniert supper gemacht.
Und haben Sie schon mal wegen den ATMGA 168 nachgeschaut warum es mit
dem nicht leüft !
gruß
Graf-von-Socke
Graf-von-Socke schrieb:> habe es gestest und funktioniert supper gemacht.
Freut mich :-)
> Und haben Sie schon mal wegen den ATMGA 168 nachgeschaut warum es mit> dem nicht leüft !
irmp läuft auch auf einem ATMEGA 162 ohne Codeänderung, z.B. im
WordClock-Projekt. Hast Du denn auch den Prozessor-Typ im WinAVR-Projekt
ausgewechselt? Man kann i.a. nicht einfach das HEX-File für einen
ATMEGA8 auf einen 168er laden.
Und unbedingt die Fuses beachten! Siehe
http://www.engbedded.com/fusecalc/
Gruß,
Frank
Hallo Frank
Jo habe habe ich gemach siehe an den 2 Bildern. Habe eine jungfreulichen
ATMEGA 168 genommen den ich noch hatte wie müssen die Fuses-bits
aussehn
gruß
Graf-von-Socke
Graf-von-Socke schrieb:> Jo habe habe ich gemach siehe an den 2 Bildern. Habe eine jungfreulichen> ATMEGA 168 genommen den ich noch hatte wie müssen die Fuses-bits> aussehn
Ein jungfräulicher 168er läuft mit 1MHz internem Oszillator. Benutzt Du
tatsächlich einen 3,686400 MHz Quarz, wie Du das im Projekt angegeben
hast?
Ich kann Dir erst die Fuses-Einstellung nennen, wenn Du obige Frage
beantwortet hast.
Gruß,
Frank
Jo da es auf der Testplatine drauf ist. Hatte damit noch keine Probelem
da ich schon fiel mt UART gemach habe und die frequenz mit UART sehr gut
leuft
siehe http://www.wormfood.net/avrbaudcalc.php
gruß
Graf-von-Socke schrieb:> Jo da es auf der Testplatine drauf ist.
Vorausgesetzt, der µC läuft mit 5V, würde ich wählen:
Low: 0xc7
High: 0xdc
Extended: 0xf9
Achtung: der µC lässt sich dann auch nur noch flashen, wenn der Quarz
auch wirklich angeschlossen ist.
Du kannst Dir die Werte aber auch selbst ausrechnen lassen, siehe
http://www.engbedded.com/fusecalc/
Gruß,
Frank
Danke
nun leuft alles Danke
hatte ein nettes erreignis. Mein Quartz wolte nicht muste erst mit dem
Frequenz Generator einen Beipass legen. Muss bestimmt nachlöten
Kennst du eigendlich den X-PORT
gruß
Graf-von-Socke
Graf-von-Socke schrieb:> nun leuft alles Danke
Prima.
> hatte ein nettes erreignis. Mein Quartz wolte nicht muste erst mit dem> Frequenz Generator einen Beipass legen. Muss bestimmt nachlöten
Deshalb meine obige Warnung :-)
> Kennst du eigendlich den X-PORT
Du meinst den "XPORT Ethernet Wandler Ethernet zu seriell" von
Lantronix?
Gruß,
Frank
Jo
Den meine ich finde den ganz nett aber er ist halt bischen teuer. Aber
was man geschenkt bekommt sagt man nicht nein.
Bin nun dabei eine Schalung zu entwickeln damit jeder PC (auch Handy)
auf den µC zu greifen kann und die Infrarot Befehle absetzen kann.
Der Grund dafür ist meine Frau die findt das die vielen Gräte aus den
Blickfang verschwinden und daher fand ich deinen Ansatz hier sehr
hilfreich.
Gruß
Graf-von-Socke
Hi Frank,
auch hier Bestätigung. Super gemacht; System und Command Byte
funktionieren.
Bist du dir allerdings bei der Customer ID sicher ?
Ich bekomme hier als Ausgabe 0xffef bin mir aber
ziemlich sicher daß die MS ID 0x800F ist.
CU Dirk
Dirk W. schrieb:> auch hier Bestätigung. Super gemacht; System und Command Byte> funktionieren.
Sehr schön, danke für die Rückmeldung :-)
Achja, das MSB der 14 Bits (das ist das MSB des System-Bytes) ignoriere
ich: das scheint nämlich zu togglen - ähnlich dem Toggle-Bit "TR" bei
Mode 0, was dort ziemlich weit vorne direkt hinter den Mode-Bits liegt.
Das ist mir beim XBOX-Scan als auch bei der Kathrein-FB aufgefallen:
Beim Mode 6A wechselt das eigentliche Toggle-Bit nicht, dafür aber das
oberste Bit vom System-Byte.
> Bist du dir allerdings bei der Customer ID sicher ?
Nein, sonst hätte ich ja keine Testversion gemacht ;-)
> Ich bekomme hier als Ausgabe 0xffef bin mir aber> ziemlich sicher daß die MS ID 0x800F ist.
Okay, ich überprüfe das nochmal. Ich stehe echt auf Kriegsfuß mit der
Manchester-Deokodierung. Wenn ein Bit falsch ist, kippen alle Bits
dahinter mit :-(
Die Hölle ist nämlich das "eigentliche" RC6-Toggle-Bit "TR", welches die
doppelte Länge der anderen Bits hat. Da ich mir immer nur Längen
zwischen zwei Flankenwechseln anschaue, macht mir diese wechselnde
Frequenz das Leben schwer, denn es kann da als Länge nicht nur 1-fache
und 2-fache Länge, sondern auch die 1,5-fache Länge auftreten. Ich
vermute mal, dass genau da das Bit kippt - und damit auch die
Custtomer-ID, die danach folgt.
Gruß,
Frank
Neue Version 1.8.0 von IRMP verfügbar, Download unter
http://www.mikrocontroller.net/articles/IRMP#Download
Änderungen gegenüber 1.7.3:
- Neues Protokoll: RC6A
Damit werden nun die XBOX und auch die Kathrein-FBs unterstützt.
Ebenso ist nun die Version 1.8.0 von IRSND verfügbar, Download unter
http://www.mikrocontroller.net/articles/IRMP#Download_IRSND
Änderungen gegenüber 1.7.3:
- Neues Protokoll: JVC
- Anpassung des APPLE-Encoders an IRMP-Version 1.7.3.
Im IRSND fehlt jetzt nur noch die Unterstützung des
RC6-/RC6A-Protokolls, dann sind beide Software-Module wieder
"symmetrisch". Bin da nun dran.
Die Dokumentation im IRMP-Artikel habe ich angepasst bzw.
erweitert, siehe:
http://www.mikrocontroller.net/articles/IRMP
Viel Spaß,
Frank
wollte nur noch mal danke sagen,
deine Tipps wo ich meinen source anpassen musste waren erfolgreich,
brauchte wirklich nur noch die irmp.c/.h einbinden und die irmpconfig.h
anpassen und es funzt sofort, RC6 hab ich noch nicht testen können, aber
der Rest läuft wie gehabt was ein gutes Zeichen ist......
gruss
jar
eku schrieb:> Ganz toll ,Frank. Nur leider wird irmp_ISR immer länger. Wie steht es> mit den Optmierungen aus> Beitrag "Re: IRMP - Infrared Multi Protocol Decoder" ?
Schlecht. Ich hatte mal testweise so eine Version gemacht, wo (nach
Deiner Idee) in einer Schleife über die Protokolle mittels Timingwerten
das richtige Protokoll ermittelt werden sollte. Dabei mussten noch
Pulse-Distance-Protokolle mit Start-Bit von denen ohne Start-Bit (z.B.
Denon) und auch die Manchester-codierten Protokolle extra abgearbeitet
werden. Also gab es schon einmal 3 Schleifen...
Ergebnis:
1. Keine Flash-Speicher-Ersparnis, da die Konstruktion der 3 Schleifen
inkl. zusätzlichen Speicherbedarf der Startbit-Werte für die
einzelnen Protokolle alles wieder auffraß. Am Ende wurde sogar mehr
Flash-Speicher benötigt als vorher.
2. Viel Größere Laufzeiten, da die Pulse-/Pause-Werte nicht mehr mit
Konstanten, sondern mit Variableninhalten abgeglichen werden
mussten. Der Variablenzugriff war wegen Indirektion über
startbitstructarray[idx]->value
nicht gerade effizient.
Kampakter bekommt man den Code wohl nicht, da kann man nur an Feinheiten
tunen. Ab und zu stolpere ich mal über eine Stelle, die optimiere ich
dann "on-the-fly", wenn es ohne größeren Aufwand geht.
Ich erwähnte damals zwar, dass man die linearen Vergleiche, die
unmittelbar nach Eintreffen des Startbits auftreteten, noch optimieren
könnte. Das würde aber auch keine Verkleinerung des Codes verursachen,
eher eine (leichte) Vergrößerung. Lediglich die "Suche" nach dem
richtigen Protokoll ginge dann etwas schneller. Die Arbeit habe ich mir
aber noch nicht gemacht, da hier der Gewinn bei 20 Protokollen eher
marginal ist. Bei 1000 Protokollen wäre das was anderes ;-)
Mein Fazit:
Wenn Dir der Code zu groß ist, schalte die nicht benötigten Protokolle
ab. Dann wirst Du sehen, dass IRMP selbst eigentlich nicht größer ist
als vorher. Ein neues Protokoll im IRMP verursacht im allgemeinen keine
Vergrößerung des Codes - solange man es ausgeschaltet(!) lässt ;-)
Wenn jemand ein neu implementiertes Protokoll tatsächlich nutzen will,
kann er schlecht erwarten, dass der Code gleich groß bleibt.
Gruß,
Frank
Frank, vielen Dank für IRMP, das leistet bei mir gerade gute Dienste
:-)
In irmpconfig.h steht als Maximum für F_INTERRUPTS 15000 - das ist aber
eher ein veralteter Wert, oder? Oder muss man was spezielles tun, wenn
man darüber hinausgeht (Manche Protokolle verlangen ja 20kHz)?
Ich habe übrigens beobachtet, dass bei F_INTERRUPTS=16000 eine
Verringerung der Codegröße eintritt (um ca. 130-135 Bytes). Was passiert
denn da?
Viele Grüße,
Simon
Simon Budig schrieb:> Frank, vielen Dank für IRMP, das leistet bei mir gerade gute Dienste> :-)
Freut mich :-)
> In irmpconfig.h steht als Maximum für F_INTERRUPTS 15000 - das ist aber> eher ein veralteter Wert, oder? Oder muss man was spezielles tun, wenn> man darüber hinausgeht (Manche Protokolle verlangen ja 20kHz)?
Ja, es sind auch 20kHz möglich, habe ich vergessen, das zu
aktualisieren. Allerdings wird dann etwas mehr Speicherplatz benötigt,
da dann einige Variablen vom Typ her automatisch über den Preprocessor
von uint8_t auf uint16_t wechseln. Auch wird mehr CPU-Zeit verbraten.
RECS80, das einzige Protokoll, welches 20kHz erfordert, ist auch noch
nicht in der Praxis getestet worden.
> Ich habe übrigens beobachtet, dass bei F_INTERRUPTS=16000 eine> Verringerung der Codegröße eintritt (um ca. 130-135 Bytes). Was passiert> denn da?
Du meinst bei Erhöhung auf 16000? Müsste dann eigentlich größer werden,
siehe oben.
Gruß,
Frank
Simon Budig schrieb:> Mhm. Ich habe mir gerade mal den Assembler angeguckt. Offensichtlich> verschwindet bei F_INTERRUPTS = 16000 die gesamte if-Abfrage bei Zeile> 2020 (if (irmp_pause_time > IRMP_TIMEOUT_LEN)) in irmp.c, anscheinend> beschließt der Compiler, dass das nicht eintreffen kann und schmeißt den> Code weg.
Das darf nicht sein, eigentlich wird ab ca. 16000 Hz IRMP_TIMEOUT_LEN
größer als 255 und deshalb auch irmp_pause_time dann vom Typ uint16_t.
Das scheint aber nicht zu funktionieren. Kein Wunder, dass der Compiler
dann das if-Statement wegwirft. Ich werde das überprüfen.
Danke für den Tipp und Deine "Messungen" :-)
Gruß,
Frank
Frank M. schrieb:> Fehler gefunden, es ist eine Änderung in irmp.c notwendig.> Werde ich noch am Wochenende im Paket ändern.
[x] Done
Download-Version ist nun 1.8.1.
Gruß,
Frank
der Bug bei U2X ist leider immer noch da, habe wie gesagt nur irmp.c/h
eingebunden, meine main und die irmpconfig geändert sowie logging on und
defines fürs steckbrett, , muss am verwendeten m644 liegen, ich weiss
nur nicht wann und warum dieser U2X Fehler im irmp-uart kommt, wenn ich
das einfach auskommentier gehts ja, aber der code sollte ja so laufen
Fehlermeldung:
../irmp.c:593:26: error: util/setbaud.h: No such file or directory
finde ich auch in meinem winAVR nicht
als helfende krücke noch
#if IRMP_LOGGING != 0 // 1: log IR signal (scan), 0: do not
(default)
uart_init(UART_BAUD_SELECT(9600,F_CPU));
#endif
mit uart.c/h eingebunden Peter Fleury
modified by Patrick Kaplan for ATMega644 usage
und uart_init aufruf statt irmp-uart_init
Joachim B. schrieb:> Fehlermeldung:> ../irmp.c:593:26: error: util/setbaud.h: No such file or directory
Meines liegt unter
C:\Programme\WinAVR-20100110\avr\include\util\setbaud.h
und ist Bestand der avr-libc.
Wo liegt Dein avr\include-Verzeichnis? Überprüfe mal Deine Version -
damit meine ich jetzt nicht die WinAVR-Version, sondern Deine
avr-gcc-Version.
> finde ich auch in meinem winAVR nicht
Dann fehlt da was bei Dir. setbaud.h gibt es schon länger.
> so gehts, nur warum
Weil genau die U2X-Geschichte in setbaud.h definiert wird.
Gruß,
Frank
Frank M. schrieb:> Meines liegt unter> C:\Programme\WinAVR-20100110\avr\include\util\setbaud.h> und ist Bestand der avr-libc.> Wo liegt Dein avr\include-Verzeichnis? Überprüfe mal Deine Version -> damit meine ich jetzt nicht die WinAVR-Version, sondern Deine> avr-gcc-Version.>> finde ich auch in meinem winAVR nicht> Dann fehlt da was bei Dir. setbaud.h gibt es schon länger.
setbaud.h fehlt, ergo muss bei meiner letzten Installation was schief
gelaufen sein
1
VerzeichnisvonC:\Programme\atmel
2
3
10.12.200801:11<DIR>.
4
10.12.200801:11<DIR>..
5
07.01.201021:50<DIR>AVRTools
6
17.03.200820:32<DIR>BASCOM-AVR
7
02.09.200814:23432.040CodeCompareSetup.exe
8
25.11.200801:00<DIR>Grafikkonverter
9
07.03.200821:01<DIR>PonyProg2000
10
04.03.200820:25<DIR>WinAVR
komisch nur das alle meine anderen Projekte laufen, also habe ich nie
was vermisst
was muss ich also noch wie einbinden ?
vielen Dank
Joachim B. schrieb:> bin leider noch nicht weiter, so siehts aus:> ../irmp.c: In function 'irmp_uart_init':> ../irmp.c:657: error: 'U2X' undeclared (first use in this function)
Du hast offenbar nicht die aktuelle IRMP-Version vom 04.09.2010. Da wird
für bestimmte µCs U2X als U2X0 definiert.
Gruß,
Frank
stimmt da war ich unterwegs, habs also nicht mitbekommen
so geladen, eingespielt, aber immer noch Probleme...
ich glaub ich lasse meine Einbindung von P.Fleury UART.C/H damit klappts
ja
DAANNKEEE
Hey,
super geile Sache.
Wollt nur kurz mitteilen das meine LG Fernbedienung vom TV und BluRay
Player mit dem Samsung(32) Protokoll einwandfrei funktionieren.
Ahhh noch was vergessen,
meine beiden Fernbedienungen (sind verschiedene) der Marke Smart
Electronics (Receiver usw.) funktionieren mit dem NEC Protokoll.
Fabi S schrieb:> Wollt nur kurz mitteilen das meine LG Fernbedienung vom TV und BluRay> Player mit dem Samsung(32) Protokoll einwandfrei funktionieren.
Freut mich.
> meine beiden Fernbedienungen (sind verschiedene) der Marke Smart> Electronics (Receiver usw.) funktionieren mit dem NEC Protokoll.
Aber sie werden unterschiedliche Adressen haben, oder?
Gruß,
Frank