ESP8266: Imax gegen Masse

Gast #5062302
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
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
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
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
> Also für mich sieht es so aus, als ob GPIO5 mit TXD(ESP) über Q6
> kurzgeschlossen wird.

Ich nehme mal an daß TxD deaktiviert ist, sonst würden da mehr als 
0.58mA fließen.
Gast
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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.