Forum: Mikrocontroller und Digitale Elektronik ESP8266 DOWNLOAD TOOL: Flasht nicht, Probleme mit Serieller Schnittstelle?


von Franz Schlüter (Gast)


Angehängte Dateien:

Lesenswert?

Hi

Ich versuche gerade mir eine Entwicklungsumgebung für den ESP8266 
zusammen zu basteln. In diesem Rahmen möchte ich den Uploadprozess in 
den Griff kriegen. Als Übung dazu, versuche ich mit Espressifs Download 
Tool 
(https://espressif.com/sites/default/files/tools/flash_download_tools_v3.3.4_win.zip) 
eine neue Firmware esp8266_nonos_sdk_v1.5.4 
(https://espressif.com/sites/default/files/sdks/esp8266_nonos_sdk_v1.5.4_16_05_20.zip)auf 
meinen ESP 12F aufzuspielen. Daran scheitere ich noch.


Mein Aufbau auf dem Steckbrett ist wie folgt:
Am ESP 12F
VCC: 3,3V
GND: GND
RST: Pullup gen Hi, zusätzlich Taster gen Low zwecks Reset
EN: Pullup
GPIO0: normal Pullup, für Download Mode aber zum Pulldown umgstöpselt
GPIO2: Pullup
GPIO15: Pulldown
TXD: an RX vom USB-Seriell-Adapter
RXD: an TX vom USB-Seriell-Adapter


Stelle ich mein Terminal auf 74880 Baud, kann ich nach Reset die 
Bootmeldung empfangen:
1
 ets Jan  8 2013,rst cause:2, boot mode:(3,6)
2
3
load 0x40100000, len 1856, room 16 
4
tail 0
5
chksum 0x63
6
load 0x3ffe8000, len 776, room 8 
7
tail 0
8
chksum 0x02
9
load 0x3ffe8310, len 552, room 8 
10
tail 0
11
chksum 0x79
12
csum 0x79
13
14
2nd boot version : 1.5
15
  SPI Speed      : 40MHz
16
  SPI Mode       : DIO
17
  SPI Flash Size & Map: 8Mbit(512KB+512KB)
18
jump to run user1 @ 1000
Nach Empfang der Bootmeldung schaltet der ESP wohl für TXD0 die Baudrate 
auf 115200 um, was CoolTerm für einen "Framing Error" hält und sich vom 
Comport trennt.
Manchmal erhalte ich auch "boot mode:(3,7)", kann aber kein System 
erkennen, woran das liegt.

Schalte ich den Download Mode ein, indem ich GPIO0 zum Pulldown 
umstöpsle, dann erhalte ich nur die kurze Meldung
1
 ets Jan  8 2013,rst cause:2, boot mode:(1,6)

Verwende ich nach dem Booten des ESP bei der Kommunikation die Baudrate 
115200, dann kann ich auch prima AT Kommandos absenden und bekomme 
erwartungsgemäße Antworten. Beispielsweise bekomme ich auf das Kommando 
"AT" (+ <crlf>) die Antwort "OK".

Das nehme ich als Beweis, dass die Kommunikation zum ESP 12F 
grundsätzlich durchaus funktioniert.

Nun also zum "ESP8266 UPLOAD TOOL".
Ich habe dort die *.bin Dateien eingestellt, die ich 
esp8266_nonos_sdk_v1.5.4 (link s.o.) entnommen habe:

bin\esp_init_data_default.bin
bin\boot_v1.5.bin
bin\blank.bin
bin\at\512+512\user1.1024.new.2.bin

Einstellungen der Kommunikationsschnittstelle siehe Screenshot.

Egal welche Reihenfolte ich versuche
1.) GPIO0 = low (Downloadmodus), Reset
2.) "Start" Button im Download Tool
oder umgekehrt, das Ergebnis sieht auf den ersten Blick gleich aus. Die 
grüne "Idle" Anzeige im "Dowload Panel1" wird kurz zur grünen "Sync" 
Anzeige um dann zur roten "ERROR" Meldung zu werden. Im Log generiert 
das folgende Ausgabe (nur der Ausschnitt, der aufgrund der Aktionen 
erzeugt wird):
1
test offset :  1032192 0xfc000
2
case ok
3
test offset :  0 0x0
4
case ok
5
test offset :  1040384 0xfe000
6
case ok
7
test offset :  4096 0x1000
8
case ok
9
************
10
check_res: (True, [[u'C:\\ESP8266\\espressif\\esp8266_nonos_sdk_v1.5.4_16_05_20\\ESP8266_NONOS_SDK\\bin\\boot_v1.5.bin', 0], [u'C:\\ESP8266\\espressif\\esp8266_nonos_sdk_v1.5.4_16_05_20\\ESP8266_NONOS_SDK\\bin\\at\\512+512\\user1.1024.new.2.bin', 4096], [u'C:\\ESP8266\\espressif\\esp8266_nonos_sdk_v1.5.4_16_05_20\\ESP8266_NONOS_SDK\\bin\\esp_init_data_default.bin', 1032192], [u'C:\\ESP8266\\espressif\\esp8266_nonos_sdk_v1.5.4_16_05_20\\ESP8266_NONOS_SDK\\bin\\blank.bin', 1040384]])
11
is running :  False
12
************
13
set STOP FLG:  True
14
*********************
15
pic path: ./RESOURCE/IDLE_S.bmp
16
***********************
17
rep_path : C:\ESP8266\espressif\FLASH_DOWNLOAD_TOOLS_V3.3.4_Win\bin_tmp\downloadPanel1
18
size_speed : 20
19
test fpath: C:\ESP8266\espressif\esp8266_nonos_sdk_v1.5.4_16_05_20\ESP8266_NONOS_SDK\bin\_temp_by_dltool/downloadPanel1
20
test fname: C:\ESP8266\espressif\esp8266_nonos_sdk_v1.5.4_16_05_20\ESP8266_NONOS_SDK\bin\_temp_by_dltool/downloadPanel1\boot_v1.5.bin_rep
21
mode :    speed: 
22
write bin :  C:\ESP8266\espressif\esp8266_nonos_sdk_v1.5.4_16_05_20\ESP8266_NONOS_SDK\bin\_temp_by_dltool/downloadPanel1\boot_v1.5.bin_rep
23
test fpath: C:\ESP8266\espressif\esp8266_nonos_sdk_v1.5.4_16_05_20\ESP8266_NONOS_SDK\bin\_temp_by_dltool/downloadPanel1
24
test fname: C:\ESP8266\espressif\esp8266_nonos_sdk_v1.5.4_16_05_20\ESP8266_NONOS_SDK\bin\_temp_by_dltool/downloadPanel1\esp_init_data_default.bin_rep
25
mode :    speed: 
26
write bin :  C:\ESP8266\espressif\esp8266_nonos_sdk_v1.5.4_16_05_20\ESP8266_NONOS_SDK\bin\_temp_by_dltool/downloadPanel1\esp_init_data_default.bin_rep
27
TEST!!!!
28
SELF.COMSTR: COM6
29
test running : False
30
BAUD 0 : 115200
31
test COM: COM6 <type 'unicode'>
32
test self._COM: COM6
33
test baud:  115200
34
======
35
CONNECT BAUD: 115200 
36
============
37
test type : <type 'unicode'>
38
COM type: string
39
is open:  False
40
serial port opened
41
-----------
42
baud: 115200
43
root baud: 115200
44
-------------
45
===============
46
BAUD :  115200
47
===============
48
Connecting...
49
*********************
50
pic path: ./RESOURCE/SYNC_S.bmp
51
***********************
52
chip sync ok!
53
set fast baud
54
chip baud div: 457
55
chip baud :  113785
56
baud_prev: 115200
57
chip baud div: 457
58
chip baud :  113785
59
rd_baud: 1155555
60
('set rd_baud:', 1155555)
61
change baud error, set prev baud: 115200
62
COM PORT SET BAUD: 1152000
63
*********************
64
pic path: ./RESOURCE/ERROR_S.bmp
65
***********************
66
com closed

