Forum: Mikrocontroller und Digitale Elektronik ESP8266 - Flashvorgang bricht ab


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Frank H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo

Nach einem kompletten Wochenende herumexperimentieren bin ich nun am 
Ende mit meinem Latein (und Nerven :( ) und hoffe, dass hier vielleicht 
noch jemand der Profis einen Tipp hat. Meine Elektronikkenntnisse sind, 
sagen wir mal etwas "eingerostet", aber mit viel Anlesen dachte ich 
eigentlich das hin zu bekommen. Ich wollte eigentlich NodeMCU flashen 
und dann erstmal nur ein wenig rumspielen - angefixt von diesem Video in 
dem eigentlich alles erklärt wir: 
Youtube-Video "ESP8266 Hack #2: Web Enabled LED - WiFi Internet-of-Things IoT".

Erstmal zu den harten Sachen. Ich habe hier folgende Hardware am Start:

- 1 x Notebook 64Bit Win 7
- 1 x alte Blechklapperkiste 32 Bit Win XP
- 1 x FT232RL FTDI USB zu TTL Serien Converter Adapter Modul 5V 3.3V 
(genau: Ebay-Artikel Nr. 321647516230)
- 1 x EP-925 Labornetzgerät
und das wichtigste:
- 5 x ESP8266 (genau: Ebay-Artikel Nr. 361140140625)

Ich habe mich zunächst an dem Video entlang gehangelt in dem das ganze 
mit der offiziellen "1-Klick-Lösung" gezeigt wird. Die 3,3V habe ich 
zunächst wie im Video gezeigt aus dem FTDI-Modul genommen (und gemessen 
ob auch wirklich nur 3,3V anliegen -> stimmt). Was auch funktioniert 
(hatte) ist mit den ESP8266-Modulen mittels Realterm zu sprechen. Also 
auf AT\r\n kam ein OK\r\n zurück. Alles supi bis da hin. Nur das 
folgende Flashen geht nicht wie beschrieben. Ich habe hier lange 
rumgesucht und rumprobiert da es offenbar verschiedene Meinungen und 
Erfahrungen im Netz gibt wie/ob dabei die Pins zu beschalten sind. Auch 
wurde zu einem Netzteil geraten was ich mittlerweile auch dran habe. Ich 
habe nun folgenden Aufbau:

https://www.dropbox.com/s/dcv6tfq43i8p2bo/ESP8862.png?dl=0
(Ich hoffe man kann meine leihenhaftes Gekrakel einigermaßen deuten :) )

