ESP32-C3 native USB mit Arduino IDE

Hallo Forum,

ich habe eine Platine mit nur dem ESP32-C3 Chip und wollte den über die integrierte JTAG schnittstelle programmieren. Mit einem CP2102 kann ich mein Board ohne Probleme programmieren.

Was ich bis jetzt herausgefunden habe ist, dass USB mit Adressierung arbeitet und die ID für das Gerät in der Firmenware abgelegt werden muss. Da der ESP noch keine hat, kann ich auch nicht direkt out of the Box mit der JTAG Schnittstelle programmieren. Dachte in meinem naiven Leichtsinn ich kann einfach mit dem CP2102 irgendein programm aufspielen und dann sollte es gehen..ne.
Anscheind muss ich die Fuses für die JTAG Schnittstelle aktivieren. So, gegoogelt und folgende Anleitung gefunden
https://www.visualmicro.com/page/ESP32C3-JTAG-Debugging.aspx
hier sagt er, sobald man das tool runtergeladen hat, dass man mit

espefuse.exe --port COM5 burn_efuse JTAG_SEL_ENABLE

die Fuses aktiviert. direkt darunter schreibt er, dass sollten die Fuses nicht verfügbar sein, kommt eine Fehlermeldung. Die Fehlermeldung bekomme ich.
Als nächstes schreibt er, wenn das der Fall ist, solle man:

If JTAG_SEL_ENABLE is not present, you will need to set the DIS_USB_JTAG Fuse, which PERMANENTLY disables USB debugging on this board, and cannot be undone.

Jetzt bin ich verwirrt, warum sollte ich die Schnittstelle permanent deaktivieren?
Kann mir jemand auf die Sprünge helfen?
Danke!

Mfg

Was für ein Board verwendest du ?
Ich experimentiere hier mit dem ESP32-C3 super mini. Habe das Board am PC (WIN10) angeschlossen und hat funktioniert.
Allerdinngs nicht per JTAG.

Ich habe kein Board. Ich habe nur das ESP32-C3 IC und ein USB-Stecker an pin 18 und 19.
Programmieren mit einem CP2102 klappt auch prima. Nur nicht über die JTAG Schnittstelle

Mfg

Ok, sorry, dann habe ich das mit "Platine" falsch verstanden.
Da habe ich keine Erfahrung.

Unterscheidet sich denn die ofizielle Doku evtl. von dem, was im Netz so zu finden ist?
https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-guides/usb-serial-jtag-console.html

Ich habe einiges gefunden, jedoch gehen die meisten entweder auf die ESP-IDF oder eine andere IDE ein. Ich hatte gehofft, das irgendwie über die Arduino-IDE zu machen, dass ich erstmal mit dem Board rumspielen kann, ohne mich erst in eine andere Plattform einzuarbeiten.

Es gibt in der Arduino-IDE den Punkt: USB CDC On Boot: Enabled/Disabled

dazu steht in der Doku: USB CDC and DFU Flashing — Arduino-ESP32 2.0.14 documentation

This class is often used to enable serial communication and can be used to flash the firmware on the ESP32 without the external USB to Serial chip.

Auch wenn ich das aktiviere, funzt es dennoch nicht.
Ich habe wie dort beschrieben, den ESP in den Boot modus versetzt, Haken gesetzt und erstmal leeren Code hochgeladen. Dannach soll ich ohne externen chip und ohne externen USB/Seriell wanlder den ESP programmieren können.

EDIT:
villeicht sollte ich erwähnen, dass sobald ich ein USB-Kabel anschließe, windows direkt sagt, dass Gerät wurde nichtt erkannt.

Mfg

Dann muss ich leider auch passen.
Die Version 2 ist sowieso noch in der "Entwicklungsphase" - evtl. ist da auch (noch) nicht alles vollständig für den C3 implementiert. :man_shrugging:

Evtl. zum Flashen mal folgend die Tasten drücken.

Reset drücken und festhalten.
Boot drücken und festhalten.
Reset loslassen.
Boot loslassen.
Flashen....danach Reset drücken und er läuft. :wink: , zumindest bei mir.

Oder besorge dir Den hier, dann kannst du zumindest damit probieren.

Die 2.0.14 bezieht sich auf die core-Version für ESP32 und die funktioniert.
Allerdings setze ich noch die 2.0.11 ein.

Ah. Danke. Ich hatte irgendwann aufgegeben mich mit der 2 zu beschäftigen, weil die auf dem Ubuntu nur als pak zum laufen zu bekommen war....

Mist...

Klappt so mit dem externen programmer. Mit dem internen jedoch nicht :frowning:

habe mal in den Schlatplan geschaut von dem. Das ist genau so angeschlossen wie bei mir, sprich direkt an GPIO 18 und 19

Nein...ist alles ok.

Wie schon geschrieben, mit dem "nackten" IC habe ich keine Erfahrung. Ich habe hier ein paar von den Boards. Da muss ich nicht selbst was bauen.

Ich denke ich werd noch etwas rumprobieren. Es gibt ja schon boards, die das können. Ich werde berichten!
trotzdem Danke

Mfg

Ja, hatte ich dir doch auch verlinkt.

Noch eine kurze Nachfrage: Du verwendest doch ein USB-Kabel mit Datenleitungen ?
Nicht nur ein Ladekabel.

Und hier noch meine Einstellungen beim Flashen des Boards:

Einstellungen_ESP32_C3

Ja definitiv. Habe auch mehrere probiert.

So hab ich das auch, nur USB CDC on Boot aktiviert. Hatte auch probiert unten unter JTAG Adapter intern USB oder wie das aus hieß zu aktivieren. Leider ohne Erfolg.

Mfg

Ok, dann habe ich keine weiteren Ideen mehr.

@Jack
Du könntest uns ja auch mal dein Board und Schaltbild zeigen.
Evtl. erkennen wir darauf einen Fehler.

Weil ich hier gerade drüber stolpere. Ich habe vorhin die 2er IDE unter Fedora "installiert". Früher auch schon unter Ubuntu. Das geht im Grunde ganz einfach. Nicht das Software Center etc. verwenden.
Von der Arduino Seite die 2er IDE als App Image runterladen.
Ausführbar machen.
Starten.
Gff. Serial Zugriffsrechte freigeben.
Ich mach das immer genau nach dieser Linux App Image Anleitung .

2 Likes

[OT]

Und nur das.
Das zip entpacken und einfach starten geht nicht.
Mal schnell was ändern ist da nicht mehr. ;(