Ich habe natürlich keine Ahnung, wie dieses Log aussehen sollte, wenn 
erfolgreich geflashed wurde. Aber insbesondere die merwürdigen Baudraten 
am Ende des Logs
irritieren mich, z.B. "1152000", das 10-fache von 115200.
Wenn ich mir beispielsweise 
http://www.allaboutcircuits.com/projects/update-the-firmware-in-your-esp8266-wi-fi-module 
durchlese, dann scheint zumindest in der älteren Version des Download 
Tools wohl schon direkt beim Resetten des ESP dessen "Detected Info" 
angezeigt worden zu sein. Bei der V3.3.4 hingegen wird der Port wohl 
erst auf Knopfdruck angesprochen.
Nun stehe ich auf dem Schlauch. Hat wer einen Tip, wie ich den dieses 
Tool dazu bewegen kann meinen ESP zu flashen?

von G. H. (schufti)


Lesenswert?

schon mal "spi_auto_set" angehakt und geschaut was dann ausgegeben wird?

von Franz Schlüter (Gast)


Lesenswert?

Ja, das habe ich versucht. Es hat keinerlei Unterschied gemacht, ob 
"spi_auto_set" an oder aus ist. Es wird genau das selbe ausgegeben.

von G. H. (schufti)


Lesenswert?

