Serielle Kommunikation zwischen USB to TTL Adapter und ESP8266

Hallo,

die serielle Kommunikation vom USB to TTL Adapter zum ESP8266 klappt nicht. Die Gegenrichtung funktioniert.

Hardware:
USB to TTL USB 2.0 CH340G TTL Konverter Adapter CP2102 PL2303 UART FTDI Arduino 5V + 3.3V - MAKERSHOP.DE
Programmieradapter Deek-Robot DK FTDI ISP-Breakout 3.3/5V (Stromkomponente) - digitec
1m FTP-Kabel führt TX und RX auf einem Paar 5V und Gnd auf einem anderen
AMS1117 Modul stellt am ESP8266 aus den 5V die benötigten 3V bereit; 2 Kondensatoren zur Pufferung für die Stromspitzen des ESP8266
ESP8266-01S

Software:

void setup()
{
  Serial.begin(115200);
  Serial.println();
  Serial.println(F("EP8266_SerielTest"));
}

void loop()
{
  if (Serial.available()) {
    Serial.println( Serial.readStringUntil(13));
  }
  Serial.println(".");
  delay(2000);
}

Der USB to TTL-Adapter wird als CH340 Chip erkannt und ein serieller Port eingerichtet.
Im seriellern Monitor kommt die Überschrift an und dann regelmäig der Punkt.
Sende ich dem ESP8266 etwas, wird dies nicht zurück gesendet.

Verwende ich statt des USB to TTL den Programmieradapter, klappt es in beide Richtungen. Vermutung, der USB to TTL hat eine Macke. Habe einen zweiten ausprobiert, der hat identisches Verhalten.
Habe dann zum Test TX und RX mit einen Jumper gebrückt (natürlich ohne ESP), kommt der eingegebene Text ordnungsgemäß zurück, egal, ob ich direkt am Adapter brücke oder in der Sockelleiste, im dem der ESP sitzt.

Wie komme ich der Ursache auf die Spur?
Welches Bauteil darf ich als funktionierend annehmen, nach den Ergebnissen? Ich bin da etwas ratlos.

Vielen Dank für eure Unterstützung und einen schönen Sonntag

F200

Ein richtiges Schaltbild, wie du den USB to TTL-Adapter angeschlossen hast, wäre besser. Dann versteht man evtl. wie du es angeschlossen hast.
Hast du in den seriellen Leitungen eine 1k Widerstand eingebaut ?
Welche Kondensatoren verwendest du ?

Ein Schaltbild habe ich nicht zur Hand, es ist aber sehr überschaubar:

USB to TTL ESP8266-01S
GND GND
TX 1KOhm RX
RX 1KOhm TX

5V an AMS1117 VIN
AMS1117 OUT an 3V3 und EN
GND an GND

In den seriellen Leitungen habe ich 1k Widerstand eingebaut, aber auch schon ohne probiert, bei gleichem Ergebnis.

Kondensatoren zwischen 3V3 und GND am ESP:
100uF 16V
470uF 10V LOW ESR

Vielen Dank für deine Unterstützung

Den AMS1117 nutze ich von so einem Standardmodul:

Ein Schaltbild ist sehr leicht mit Bleistift und Papier zu zeichnen.
Das hilft uns und dir bei einer Fehlversuche.
Da sollten z.B. auch keramische 100nF Kondensatoren mit verbaut werden, da sehe ich nichts von.
Wie hast du den ESP-01s angeschlossen. Der benötigt z.B. bestimmte Informationen an den Pins, damit er geflasht werden kann.

Nutzt du nur den AMS oder das ganze Modul ?

Hier ist ein passendes Schaltbild zu deinem Aufbau.

Ich nutze das ganze Modul. Ich mache mal Fotos vom Aufbau und eine Skizze.
Bis gleich.

Die Schaltung folgt dieser guten Darstellung: http://stefanfrings.de/esp8266/esp-01-minimal.png
Pin 4 habe ich aber per Taster mit GND verbunden zum Reset. Er wird über einen internen Pullup auf VCC gehalten, da es sich um einen ESP8266-01S handelt.

