IRMP auf STM32 - ein USB IR Empfänger/Sender/Einschalter mit Wakeup-Timer

  • M-Reimer hatte weiter vorne im Thread folgendes gepostet:


    Zitat

    RST -> IR senden (in meinem Fall ungenutzt)

    SWDIO -> Wakeup --> Ans Mainboard mit Schutzwiderstand.

    SWIM -> IR-Eingang --> An den TSOP

    SWCLK -> Reset (in meinem Fall ungenutzt)

    Somit müsste ich den SWDIO Pin benutzen. Allerdings sieht man auf allen Bilder immer PIN 2 angeschlossen. Egal ob das ein Stick ist, wo Pin 2 SWCLK ist oder SWDIO ist. Das verwirrt schon etwas.


    Wenn ich bei mir mit dem Multimeter gegen GND ohne Widerstand messe, dann bekomme ich bei


    Pin2 / SWCLK = 1,55 V bei jedem Tastendruck und die LED blinkt dann blau

    Pin4 / SWDIO = 0,05 V kontant.



  • Ein Versuch Version 2017-09-26_15-24_Red_BL_SC_jrie.bin zu flashen wird mit folgendem Fehler quittiert:

    Code
    dfu-util: Invalid DFU suffix signature
    dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
    dfu-util: No DFU capable USB device available



  • Zum Thema Anschluss. Wenn ich mir die config.h anschaue, dann steht doch da

    Zitat

    #define WAKEUP_PORT GPIOA

    #define WAKEUP_PIN GPIO_Pin_1 /* Yaw-middle */

    Somit ist doch immer Pin1 der Wakeup Pin, oder nicht?



  • dfu-util: Invalid DFU suffix signature
    dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
    dfu-util: No DFU capable USB device available

    Das ist kein Fehler. Das kommt immer.


    Die Nummer des Pins ist egal, es gibt verschiedene Bauweisen, entscheidend ist die Funktion:

    https://github.com/j1rie/IRMP_…TM32F103/src/config.h#L91

    Also SWDIO für's Einschalten.


    SWCLK ist der Reset Pin.


    Und du musst gegen 3,3V messen, denn bei SC wird wenn aktiv gegen Masse gezogen.

  • Wenn ich gegen 3,3V messe, dann liegen dort immer 0,14V an.



  • 0,14V

    Im Ruhezustand ist das so richtig.

    Beim Empfang des Einschalt-Tastendrucks muss das kurz auf 3,3V gehen, und gleichzeitig sollten die LEDs kurz heftig blinken.

    Du kannst mit dem Konfigurations Programm noch mal prüfen, ob der Wakeup richtig drin ist.


    Ach, und noch was Wichtiges, was hier schon oft übersehen wurde:

    Er schaltet nur ein, wenn der PC aus ist! Wenn du also bei laufendem PC testest, passiert gar nichts.

  • Ach, und noch was Wichtiges, was hier schon oft übersehen wurde:

    Er schaltet nur ein, wenn der PC aus ist! Wenn du also bei laufendem PC testest, passiert gar nichts.

    OK, danke für den Hinweis :whistling::saint: Werde nachher mit dem Konfigurationsprogramm nochmal verifizieren.


    Eine Frage zu deiner TSOP Modifikation. Ich hatte in der Vergangenheit bei den TSOP 1738 einfach einen Tantal-Kondensator huckepack gelötet. Mit dem TSOP 4838 scheint das nicht mehr so zu funktionieren. Zumindest reagiert der Stick dann nicht. Im Datenblatt des TSOP 1738 ist der 100 Ohm Widerstand als optional vermerkt und ich habe ihn auch noch nie gebraucht.


    Das ist kein Fehler. Das kommt immer.

    Hmmm, also die Terminal Ausgabe beim ersten Flashen war da anders:



  • Hast du die richtigen Pins (Vs und GND) erwischt? Laut den Datenblättern haben die beiden eine abweichende Pin-Belegung.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hast du die richtigen Pins (Vs und GND) erwischt? Laut den Datenblättern haben die beiden eine abweichende Pin-Belegung.

    Schnell nochmal ins Datenblatt geschaut ;). Ja, passt.



  • Wakeup per Fernbedienung funktioniert.



  • Das ist kein Fehler. Das kommt immer.

    Das stimmt natürlich nur für die ersten beiden Zeilen. Die dritte zeigt einen Fehler an.


    Ich habe früher auch immer Kondensator und Widerstand verbaut, aber ich glaube nicht mehr, dass man sie braucht.

    Da die Boards über USB bzw. 5V Standby versorgt werden, ist die Spannung sowohl hoch genug als auch glatt genug, und „R1 and C1 recommended to reduce supply ripple for Vs < 2.8 V.“ trifft nicht zu. Ich bin gespannt, ob sie eines Tages doch jemand braucht, aber bisher gab es keine Rückmeldung eines Problems ohne sie.


    Woran lag es denn nun bei dir?

  • Ich hatte ständig den falschen Pin benutzt und gemessen hatte ich dann im laufenden Betrieb :wand;).


    Zum Thema Kondensator: Die Fernbedienung prellt. Einige Tasten gehen ohne Probleme. Ein paar senden immer doppelt und dann gibt es welche, die gehen nicht. irw zeigt allerdings immer was an. So war das damals auch beim Wakeup Board von k-data und der Kondensator per huckepack war die Lösung. Auch beim Raspberry Pi funktioniert es so.



  • Ich habe mal ein Test mit meiner Harmony 300 und dem KLS Profil gemacht. Damit funktioniert es tadellos. Die Fernbedienung die prellt ist eine eine Terratec Cinergy.


    Gruß



  • So war das damals auch beim Wakeup Board von k-data und der Kondensator per huckepack war die Lösung. Auch beim Raspberry Pi funktioniert es so.

    Ich bezweifele nicht, dass manch anderes System mit Kondensator besser funktioniert.

    Aber ich hatte noch nie ein STM32-Board, das wegen fehlendem Kondensator ein Problem hatte. Das Board hat ja seinen eigenen Spannungsregler, und wird durch einen Kondensator mit ausreichend Kapazität gepuffert.


    IRMP unterstützt zwar sehr viele Protokolle, aber auch nicht alle. Wäre interessant, was für ein Protokoll deine Terratec Cinergy hat.

  • OK, das Spannungsthema lasse ich erstmal außer Acht. Die Harmony mit KLS funktioniert ja. Das war z.B. beim Atric USB eco v1.2 nicht der Fall. Mit dem Atric USB habe ich es mit vier oder fünf verschieden Fernbedienungen erfolglos versucht. Ein Grund, warum ich ein paar VDRs in der Familie auf STM32 umstellen möchte. Schöner Nebeneffekt ist, dass Thema mit dem Timer. Es sind nämlich Boards dabei, die können nur Daily ACPI Timer aber das gehört jetzt nicht hier her.


    Zurück zur Terratec Cinergy. seahawk1986 hatte im Thread Atric IR-Wakeup USB ECO v1.2 Fernbedienung anlernen. Keine Wiederholrate herausgefunden, dass es das NEC Protokoll ist. Mit dem Atric seriellen Wakeup Board lief die FB sogar ohne Kondensator aber ich habe verstanden, dass das Thema etwas komplizierter ist.


    OK, ich organisiere mir die anderen Fernbedienungen mal und teste die ebenfalls.


    EDIT: im Kofigurationsprogramm stm32IRconfig_gui gibt es ein Dropdown Menü Repeat. Was hat es damit auf sich? Ich merke keinen Unterschied. Finde keine Info dazu.



    Einmal editiert, zuletzt von obelix ()

  • Der read Knopf in stm32IRconfig_gui wechselt bei Tastendrücken seine Farbe. Im Dropdown Menü Repeat wird eingestellt wie oft. Das gilt also nur für das Konfiguratiosprogramm.

    Wenn du den Repeat-Delay und Repeat-Periode für die Anwendung einstellen willst, machst du das mit den irmplircd Parametern -r und -s.


    Wenn du das Thema Terratec Cinergy weiter verfolgen willst, könntest du deine gemessenen Tastendrücke im mikrocontroller.net-IRMP-Thread Frank vorlegen. Vielleicht fällt ihm was dazu ein.

  • obelix Schön das es geklappt hat! Du hattest vorher den Power-Button-Anschluss vom Mainboard am Status-LED-Ausgang des ST-Link-Sticks.

    Und genau deshalb propagiere ich, dass man einen Widerstand dazwischen setzen soll :P In diesem Fall hat das möglicherweise den Ausgang am STM32 gerettet.

  • * den PC aus Standby oder Ausgeschaltet über USB aufwecken (+5V auf USB nötig)

    Nicht das ich es aktuell brauche aber gibt es da eine andere Möglichkeit? Also es gibt ja Mainboards die liefern kein +5V Dauerstrom.



  • Man kann 5V Standby vom Netzteil (am einfachsten mit einem Klemmverbinder) oder, falls auf einem Pin verfügbar, vom Mainboard abgreifen und in den 5V Pin des Sticks füttern.

    Das läuft bei mir tadellos.

    Falls eine Spannungsdifferenz zwischen USB und 5V Standby besteht, könnte eine Schottky-Diode ratsam sein.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!