Forum: Mikrocontroller und Digitale Elektronik Serielle Verbindung zu ESP32 scheitert


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 Christian F. (neo2001)


Lesenswert?

Verwende Manjaro Linux.

Der ESP32 sitzt auf einem China-Entwicklerboard, welches sich selbst als 
"ESP32 DEVKITV1 bezeichnet. Habe zwei Stück davon, bei beiden das 
gleiche Problem.

Die Rechte für die seriellen Schnittstellen bzw. /dev/ttyUSB0-9 sind 
über udev korrekt gesetzt. Das Gerät erscheint auch, wenn ich das Board 
anstecke. Bei einem der Boards muss ich dazu beim Anstecken jedoch BOOT 
gedrückt halten, sonst erscheint /dev/ttyUSB0 nicht. Nach einem 
Verbindungsversuch verschwindet die Schnittstelle wieder. Beim anderen 
Board bleibt sie ständig, funktionieren tut sie jedoch trotzdem nicht. 
Andere Geräte mit dem gleichen Serial-Chip (Silabs CP2102) funktionieren 
ebenfalls einwandfrei. ESP8266, Arduino Uno/Nano mit z.B. CH340 oder 
STM32 im DFU-Mode usw. funktioniert alles ebenfalls.

Verwende picocom für die serielle Verbindung und esptool.py, v3.1, zum 
flashen bzw. info auslesen. Erhalte jedoch jedes Mal einen Python 
'Input/output error'.