hmm, das heist gravierende Kommunikationsprobleme; sonst müßte er autom. 
Quarzfrequenz, flashtype, spi- speed und mode erkennen.

versuch mal diese alternative:

https://github.com/nodemcu/nodemcu-flasher

von Franz Schlüter (Gast)


Lesenswert?

Hihi, mit dem Nodemcu Flasher habe ich bereits einen meiner 5 ESPs zu 
einer Lua Maschine geflasht. Der funktioniert also. Irgendwie auch 
witzig auf so einem kleinen Ding interaktiv per Konsole print("Hello 
World") machen zu können.

Aber noch habe ich mich nicht weiter damit auseinandergesetzt, ob und 
wie ich mit dem Nodemcu Flasher in C geschriebene Programme flashen 
könnte. Denn ich ahne, dass ich die Ressourcen, die der Lua Interpreter 
frisst, lieber anderweitig verwenden möchte. :)

von Franz Schlüter (Gast)


Lesenswert?

Update: Juhu es klappt mit dem Nodemcu Flasher einwandfrei. Ich kann 
damit auch die Firmware binaries aus esp8266_nonos_sdk_v1.5.4 flashen.
Hatte einfach übersehen, dass der eigentlich genau so funktioniert, wie 
es das Tool von Espressif tun sollte.

SOLVED!

Danke!

von Michael U. (amiga)


Lesenswert?

Hallo,

das Problem, daß das ESP-Tool plötzlich nicht mehr wollte hatte ich auch 
schon. Ich war mir keiner Änderungen an meinem System bewußt.
Irgendwann ging es dann wieder, warum auch immer.
Der NodeMCU-Flasher lief bisher immer, die Arduino-IDE auch.

Gruß aus Berlin
Michael

von Richard B. (r71)


Lesenswert?

Hallo,

@Franz Wie hast du das jetzt gelöst?
Ich habe das gleiche Problem.
Egal was ich mache, bekomme ich keine Verbindung zum Modul.

Es ist ein ESP 8266 12F.

Das Modul startet mit 74880 baud und wechselt auf 115200.
Ich kann es auch nicht Flashen.

Mittlerweise kommt nur das hier:
ets Jan  8 2013,rst cause:2, boot mode:(1,7)

Das NodeMCU bekommt auch keine Verbindung zum Modul.

Angebunden habe es über einen (original) FTDI Chip.
Stromversorgung läuft extern 3,3V mit 350mA (Eingestellt).
Zur zeit verbraucht das Modul ca 53mA.

Freundliche Grüße,
Richard

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
Noch kein Account? Hier anmelden.