Mit dem "ofiziellen" NodeMCU-Flasher passierte zunächst überhaupt 
nichts. Im Reiter "Config" stand erst nur eine Zeile drin: 
[X][INTERNAL://NODEMCU][0x00000]. Nach ein paar Sekunden wurde das 
Symbol unten rot und im Log stand irgendetwas mit Timeout. Ich habe dann 
bei Config alles so eingestellt wie es bei 5:25 zu sehen ist. Nun - oh 
Wunder beginnt der Flashvorgang, geht aber nur bis maximal zu einem 
Viertel (Geschätzt an der Balkenlänge) und bricht dann mit folgender 
Meldung im Log-Reiter ab:

Note:Serial port connected.
Note:Begin find ESP8266.
Note:ESP8266 ACK success.
Note:Program flash success.
Note:Set base address success.
Error:Write flash timeout.

Die MAC-Adressen werden dabei auch erfolgreich ausgelesen (oder wo 
kommen die her?).

Als nächstes habe ich es mit der esp8266_flasher.exe versucht 
(https://drive.google.com/file/d/0B3dUKfqzZnlwVGc1YnFyUjgxelE/view) . 
Dabei zeigt sich ein ähnliches Verhalten. Der Flashprozess beginnt und 
bricht dann nach ein paar Prozent mit der Meldung "Invalid head of 
packet" ab. Leider nicht immer an der gleichen Stelle. Mal schon bei 
0x00000400 was noch ganz am Anfang ist. Einmal ging es bis 10% - da war 
ich schon den Schampus hohlen aber es war wieder Schluss. Auch 
verschiedene *.bin habe ich Probiert.
Screenshots:
- 
https://dl.dropboxusercontent.com/u/24025962/ScreenShots/Snap%202015-03-22%20at%2016.25.53.png
- 
https://dl.dropboxusercontent.com/u/24025962/ScreenShots/Snap%202015-03-22%20at%2016.56.25.png
- 
https://dl.dropboxusercontent.com/u/24025962/ScreenShots/Snap%202015-03-22%20at%2015.58.02.png
- ...

Was ich noch so Versucht habe:
- anderer USB-Port
- anderer Rechner
- 3,3V nur aus dem FTDI ("im Video geht es ja auch!")
- 10kOhm-Widerstand zwischen CH_PD und 3,3V (wie im Video)

Die große Preisfrage nach vielen Stunden ist nun für mich: Was hab ich 
jetzt hier? Nachholbedarf im verstehenden Lesen? Oder fünf Stück Müll 
gekauft? Oder einfach Pech gehabt?
Muss irgendwo eine bestimmte Reihenfolge bei dem ganzen Gestecke 
eingehalten werden? ich hatte in einem anderen Video gesehen, dass 
zuerst CH_PD an 3,3V angeschlossen wurde, dann GPIO0 an 0V und dann 
CH_PD nochmal kurz ab- und wieder angesteckt wurde!?
Was mich halt stutzig macht ist, dass es losläuft und dann an irgend 
einer Stelle scheinbar willkürlich abbricht. Wenn es überhaupt nicht 
gehen würde, würde ich es ja einfach auf meine eigene Blödheit schieben, 
aber so!? :(

von Frank H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hat sich erledigt! :) Es lag tatsächlich am USB bzw. dem was da noch so 
dran hing. Obwohl es auch am zweiten Rechner nicht ging bin ich noch mal 
auf Fehlersuche gegangen. Hier bin ich den Kommentaren fündig geworden: 
https://importhack.wordpress.com/2014/11/22/how-to-use-ep8266-esp-01-as-a-sensor-web-client/ 
, dass es wohl am USB liegt. Ich habe zunächst meine Funkmaus/Tastatur 
abgesteckt. Ergebnis war, dass es immerhin bis zu knapp 50% des Flashens 
gereicht hat. Dann habe ich noch das HDMI-Kabel vom Notebook gezogen 
habe und siehe da: Es lief durch :) . Alles funktioniert nun wunderbar. 
Ich hätte nicht gedacht, dass das so störanfällig ist. Wieder was 
gelernt.

von Daniel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe dasselbe Problem. Im Netz liest man aber auch, dass der eeprom 
oder was das ist eventuell defekt ist. Da gibt es einige die den schon 
getauscht haben gegen andere Modelle.

Da scheint wirklich ein Haufen China Schrott unterwegs zu sein.

/Daniel

von Klaus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Frank H. schrieb:
> - 3,3V nur aus dem FTDI ("im Video geht es ja auch!")

Das dürfte ein Problem sein. Der FTDI selbst liefert nicht wirklich viel 
Strom an 3,3V. Er ist ja kein Spannungsregler. Es gibt ja 
unterschiedliche FTDI Chips, bei einem findet sich dies im Datenblatt:

> 3V3OUT (Out) Output from the integrated L.D.O. regulator. It’s primary
> purpose is to provide the internal 3.3v supply to the USB transceiver
> cell and the RSTOUT# pin. A small amount of current (<= 5mA ) can be
> drawn from this pin to power external 3.3v logic if required.

Wenn man wirkliche 3,3V aus dem USB Anschluß braucht, muß man einen 
extra Regler an VUSB anschließen. Der kann dann genug Strom liefern

MfG Klaus

PS
Daniel schrieb:
> Da scheint wirklich ein Haufen China Schrott unterwegs zu sein.

Ein wohlfeiler Spruch. Der Rechner, auf dem du das schreibst, ist sicher 
auch in China gebaut.

von Ulrich F. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Daniel schrieb:
> eeprom
Flash

Daniel schrieb:
> Da gibt es einige die den schon
> getauscht haben gegen andere Modelle.

Das tue ich auch, aber wegen den 512K zu 4M.
Um Platz für HTML Dateien usw. zu bekommen, und um Updates über HTTP zu 
ermöglichen.
Ein defekter Flash Baustein ist mir noch nicht unter gekommen.

Aber durchaus vorstellbar, denn der ESP8266 schreibt auch selber drin 
rum. Und Flash ist da eben begrenzt.

von Daniel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Also bei mir war das die Lösung:

Edit esptool.py so that:
ESP_RAM_BLOCK = 0x180
ESP_FLASH_BLOCK = 0x40

die zwei Nullen hinten weg und dann lief es wie geleckt. Alle anderen 
Flash Tools funktionieren nicht bei mir.

Gruß
Daniel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.