ESP8266: Imax gegen Masse

Gast #5062302
Lesenswert?
• ▲
▼
Bei meinem Midi Controller Bastel Projekt empfängt ein ATMega32A Midi 
Daten. Ein ESP8266 (in Form eines ESP12 Moduls) soll den Midi Eingang 
abkoppeln können, um selbst ungestört Daten an den ATMega32A schicken zu 
können.

Im Schaltplanausschnitt übernimmt diese Aufgabe der Transistor Q6, von 
GPIO5 angesteuert. Setzt GPIO5 den Emmiter von Q6 auf high, dann kann Q6 
nicht durchschalten und das Midi Eingangssignal ist blockiert. Ist GPIO5 
jedoch low, dann kann Q6 MIDI_IN auf low ziehen und Mididaten kommen 
durch.

Das war die Idee.

In der Praxis schaffe ich es irgendwie nicht den ESP dazu zu überreden 
GPIO5 ordentlich auf low zu ziehen. Bei high liegen erwartungsgemäß 3.3V 
an, aber bei low dümpelt GPIO5 irgendwo bei halbherzigen 1.7V rum.
Ziehe ich den ESP aus seinem Sockel und schließe GPIO5 mit einer 
Drahtbrücke gegen Masse, funktioniert die Schaltung wie gewünscht. Durch 
die Drahtbrücke messe ich dann ein Strömchen von 0.58mA. Im Datenblatt 
http://espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf 
ist Imax für GPIOs mit 12mA angegeben. Kann nicht sein, dass der ESP mit 
der Last überfordert ist.
Fühlt sich irgendwie eher so an, als hätte ich GPIO5 mit internem 
Pulldown als Eingang konfiguriert oder sowas. Anbei ein minimales 
Progrämmchen (für nonos sdk), das zeigt, wie ich GPIO5 zu initialisieren 
versuche.

Siehst Du in der Soft- (oder Hardware), wo ich Fehler mache?
Angehängte Dateien:
Gast #5062392
Lesenswert?
• ▲
▼
Für mich liest sich das so, als ob du den Pin als Ausgang konfigurieren 
musst. Allerdings sieht dein Code meiner Meinung nach Ok aus.

Es önnte der Low-Side Transistor des GPIO Pins defekt sein. Du könntest 
zur Probe mal auf GPIO4 wechseln.
Gast #5062399
Lesenswert?
• ▲
▼
Stefan U. schrieb:
> Für mich liest sich das so, als ob der Low-Side Transistor des
> GPIO Pins
> defekt sei. Du könntest zur Probe mal auf GPIO4 wechseln.

Guter Tip! Das habe ich sogar tatsächlich schon versucht. Sogar das 
komplette ESP12 Modul hatte ich getauscht. Leider ohne Erfolg. 
Hoffentlich habe ich jetzt nicht gleich zwei ESP12 mit je 2 kaputten 
GPIOs erzeugt...
Gast #5062434
Lesenswert?
• ▲
▼
Tadaaa, genau das war's! Danke! Ich muss natürlich erst TX deaktivieren, 
also als Eingang schalten, wenn ich externen Midi Empfang erlauben 
möchte!
1
void midi_in_enable(const uint8_t enable) {
2
  if (enable) {
3
    // If we don't disable our transmission we might short circuit GPIO01 and GPIO5 
4
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);
5
    GPIO_DIS_OUTPUT(FUNC_GPIO1);
6
    
7
    // connect emittor with gnd -> midi in jack is enabled.
8
    GPIO_OUTPUT_SET((MIDI_IN_DISABLE_PIN), 0);
9
  } else {
10
    GPIO_OUTPUT_SET((MIDI_IN_DISABLE_PIN), 1);
11
    
12
    // reenable tx
13
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD);
14
  }
15
}

Solved!
Gast #5062460
Lesenswert?
• ▲
▼
Ja, genau das muss ich machen. Wir haben vermutlich gleichzeitig 
gepostet und Du hast noch nicht gesehen, dass ich unmittelbar vorher 
schon korrigierten Code gesendet hatte. Damit funktioniert es schon mal 
grundsätzlich.

Vielen Dank für die Mühe und Hilfe!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.