4 ms·
Huh, I wonder why these have the same old CHG USB-Serial chip on them. The C3 has a built-in serial (and JTAG) USB interface. Maybe the software support isn't t
by azdle 5y ago
Huh, I wonder why these have the same old CHG USB-Serial chip on them. The C3 has a built-in serial (and JTAG) USB interface. Maybe the software support isn't there yet?
- pantalaimon 5y agoThe USB-Serial chip still works when your software on the main CPU (that runs the USB stack) has crashed
- mmoskal 5y agoTo re-flash it you have to reset while holding the GPIO0 down - this starts the ROM bootloader with USB. At least this is how ESP32-S2 works.
- azdle 5y agoSure, but (not actually knowing how the integrated controller works) I don't see why the hardware one couldn't do that too, especially since it seems to only be build to support CDC (serial) and JTAG. Are you sure that the integrated one doesn't? It just seems like an odd thing to leave out.
- pantalaimon 5y agoI'm not following, there is only one CPU: It has to run your application and 'operating system' (usb stack, Wifi if used). Usually those MCUs don't have much memory protection, so when your app crashes down goes the whole thing. Writing UART is usually just writing data to a single register, fire and forget. This will still work if everything else is burning. (unless you screwed with the clocks) Now USB on the other hand is a complex best, you have to keep state and do two way communication. If you corrupted your memory, you won't be able to get a debug message out over USB.
- Sprite_tm 5y agoEspressif guy here: Actually, unless the crash is so bad that it triggers a RTC watchdog or manages to mess up with clocks somehow, the C3 USB thing will also stay active if your program crashes. Unlike the USB in e.g. the ESP32S2, this is a hardware implementation that is more like we took an external usb-to-serial implementation and integrated it into the ESP32C3 silicon.