Zum Programmieren nutze ich eine separate Platine. Der Flaschvorgang funktioniert.

Hier noch das Foto, gerade mit der Kabelbrücke zum Test.

Wenn dein Test mit der Brücke funktioniert, dann liegt das Problem doch beim ESP.
Wie versetzt du den ESP denn in den Flashmodus ?

Edit:
Hast du mal gemessen, ob an deinem Reset tatsächlich ein Pullup dran ist ?
Ich habe z.B welche (01s), die keinen Pullup drin haben. Daher habe ich alle nötigen Pullups auf meinem Flashboard drauf gesetzt. Und das funktioniert.

Zum Flashen GPIO0 während des Bootvorgangs auf GND legen. Mache ich auf einer anderen Platine hier ist GPIO0 unbelegt.

Zu "Wenn dein Test mit der Brücke funktioniert, dann liegt das Problem doch beim ESP." ja, aber warum funktioniert er dann Wenn ich den Programmieradapter verwende. Das wäre doch als Hinweis der der USB to TLL macht Probleme zu verstehen, oder? Das macht mich ja so ratlos.

Ich werde mal nach dem Pullup sehen. Würde dann zwar Reboots erwarten, aber mal sehen.

Da du leider immer nur Teile verrätst, kann ich dir nicht weiter helfen.

Ich vermute, dein ESP wird nicht geflasht, weil die Widerstände fehlen.

Der RST-Pin liegt auf 3,3V. Wenn ich den Taster drücke auf 0V und lasse ich den Taster los, bootet der ESP sauber neu, was im seriellen Monitor zu beobachten ist. Da ich keine unbeabsichtigten Bootvorgänge sehe, gehe ich von einem vorhandenen Pullup aus.

Ich versuche alle Infos die mir vorliegen weiter zu geben, sorry falls ich irgendwo etwas nicht sofort geschrieben habe, dann nicht weil ich es nicht nennen wollte, sondern weil ich es nicht als relevant erkannt habe.

Der ESP wird ohne Fehlermeldung und auch erfolgreich geflasht. Der hatte vorher einen komplett anderen Sketch darauf. Alleine durch die Überschrift sehe ich dass der Flashvorgang erfolgt ist.

Ok, dann liegt es am fehlenden Pullup am GPIO0. Dadurch kommt er nicht in den Bootmodus.

Die Antwort verstehe ich leider nicht, denn er bootet doch und sendet die Überschrift und dann regelmäig den Punkt.

Ich bin jetzt mal raus und sehe heute Abend erst wieder rein. Schonmal Danke für die Unterstützung.

Keine Ahnung was da schief läuft.

Guten Morgen,
nach zahlreichen Experimenten habe ich jetzt vermutlich die Ursache und eine Lösung gefunden.
Wenn mann RX am USB to TTL-Adapter misst, stellt man fest, dass hier Pegel von 3,7V erreicht werden, statt3,3V wie per Jumper vorgegeben. Die kann der ESP, sobald etwas Kabel hinzukommt, anscheinend nicht mehr ausreichend absenken.
So stelle ich mir das zumindest vor, vielleicht kann jemand mit besseren Elektrokenntnissen das bestätigen oder widerlegen?

Ich habe jetzt einen 4,7 KOhm Widerstand so eingelötet, dass er mit dem schon vorher verbauten 1KOhm einen Spannungsteiler bildet und ab dann klappt die Kummunikation wie gewünscht.

Vielleicht hilft die Lösung noch jemandem, der auf das selbe Problem stößt.
Vielen Dank fürs Mitüberlegen und einen schönen Feiertag.

Frank

Welcher Jumper ?
Wenn ein Jumper vorhanden ist, dann bestimmt dieser nur die Betriebsspannung am Ausgang. Nicht die Spannung des Datensignals.

Am Kabel selbst wird es nicht liegen. Vermutlich hast du am Kabel auch noch eine Spannung drauf liegen, die dein System stört.

Ein Spannungsteiler ist immer sicherer, als ein einfacher Widerstand.

ich kann dir diese USB-TTL Adapter empfehlen. Habe gerade nachgemessen. Lt. Oszi 3.2V HIGH.