Hallo! Ich hab ein ESP8266-12F mit esp-link geflasht und einen IR-Kopf an Tx/Rx angeschlossen. Komischerweise bootet der ESP aber nur wenn ich TX abklemme. Hat jmd eine Idee woran das liegen könnte? Die restliche Beschaltung: EN high GPIO 0 low
sehe gerade: GPIO0 soll nur auf GND während des programmierens, sonst auf Vcc.
Ja danke! Hab' mich geirrt; GPIO15 ist eh auf GND, nicht 0. However bootet er ja normal sobald ich Tx abklemme.
GPIO 0 hate ich auf VCC, so hat er aber nicht gebootet, deswegen hab ichs abgetrennt und dann bootete er, bis ich Tx angeschlossen habe.
Hallo, wenn der TX-Pin zu stark belastet ist und der ESP nach dem Reset dadurch Low erkennt, bootet er nicht - schein normal zu sein. Zieht denn dein IR-Kopf an dem Pin so viel Eingangsstrom? Sascha
Ich meinte dass ich 15 auf low hab, nicht 0 auf low. Eingangsstrom müsste ich messen. Wenn ja, gibt's eine Lösung außer irgendeine Pufferstufe?
Nein, die GPIO dürfen nur mit wenigen mA belastet werden. (Irgendwas mit 12mA habe ich im Hinterkopf) Du wirst also einen "Treiber" dazwischen schalten müssen.
Die Messung sagt es fließen 70uA wenn ich verbunden booten möchte und 320uA wenn ich nach dem booten verbinde.
Hab jz nachgesehen; da hängt direkt der Eingang eines Schmittt. dran. Der sollte laut DB aber nur 1u ziehen.
Nochmal langsam, das ist recht verwirrend deine Beschreibungen, gehe mal von low und 0 etc.. weg und benutze GND und VCC: Immer:
1 | CH_PD/EN -> Pull-Up (10k) an VCC |
Zum Betrieb:
1 | GPIO0 -> Pull-Up (10k) an VCC |
2 | GPIO2 -> Pull-Up (10k) an VCC |
3 | GPIO15 -> Pull-Down (10k) an GND |
Zum seriellen Laden:
1 | GPIO0 -> Pull-Down (10k) an GND |
2 | GPIO2 -> Pull-Up (10k) an VCC |
3 | GPIO15 -> Pull-Down (10k) an GND |
GPIO15 muss eigentlich immer auf GND gezogen sein, es sei denn du bootest von SD-Card. Was hast du für einen "IR-Kopf" an RX/TX? Wie ist der Verschaltet? Da Hilft auch mal ganz deutlich ein Schaltplan!
Der TX pin darf beim start nicht LOW sein. Wenn er es ist bootet der ESP im "Test Mode". Man muss daher neben gpio 0,2 und 15 auch auf den Logikpegel am TX pin (gpio 1) beim booten achten.
> Der TX pin darf beim start nicht LOW sein
Das ist mir noch gar nicht aufgefallen, aber ich konnte das Problem
tatsächlich nachvollziehen.
Steht das irgendwo im Datenblatt?
C3PO schrieb: > Der TX pin darf beim start nicht LOW sein. Wenn er es ist bootet der ESP > im "Test Mode". > > Man muss daher neben gpio 0,2 und 15 auch auf den Logikpegel am TX pin > (gpio 1) beim booten achten. Danke für die Infos, ist mir tatsächlich auch noch nie aufgefallen. Gilt das für alle ESP8266? Auch für die ESP-01 Modelle (TX == GPIO1)? Wenn dem wirklich so wäre, dann müsste ich tatsächlich etwas in meiner Software-Lib ändern, da ich den ESP-01 mitunder über einen µC programmiere, der diesen Resetet und in den Serial Mode setzt - und in dem Zustand des Resets der RX/TX Pin aus Richtung µC undefiniert ist.
:
Bearbeitet durch User
> Gilt das für alle ESP8266? Auch für die ESP-01 Modelle (TX == GPIO1)?
Vermutlich ja, denn alle ESP8266 Module enthalten den selben ESP8266
Chip.
Also... Beschaltung: VCC/GND an LM1117 mit Puffer-C GPIO15 <-> GND EN <-> VCC GPIO0 ist NICHT auf VCC, da er dann GARNICHT bootet. Geflash ist esp-link. Die Schaltung an Rx/Tx ist der IR-Schreib-/Lesekopf von wiki.volkszaehler.org: https://wiki.volkszaehler.org/_media/hardware/controllers/ir_schreib_lesekopf_ttl_neu_v1_stromlaufplan.png?w=600&tok=937c8e Wie gesagt, hinge da am Tx des ESP nur der Eingang des Schmitt-Triggers. Wenn ich den ESP boote und dann Tx an den Schmittt. hänge funktioniert alles. Mit von haus aus angeschlossenem Tx kann ich aber nicht booten. In den Eingang des Schmittt. fließen bei 3,3V ~320uA falls das relevant ist.
> ~320uA falls das relevant ist.
Ich denke, das ist relevant. Die internen Pull-Up und Pull-Down
Widerstände des ESP Chips sind recht hochohmig. Packe einfach einen
externen 2,2k Ohm Pull-Up Widerstand dazu, dann sollte es klappen.
ESPnoob schrieb: > Beschaltung: > VCC/GND an LM1117 mit Puffer-C > GPIO15 <-> GND > EN <-> VCC > > GPIO0 ist NICHT auf VCC, da er dann GARNICHT bootet. GPIO2... Was ist mit GPIO2??? Rene K. schrieb: > Zum Betrieb: > GPIO0 -> Pull-Up (10k) an VCC > GPIO2 -> Pull-Up (10k) an VCC > GPIO15 -> Pull-Down (10k) an GND > GPIO0 ist NICHT auf VCC, da er dann GARNICHT bootet. Und du bist dir sicher das er überhaupt arbeitet und sein Programm aus dem Flash zieht und nicht einfach dann bloß in den Serial Mode geht?!
GPIO2 muss laut db high oder floating sein, hab auf floating vertraut was prinzipiell funktioniert. Kann die Rx/Tx Beschaltung die Notwendigkeit der GPIO2-Beschaltung verändern? Nein, da bin ich nicht sicher, muss ich überprüfen. 2k2 als pull-up an Tx meinst du?
Das ist der "Boot-Code" - wenn er, wie du sagst, bei GPIO0 auf VCC nicht anspringt. Dann geht er halt nicht in den normalen Modus - sprich dein Programm was du darauf geflasht hast läuft nicht. Und er geht in den Serial Mode.
1 | | GPIO 0 | GPIO 2 | GPIO 15 |
2 | ----------------------------------|--------|--------|--------- |
3 | Flash Startup (Normal) | 1 | 1 | 0 |
4 | UART Download Mode (Programming) | 0 | 1 | 0 |
5 | SD-Card Boot | 0 | 0 | 1 |
Nach den aktuellen Erkenntnissen sollten man die Tabelle ergänzen:
1 | (TxD) |
2 | | GPIO 0 | GPIO 1 | GPIO 2 | GPIO 15 |
3 | ----------------------------------|--------|--------|--------|--------- |
4 | Flash Startup (Normal) | 1f | 1f | 1f | 0 |
5 | UART Download Mode (Programming) | 0 | 1f | 1f | 0 |
6 | SD-Card Boot | 0 | 1f | 0 | 1 |
f bedeutet: "oder floating"
Stefan, so sehr ich deine Arbeit schätze und immer mal wieder bei dir stöbern gehe :-D Aber ich hab gerade mal, da ich hier nur mit ESP-01 Modulen arbeite, eines "floaten" lassen. Es ging nicht - es tat sich rein garnichts. :-) Es mag ja sein das es eventuell funktioniert. Aber auf einen floateten Pin als Zustandsgeber kann man sich einfach nicht verlassen - weiß man was man sich da einfängt?! Nein, lieber einen festen definierten Zustand herstellen. Bei ungenutzten µC Pins - okay - die lasse ich meistens in meinen Layouts (soweit nicht anders im DB angegeben ist) auch offen, aber ich würde nie einen Zustandspin, sei es eine I²C Adresse oder eben ein BootPin, offen lassen.
:
Bearbeitet durch User
Um das klarzustellen: Mit der oben genannten Beschaltung bootet er esp-link IMMER und funktioniert auch normal. Außer wenn Tx beschaltet ist.
So, jetzt hab ich ungeschickterweise meinen 3V3 Regler geschrottet und kann ihn diese Woche nicht ersetzen. Ich hoffe ich kann in einer Woche auch nauch auf eure Hilfe zählen. Danke vorerst!
Was zum Geier machst du da bloß?! ? Wie kann man denn bitte einen 3V3 LDO schrotten? Die haben doch zu 90% ne Overcurrent- und Shortcurcuit-Protection?! Also wie bekommt man sowas kaputt?
> Aber auf einen floateten Pin als Zustandsgeber > kann man sich einfach nicht verlassen Absolut richtig. Sobald an einem Pin auch nur 1cm Draht hängen, sollte man ihn nich tmehr floaten lassen. Der ESP8266 hat zwar intern Pull-Up Widerstände aber die sind arg hochohmig. > Wie kann man denn bitte einen 3V3 LDO schrotten? Auf Steckbrett passiert es ganz schnell, daß man ihn verpolt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.