z.B. esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 chip_id
1
esptool.py v3.1-dev
2
Serial port /dev/ttyUSB0
3
Connecting........____
4
Traceback (most recent call last):
5
File "/home/cf/.local/bin/esptool.py", line 7, in <module>
6
exec(compile(f.read(), __file__, 'exec'))
7
File "/home/cf/src/esptool/esptool.py", line 4065, in <module>
8
_main()
9
File "/home/cf/src/esptool/esptool.py", line 4058, in _main
10
main()
11
File "/home/cf/src/esptool/esptool.py", line 3652, in main
12
esp = get_default_connected_device(ser_list, port=args.port, connect_attempts=args.connect_attempts,
13
File "/home/cf/src/esptool/esptool.py", line 115, in get_default_connected_device
14
_esp.connect(before, connect_attempts)
15
File "/home/cf/src/esptool/esptool.py", line 555, in connect
16
last_error = self._connect_attempt(mode=mode, esp32r0_delay=True)
17
File "/home/cf/src/esptool/esptool.py", line 530, in _connect_attempt
18
self.flush_input()
19
File "/home/cf/src/esptool/esptool.py", line 466, in flush_input
20
self._port.flushInput()
21
File "/usr/lib/python3.8/site-packages/serial/serialutil.py", line 584, in flushInput
22
self.reset_input_buffer()
23
File "/usr/lib/python3.8/site-packages/serial/serialposix.py", line 595, in reset_input_buffer
24
termios.tcflush(self.fd, termios.TCIFLUSH)
25
termios.error: (5, 'Input/output error')

Einzig wenn ich mit picocom /dev/ttyUSB0 -b115200 eine Verbindung öffne 
(es passiert zunächst gar nichts) und dann "EN" auf dem Board drücke, 
bekomme ich folgende Ausgabe:
1
Terminal ready
2
ets Jun  8 2016 00:22:57
3
4
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
5
configsip: 0, SPIWP:0x00
6
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
7
mode:DIO, clock div:2
8
load:0x3fff0008,len:8
9
load:0x3fff0010,len:3480
10
load:0x40078000,len:7804
11
ho 0 tail 12 room 4
12
load:0x40080000,len:252
13
entry 0x40080034
14
I (46) boot: ESP-IDF v2.0-3-gbef9896 2nd stage bootloader
15
I (46) boot: compile time 05:59:45
16
I (46) boot: Enabling RNG early entropy source...
17
I (65) boot: SPI Speed      : 40MHz
18
I (78) boot: SPI Mode       : DIO
19
I (90) boot: SPI Flash Size : 4MB
20
I (102) boot: Partition Table:
21
I (114) boot: ## Label            Usage          Type ST Offset   Length
22
I (136) boot:  0 phy_init         RF data          01 01 0000f000 00001000
23
I (160) boot:  1 otadata          OTA data         01 00 00010000 00002000
24
I (183) boot:  2 nvs              WiFi data        01 02 00012000 0000e000
25
I (206) boot:  3 at_customize     unknown          40 00 00020000 000e0000
26
I (229) boot:  4 ota_0            OTA app          00 10 00100000 00180000
27
I (253) boot:  5 ota_1            OTA app          00 11 00280000 00180000
28
I (276) boot: End of partition table
29
I (289) boot: Disabling RNG early entropy source...
30
I (306) boot: Loading app partition at offset 00100000
31
I (1482) boot: segment 0: paddr=0x00100018 vaddr=0x00000000 size=0x0ffe8 ( 65512)                                                                             
32
I (1482) boot: segment 1: paddr=0x00110008 vaddr=0x3f400010 size=0x1c5f0 (116208) map                                                                         
33
I (1499) boot: segment 2: paddr=0x0012c600 vaddr=0x3ffb0000 size=0x0215c (  8540) load                                                                        
34
I (1529) boot: segment 3: paddr=0x0012e764 vaddr=0x40080000 size=0x00400 (  1024) load                                                                        
35
I (1552) boot: segment 4: paddr=0x0012eb6c vaddr=0x40080400 size=0x1b028 (110632) load                                                                        
36
I (1631) boot: segment 5: paddr=0x00149b9c vaddr=0x400c0000 size=0x00034 (    52) load                                                                        
37
I (1632) boot: segment 6: paddr=0x00149bd8 vaddr=0x00000000 size=0x06430 ( 25648)                                                                             
38
I (1648) boot: segment 7: paddr=0x00150010 vaddr=0x400d0018 size=0x7a56c (501100) map                                                                         
39
I (1676) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
40
I (1698) heap_alloc_caps: At 3FFBA6B8 len 00025948 (150 KiB): DRAM
41
I (1719) heap_alloc_caps: At 3FFE8000 len 00018000 (96 KiB): D/IRAM
42
I (1741) heap_alloc_caps: At 4009B428 len 00004BD8 (18 KiB): IRAM
43
I (1762) cpu_start: Pro cpu up.
44
I (1773) cpu_start: Single core mode
45
I (1787) cpu_start: Pro cpu start user code
46
I (1847) cpu_start: Starting scheduler on PRO CPU.
47
I (2086) uart: queue free spaces: 10
48
Bin version:0.10.0
49
I (2088) wifi: wifi firmware version: c604573
50
I (2088) wifi: config NVS flash: enabled
51
I (2089) wifi: config nano formating: disabled
52
I (2097) wifi: Init dynamic tx buffer num: 32
53
I (2098) wifi: wifi driver task: 3ffc4eac, prio:23, stack:3584
54
I (2103) wifi: Init static rx buffer num: 10
55
I (2107) wifi: Init dynamic rx buffer num: 0
56
I (2111) wifi: Init rx ampdu len mblock:7
57
I (2115) wifi: Init lldesc rx ampdu entry mblock:4
58
I (2120) wifi: wifi power manager task: 0x3ffca254 prio: 21 stack: 2560
59
I (2126) wifi: wifi time
60
FATAL: read zero bytes from port
61
term_exitfunc: reset failed for dev UNKNOWN: Input/output error

Andere Software welche die serielle(n) Schnittstelle(n) verwendet, läuft 
nicht. Andere serielle Geräte funktionieren mit den gleichen Leitungen, 
wie gesagt, auch problemlos.

: Bearbeitet durch User
von Arno (Gast)


Lesenswert?

Was sagt der Kernel? Mir ist so letztens ein defektes USB-Kabel 
aufgefallen, das das USB-Gerät in unregelmäßigen Abständen rausgeworfen 
hat.

MfG, Arno

von Stefan F. (Gast)


Lesenswert?

Prüfe mal die Stromversorgung, am besten mit einem Oszilloskop.

Das klingt vielleicht so wie der Arzt der im Zweifelsfall immer 
Antibiotikum verschreibt. Aber mangelhafte Stromversorgung ist wirklich 
fast immer die Ursache bei solchen Anfangs-Problemen.

von bingo (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das klingt vielleicht so wie der Arzt der im Zweifelsfall immer
> Antibiotikum verschreibt. Aber mangelhafte Stromversorgung ist wirklich
> fast immer die Ursache bei solchen Anfangs-Problemen.

Wobei die prophylaktische Anwendung von Antibiotika meist ein ärztlicher 
Kunstfehler ist.

von Christian F. (neo2001)


Lesenswert?

Manchmal scheint er Probleme zu haben, manchmal nicht:
1
[10417.600156] usb 8-3: new full-speed USB device number 50 using ohci-pci
2
[10417.832253] usb 8-3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
3
[10417.832260] usb 8-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
4
[10417.832264] usb 8-3: Product: CP2102 USB to UART Bridge Controller
5
[10417.832267] usb 8-3: Manufacturer: Silicon Labs
6
[10417.832269] usb 8-3: SerialNumber: 0001
7
[10417.843333] cp210x 8-3:1.0: cp210x converter detected
8
[10417.853422] usb 8-3: cp210x converter now attached to ttyUSB0
9
[10417.876453] usb 8-3: USB disconnect, device number 50
10
[10417.876788] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
11
[10417.876865] cp210x 8-3:1.0: device disconnected
12
[10418.800255] usb 8-3: new full-speed USB device number 51 using ohci-pci
13
[10419.014305] usb 8-3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
14
[10419.014311] usb 8-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
15
[10419.014315] usb 8-3: Product: CP2102 USB to UART Bridge Controller
16
[10419.014318] usb 8-3: Manufacturer: Silicon Labs
17
[10419.014321] usb 8-3: SerialNumber: 0001
18
[10419.025277] cp210x 8-3:1.0: cp210x converter detected
19
[10419.035460] usb 8-3: cp210x converter now attached to ttyUSB0
20
  
21
---
22
23
[10528.905325] usb 8-3: new full-speed USB device number 52 using ohci-pci
24
[10529.134707] usb 8-3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
25
[10529.134713] usb 8-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
26
[10529.134717] usb 8-3: Product: CP2102 USB to UART Bridge Controller
27
[10529.134720] usb 8-3: Manufacturer: Silicon Labs
28
[10529.134722] usb 8-3: SerialNumber: 0001
29
[10529.145737] cp210x 8-3:1.0: cp210x converter detected
30
[10529.155826] usb 8-3: cp210x converter now attached to ttyUSB0
31
[10529.212007] usb 8-3: USB disconnect, device number 52
32
[10529.212337] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
33
[10529.212385] cp210x 8-3:1.0: device disconnected
34
[10529.598702] usb 8-3: new full-speed USB device number 53 using ohci-pci
35
[10529.812742] usb 8-3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
36
[10529.812748] usb 8-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
37
[10529.812752] usb 8-3: Product: CP2102 USB to UART Bridge Controller
38
[10529.812755] usb 8-3: Manufacturer: Silicon Labs
39
[10529.812758] usb 8-3: SerialNumber: 0001
40
[10529.823805] cp210x 8-3:1.0: cp210x converter detected
41
[10529.833914] usb 8-3: cp210x converter now attached to ttyUSB0
42
43
---
44
45
[10631.746945] usb 8-3: new full-speed USB device number 54 using ohci-pci
46
[10631.975988] usb 8-3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
47
[10631.975995] usb 8-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
48
[10631.975998] usb 8-3: Product: CP2102 USB to UART Bridge Controller
49
[10631.976001] usb 8-3: Manufacturer: Silicon Labs
50
[10631.976004] usb 8-3: SerialNumber: 0001
51
[10631.989060] cp210x 8-3:1.0: cp210x converter detected
52
[10631.990920] cp210x 8-3:1.0: failed to get vendor val 0x370b size 1: -62
53
[10631.990927] cp210x 8-3:1.0: querying part number failed
54
[10631.992991] cp210x ttyUSB0: failed get req 0x4 size 2 status: -62
55
[10631.993007] cp210x: probe of ttyUSB0 failed with error -62
56
[10631.993330] usb 8-3: USB disconnect, device number 54
57
[10631.993684] cp210x 8-3:1.0: device disconnected
58
[10632.416942] usb 8-3: new full-speed USB device number 55 using ohci-pci
59
[10632.631003] usb 8-3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
60
[10632.631009] usb 8-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
61
[10632.631013] usb 8-3: Product: CP2102 USB to UART Bridge Controller
62
[10632.631016] usb 8-3: Manufacturer: Silicon Labs
63
[10632.631018] usb 8-3: SerialNumber: 0001
64
[10632.642095] cp210x 8-3:1.0: cp210x converter detected
65
[10632.652187] usb 8-3: cp210x converter now attached to ttyUSB0
66
67
---
68
69
[10705.988071] usb 8-3: new full-speed USB device number 56 using ohci-pci
70
[10706.216638] usb 8-3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
71
[10706.216645] usb 8-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
72
[10706.216649] usb 8-3: Product: CP2102 USB to UART Bridge Controller
73
[10706.216652] usb 8-3: Manufacturer: Silicon Labs
74
[10706.216655] usb 8-3: SerialNumber: 0001
75
[10706.228682] cp210x 8-3:1.0: cp210x converter detected
76
[10706.230628] cp210x 8-3:1.0: failed to get vendor val 0x370b size 1: -62
77
[10706.230636] cp210x 8-3:1.0: querying part number failed
78
[10706.232623] cp210x ttyUSB0: failed get req 0x4 size 2 status: -62
79
[10706.232638] cp210x: probe of ttyUSB0 failed with error -62
80
[10706.242798] usb 8-3: USB disconnect, device number 56
81
[10706.242970] cp210x 8-3:1.0: device disconnected
82
[10708.691448] usb 8-3: new full-speed USB device number 57 using ohci-pci
83
[10709.254730] usb 8-3: device not accepting address 57, error -62
84
[10709.664802] usb 8-3: new full-speed USB device number 58 using ohci-pci
85
[10709.878714] usb 8-3: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
86
[10709.878721] usb 8-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
87
[10709.878725] usb 8-3: Product: CP2102 USB to UART Bridge Controller
88
[10709.878728] usb 8-3: Manufacturer: Silicon Labs
89
[10709.878730] usb 8-3: SerialNumber: 0001
90
[10709.889809] cp210x 8-3:1.0: cp210x converter detected
91
[10709.899895] usb 8-3: cp210x converter now attached to ttyUSB0

Ein anderes Kabel führt dazu, dass er länger versucht zu verbinden, dann 
aber trotzdem abbricht. Evtl. hat es doch was damit zutun. Werde 
diesbezüglich weiter testen.
Hätte jetzt auf das Kabel geschworen, da ich das schon längere Zeit zum 
programmieren z.B. von meinen diversen Flight-Controllern verwende und 
wirklich nie Probleme hatte. Vielleicht ziehen die aber auch weniger 
Strom beim Start.

Also werde ich die Spannung mal genauer testen bzw. beobachten. Der 
Spannungsregler scheint zumindest im "Leerlauf" die korrekte Spannung 
auszuspucken (3,25 V).

von Christian F. (neo2001)


Lesenswert?

Habe das Problem glaube ich gefunden. Ich musste den BOOT-Button 
gedrückt halten, während er die Verbindung (esptool.py) aufgebaut hat. 
Habe gerade erfolgreich den Speicher gelöscht und MicroPython geflasht 
und es scheint auch normal zu funktionieren. Terminalverbindung 
funktioniert ebenfalls ohne Knopf drücken oder halten. Habe auch wieder 
das "alte" Kabel dran.

von Olbert (driveldeer)


Lesenswert?

Hatte das gleiche Problem - auch 2 Jahre später ;-)
... hab auf den 100µF Kondensator vergessen.
Folgende Artikel sind auch für den ESP32 interessant.

http://stefanfrings.de/esp8266/index.html#power

"Stromversorgung:
Die häufigste Ursache von Fehlfunktionen ist eine zu schwache 
Stromversorgung. Der ESP Chip benötigt eine stabile Spannungsversorgung 
zwischen 2,8 und 3,6 Volt bei einer Stromaufnahme von 5 µA bis 430 mA. 
Innerhalb dieses Bereiches darf sich sich die Spannung nur langsam 
ändern. Es ist also ein schneller starker Spannungsregler erforderlich, 
der extreme Strom-Schwankungen ausregeln kann.

Ich empfehle zur Verbesserung der Zuverlässigkeit einen 100 µF 
Kondensator direkt an den Anschlüssen VCC und GND des ESP-Moduls. Beim 
NodeMCU Board ist dieser bereits vorhanden. Ohne Kondensator liefen 
meine ESP-Module keine 4 Wochen fehlerfrei durch."

https://www.ondrovo.com/a/20170207-esp-consumption/

: Bearbeitet durch User
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.