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
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
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.
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.
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.
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.
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.