Hallo, ich versuche gerade meine erste Schaltung mit einem ESP32 S3 in Betrieb zu nehmen. Laut Datenblatt sollte sich der µC als USB CDC melden wenn mit mit GPIO0 = 0 einen Reset macht, aber da passiert nichts. Hat jemand einen Tip? Bisher geprüft: Spannungsversorgung 3,3 V i. O. und stabil. Reset und GPIO0 Pegel passen. USB D+ ist bei 3,3 V, USB D- auf 0 V. Schaltplan und PCB Ausschnitt im Anhang. Grüße Stefan
Auf GPIO43 und GPIO44 ist UART0 drauf, der auch vom Bootloader und dem System verwendet wird. Probiere das mal, um zu sehen, ob der ESP überhaupt läuft. fchk
Alexander schrieb: > USB ist 5V Nur die Stromversorgung. Bei den Datenleitungen sind die open genannten 3,3V korrekt.
Die Beschaltung des EN Pins (RST Signal) sieht komisch aus. Ich kenne das von den EPS32, da müsste meiner Meinung nach ein Pullup und ein Kondensator dran. Die Resetdauer wird dann über das RC bestimmt. Da müsstest du mal ins Datenblatt des ESP32-S3 schauen, aber ich denke das wird ähnlich sein. Oft sind bei den Boards zu kleine Kondensatoren verbaut, da hilft dann bei Boot-Problemen ein größerer Kondensator nach GND, um den Resetpuls zu verlängern. Bei deiner Schaltung jedoch hängt der Kondensator irgendwie in der Luft, oder ich sehe keinen, der nach GND geht.
Stefan S. schrieb: > Laut Datenblatt sollte sich der µC als USB CDC melden wenn > mit mit GPIO0 = 0 einen Reset macht Stimmt grundsätzlich, aber IIRC kann man das über diese Efuses deaktivieren, prüfe mal ob da ab Werk was gemacht wurde
>Auf GPIO43 und GPIO44 ist UART0 drauf, der auch vom Bootloader und dem >System verwendet wird. Probiere das mal, um zu sehen, ob der ESP >überhaupt läuft. Eben da reingemessen: An TXD0 wird mit 115200 bit/s in Dauerschleife ausgegeben (wenn normal, also ohne GPIO0 low gebooted wird): "invalid header: 0xffffffff" Das sollte ja ok sein, weil noch nichts geflasht ist. Wenn ich einen Reset mit GPIO0 low mache kommt: ESP-ROM:esp32s3-20210327 Build:Mar 27 2021 rst:0x1 (POWERON),boot:0x0 (DOWNLOAD(USB/UART0)) waiting for download Scheint erstmal soweit auch OK zu sein, also scheint der µC grundsätzlich zu laufen, außer dass kein USB Device erkannt wird. >Die Beschaltung des EN Pins (RST Signal) sieht komisch aus. Ich kenne >das von den EPS32, da müsste meiner Meinung nach ein Pullup und ein >Kondensator dran Ja, die Beschaltung ist etwas unüblich. Pull-Up ist vorhanden (R13 gegen +3.3V), der Kondensator (C1) ist halt nicht wie üblich gegen GND sondern gegen 3.3 V (bzw. fast, da ist noch R12 zu Vcc dazwischen) geschaltet. Hintergrund ist der dass ich den Resettaster gleichzeitig noch als Funktionstaster verwenden kann, wenn man lange drückt wird der µC resettet und ich kann beim Programmstart prüfen wie lange der Taster gedrückt wird um so z. B. in einen Konfigurationsmodus o. ä. zu gelangen. Die gleiche Schaltung habe ich schon bei anderen Projekten mit anderen µCs erfolgreich eingesetzt. >Stimmt grundsätzlich, aber IIRC kann man das über diese Efuses >deaktivieren, prüfe mal ob da ab Werk was gemacht wurde Ok, bin im ESP32 noch nicht drin, da wird es wohl ein CLI Programm geben mit dem man das machen kann? Gruß Stefan
Stefan S. schrieb: > Ok, bin im ESP32 noch nicht drin, da wird es wohl ein CLI Programm geben > mit dem man das machen kann? https://docs.espressif.com/projects/esptool/en/latest/esp32/espefuse/index.html
liegen denn die 5V auch an? D+ D- mal vertauscht? was sagt lsusb? Tools
> USB CDC On Boot > Enabled?
Windows schaltet USB Ports auch gern mal minutenlang ab, also ruhig mal
Ports wechseln.
:
Bearbeitet durch User
hier steht noch was von Initial Upload für CDC Console https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-guides/usb-otg-console.html
Andreas B. schrieb: > Die Beschaltung des EN Pins (RST Signal) sieht komisch aus. Ich kenne > das von den EPS32, da müsste meiner Meinung nach ein Pullup und ein > Kondensator dran. https://i0.wp.com/randomnerdtutorials.com/wp-content/uploads/2019/02/esp32-waiting-for-packet-header-featured.jpg?w=1280&quality=100&strip=all&ssl=1 ich habe einen 10µF MLCC 25V genommen platzsparend, siehe Beitrag "Re: ESP32-Schaltung" https://www.ebay.de/itm/385271738466 oder besser? https://www.ebay.de/itm/364271701225
:
Bearbeitet durch User
Stefan S. schrieb: > Wenn ich einen Reset mit GPIO0 low mache kommt: > ESP-ROM:esp32s3-20210327 > Build:Mar 27 2021 > rst:0x1 (POWERON),boot:0x0 (DOWNLOAD(USB/UART0)) > waiting for download Wenn du diese Ausgabe siehst, sich am USB aber nichts tut, dann stimmt definitiv irgendwas nicht. Ich hab grad mal geschaut als was ich der S3 bei mir im Bootmode anmeldet:
1 | Bus 001 Device 015: ID 303a:1001 Espressif USB JTAG/serial debug unit |
Stefan S. schrieb: >>Die Beschaltung des EN Pins (RST Signal) sieht komisch aus. Ich kenne >>das von den EPS32, da müsste meiner Meinung nach ein Pullup und ein >>Kondensator dran > Ja, die Beschaltung ist etwas unüblich. Pull-Up ist vorhanden (R13 gegen > +3.3V), der Kondensator (C1) ist halt nicht wie üblich gegen GND sondern > gegen 3.3 V (bzw. fast, da ist noch R12 zu Vcc dazwischen) geschaltet. Das ist mir auch aufgefallen, und das ist hier möglicherweise das Problem. Lies das: https://docs.espressif.com/projects/esp-hardware-design-guidelines/en/latest/esp32s3/schematic-checklist.html#chip-power-up-and-reset-timing Eventuell brauchst Du einen Resetcontroller wie sowas hier: https://www.analog.com/media/en/technical-documentation/data-sheets/max803-max810z.pdf Dann lies noch das hier: https://docs.espressif.com/projects/esp-hardware-design-guidelines/en/latest/esp32s3/schematic-checklist.html#usb das hier https://docs.espressif.com/projects/esp-hardware-design-guidelines/en/latest/esp32s3/schematic-checklist.html#strapping-pins (das fehlt bei Dir nämlich auch) und das hier: https://docs.espressif.com/projects/esp-hardware-design-guidelines/en/latest/esp32s3/schematic-checklist.html#uart bzw lies, verstehe und befolge alles, was Espressif dazu geschrieben hat. Das hast Du offensichtlich nicht gemacht, und deswegen gehts nicht. fchk
:
Bearbeitet durch User
>https://i0.wp.com/randomnerdtutorials.com/wp-content/uploads/2019/02/esp32-waiting-for-packet-header-featured.jpg?w=1280&quality=100&strip=all&ssl=1
Die Idee gefällt mir nicht, da wird der (große) Elko über den Taster
ohne Strombegrezung kurzgeschlossen, da sollte mindestens noch ein
Widerstand dazwischen.
Fuses konnte ich auslesen, muss das aber erst noch "interpretieren", so
sieht die Ausgabe von espefuse dump aus:
1 | espefuse.py v4.7.0 |
2 | Connecting... |
3 | Failed to get PID of a device on com3, using standard reset sequence. |
4 | . |
5 | Detecting chip type... ESP32-S3 |
6 | BLOCK0 ( ) [0 ] read_regs: 00000000 00000000 0000d1f5 00000000 00000000 00000000 |
7 | MAC_SPI_8M_0 (BLOCK1 ) [1 ] read_regs: 75ecb958 0000dc54 00000000 8b080000 8cbbf002 5c00d48d |
8 | BLOCK_SYS_DATA (BLOCK2 ) [2 ] read_regs: 5facfa05 909a2b52 dd28ecc0 fb2412dd 540b1061 32563cd4 e90d04ba 314eb91a |
9 | BLOCK_USR_DATA (BLOCK3 ) [3 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |
10 | BLOCK_KEY0 (BLOCK4 ) [4 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |
11 | BLOCK_KEY1 (BLOCK5 ) [5 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |
12 | BLOCK_KEY2 (BLOCK6 ) [6 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |
13 | BLOCK_KEY3 (BLOCK7 ) [7 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |
14 | BLOCK_KEY4 (BLOCK8 ) [8 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |
15 | BLOCK_KEY5 (BLOCK9 ) [9 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |
16 | BLOCK_SYS_DATA2 (BLOCK10 ) [10] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 |
17 | |
18 | BLOCK0 ( ) [0 ] err__regs: 00000000 00000000 00000000 00000000 00000000 00000000 |
19 | EFUSE_RD_RS_ERR0_REG 0x00000000 |
20 | EFUSE_RD_RS_ERR1_REG 0x00000000 |
>bzw lies, verstehe und befolge alles, was Espressif dazu geschrieben hat. Das hast Du offensichtlich nicht gemacht, und deswegen gehts nicht. Danke Frank, werde die Dokumente alle durchlesen. >hier steht noch was von Initial Upload für CDC Console auch den lese ich! Danke & Gruß Stefan
So, am lesen: >https://docs.espressif.com/projects/esp-hardware-design-guidelines/en/latest/esp32s3/schematic-checklist.html#usb Da wird empfohlen im Layout 2 (0 Ohm) Serienwiderstände und 2 Kapazitäten vorzusehen, halte ich jetzt erstmal nicht für absolut funktionsrelevant (sind auf dem S3-DevKitC von Espressiv ebenfalls nicht vorhanden), werde das aber in Zukunft vorsehen. Dann wird noch gebeten einen Pull-Up auf der D+ Leitung einzubauen, das habe ich tatsächlich nicht, ich löte mal einen drüber (ist allerdings auch nicht auf dem DevKit). >das hier https://docs.espressif.com/projects/esp-hardware-design-guidelines/en/latest/esp32s3/schematic-checklist.html#strapping-pins (das fehlt bei Dir nämlich auch) Oh, ja, den habe ich nicht, aber auch der fehlt auf dem DevKit und auf der gleichen Seite weiter unten unter GPIO steht internal weak pull down, und die Bootmeldung sagt ja dass ich im richtigen Bootmodus angelangt bin? >https://docs.espressif.com/projects/esp-hardware-design-guidelines/en/latest/esp32s3/schematic-checklist.html#uart Ok, auch da ist nichts auf dem DevKit, und ich habe die Komponenten die an TXD/RXD hängen auch noch nicht bestückt, Pins sind also offen. >Das hast Du offensichtlich nicht gemacht, und deswegen gehts nicht. Ja, habe ich nicht gemacht, sind aber wahrscheinlich nicht die Gründe warum sich USB nicht meldet.
> Ja, die Beschaltung ist etwas unüblich....
Hhmm, ich frage mich: bekommt der ESP32 dann einen sauberen Reset beim
Einschalten der Spannungsversorgung? Das Datenblatt beschreibt den min.
Resetpuls trst=50µs
Frank hat oben ja alle Links gepostet.
>Hhmm, ich frage mich: bekommt der ESP32 dann einen sauberen Reset beim
Einschalten der Spannungsversorgung? Das Datenblatt beschreibt den min.
Resetpuls trst=50µs
Ja, da bin ich gerade am schauen, mit einem ESP8266 funktioniert die
Resetbeschaltung zwar wunderbar, aber ist ja auch was anderes. Ich mach
mal den Resettaster direkt an EN (C1 überbrücken).
Gruß
Stefan
So, bin heute dazu gekommen an dem Teil weiter zu machen. Die Resetbeschaltung funktioniert nun, ich habe mal testhalber GPIO38 (Netz BTN) abgetrennt. Im Datenblatt ist GPIO38 als "input only" angegeben, aber womöglich ist ein (fester?) Pull-Down integriert der das Resetsignal runterzieht, muss ich noch genauer untersuchen. USB funktioniert nun auch, Ursache war die (falsche) TVS Diode, ich hatte diese hier bestückt: https://docs.rs-online.com/6b11/0900766b807bd47f.pdf Bei der sind aber die Ein-/Ausgänge nicht intern durchgeschliffen. Habe die TVS Diode durch diese von Würth ersetzt: https://www.we-online.com/components/products/datasheet/82400102.pdf Und schon geht USB. Gruß Stefan
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.