Forum: Mikrocontroller und Digitale Elektronik IRMP/IRSND Problem mit ASUS O!Play


von Peter M. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

da meine IR FB von meinem Asus O!Play nicht mehr (richtig) funktioniert,
habe ich vor längerer Zeit die IR-Codes mittels IRMP Loggingfunktion 
gesichert.
Nachdem nun die Asus FB gar nicht mehr tut, habe ich mir einen 
IR-Umsetzer gebaut.
Dieser setzt die Codes von einer funktionierenden OPTICUM FB (SAT 
Receiver) auf Asus FB um.
Gleich vorweg, ja ich könnte mir auch ein Universal-FB kaufen. Wenn es 
hier welche gäbe, hätte ich das auch getan.
Jetzt zu meinem Anliegen:
Technisch funktioniert das Ganze. Jedoch weigert sich der Asus 
Mediaplayer die ausgesendeten IR-Codes zu akzeptieren.
Dass die Codes für den Asus stimmen, sagt mir zumindest der IRMP-Logger, 
mit dem ich die Daten des Asus damals aufgezeichnet habe.
Der IRMP-Logger ist eine Mega32 mit LCD-Display; hatte vorher einen 
RS232 Anschluss zum mitschneiden auf dem PC.

Meine Frage ist:
Hat jemand Erfahrung mit IRSND und Asus O!Play ?
Gibt es hierzu Dinge die man beachten muss/soll?

Wäre schön, wenn mir jemand einen Tipp geben könnte.

Die Sourcefiles von dem Umsetzer und dem Logger habe ich mal angehängt.
Den Schaltplan natürlich auch.

Vielen Dank!

von Olaf (Gast)


Lesenswert?

> Wäre schön, wenn mir jemand einen Tipp geben könnte.

Traegerfrequenz?

Olaf

von Stefan P. (form)


Lesenswert?

Sieht das ASUS-Teil vielleicht beide IR-Codes gleichzeitig (überlagert)?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Peter M. schrieb:
> Jedoch weigert sich der Asus Mediaplayer die ausgesendeten IR-Codes zu
> akzeptieren.

1. Wenn Du Deine (Handy-)Kamera vor die IR-LED des Transmitters hältst: 
Siehst Du die IR-LED aufblitzen?

2. IR-LED: Was ist das für eine?

3. Ohne Transistor ist die Reichweite beschränkt. Wie nah bist Du dran?

> Dass die Codes für den Asus stimmen, sagt mir zumindest der IRMP-Logger,
> mit dem ich die Daten des Asus damals aufgezeichnet habe.

Okay, das ist laut Deinem Source NEC. Es kann natürlich sein, dass der 
Asus MediaPlayer wenig tolerant beim Timing ist. Das kann sogar so weit 
gehen, dass Du einen Quarz für den IRSND brauchst.

Aber mal zu den Adressen: Ich lese da die Adresse 0x686c für die 
Asus-FB. Das ist für ASUS sehr ungewöhnlich, dass hier Extended NEC 
statt NEC verwendet wird. Bist Du Dir da sicher? Bei den großen 
Herstellern wird eher Standard-NEC verwendet, d.h. das zweite Byte ist 
das negierte erste Byte.

Bei der Opticum-FB lese ich 0xfd01 als Adresse. Sicher? Wenn hier 
Standard-NEC verwendet wird, sollte die Adresse eher 0xfe01 oder 0xfd02 
sein. Ob Deine gewählte richtig ist, kannst Du daran erkennen, dass Dein 
Transmitter anfängt zu feuern (Kamera!), wenn Du die Opticum-FB drauf 
hältst. Dann ist auf der Empfänger-Seite schon mal alles ok.

Letzte Frage: Du schreibst, Deine ASUS-FB funktioniert nicht mehr 
vollständig. Das heisst, es funktionieren noch einige Tasten? Dann 
könntest Du ja mit Deinem ATmkega32 verifizieren, ob die obige Adresse 
korrekt ist.

Wenn alle Stricke reißen, könntest Du noch mit dem ATmega32 einen Frame 
scannen, um das exakte Timing herauszufinden. Es kann sein, dass die 
ASUS-FB sich nicht so strikt an das NEC-Timing hält, IRMP aber tolerant 
genug ist. Man könnte dann für IRSND die Timings noch anpassen.

P.S.
Achte beim Testen darauf, den IR-Strahl der Opticum möglichst gegenüber 
dem MediaPlayer abzudecken, damit dieser kein überlagertes Signal sieht.

Was ist das für ein komisches "bled" in der Timer-ISR? Reduziere die ISR 
mal auf:
1
ISR(TIMER1_COMPA_vect)
2
{
3
  if (! irsnd_ISR())                            // call irsnd ISR
4
  {                                             // if not busy...
5
    irmp_ISR();                                 // call irmp ISR
6
  }

Oder bei optisch guter Isolierung beider Signale auch so:
1
ISR(TIMER1_COMPA_vect)
2
{
3
  irsnd_ISR())                                  // call irsnd ISR
4
  irmp_ISR();                                   // call irmp ISR
5
}

: Bearbeitet durch Moderator
von Peter M. (Gast)


Lesenswert?

Hallo Frank,
1. Die IR-Leds senden definitiv.
2. Sind SFH415 Dioden mit 950nm
3. Die werden via Transistor mit knapp 90mA je Diode angesteuert.
Der Abstand zum Player ist 30 cm.

Beide Adressen werden von IRMP so angezeigt.
Hatte ich doch im Eröffnungspost so geschrieben.
Die Asus Codes hatte ich damals mit einem Atmega32 ermittelt, der mit 
einem 16 MHz Quarz rannte.
Es gibt keinen Unterschied in den Adressen und Codes, wenn ich die mit 
32er mit internem Oszillator erfasse und auf dem LCD anzeigen lasse.

Auf meinem IRMP-LCD sehe ich bei den Tests, dass der Code für den Asus 
korrekt (nach IRMP Meinung)
ausgesendet wird.

Irgendwo beißt sich hier der Hund selbst in den Schwanz....

von Peter M. (Gast)


Lesenswert?

@Frank: Das bled in der ISR dient dazu, dass erst nach Ablauf von ca. 
200 ms IRMP wieder zum Zug kommt.
D.h., nach dem Empfang  der Codes von der Opticum FB wird etwas gewartet 
bevor der Asus Code ausgesendet wird.
Grund ist, dass keine optische Trennung vorhanden ist. IR Empfänger und 
Sender sitzen praktisch nur 3 cm von einander getrennt auf der Platine.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Kann es sein, dass die Original-FB beim Drücken einer Taste vielleicht 
grundsätzlich einen Wiederholungsframe hinterherschickt? Manchmal gibt 
es sowas. Das könntest Du mal mit:

  irmp_data_out.flags = 1;

testen.

Du müsstest dann mit Deinem IR-Tester aber auch flags=1 auf dem LCD 
sehen, wenn dieser Wiederholungen berücksichtigt und nicht einfach so 
wegschmeisst. Den Tester-Code habe ich mir jetzt nicht angeschaut.

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