ESP32-S3-WROOM-1 loses CDC serial port when starting SPI
Posted: Mon May 15, 2023 7:04 pm
Hi,
I've created a custom board using an ESP32-S3-WROOM-1 which is connected to a Wiznet W6100 chip over SPI. The ESP32S3 is connected to USB over pins 13/14 (GPIO19/GPIO20). I can flash the chip without problems.
The W6100 in SPI mode is connected to the following pins:
18 (GPIO10): chip select
19 (GPIO11): MOSI
20 (GPIO12): SCLK
21 (GPIO13): MISO
Every time I try to connect to the SPI device, the ESP32S3 loses its serial connection. Rebooting in the bootloader restores the connection. Changing the pins to input / output manually gives the same result.
Simplest version which crashes right after
My platformio project:
and the board definition:
Does anyone have a clue what could cause this?
I've created a custom board using an ESP32-S3-WROOM-1 which is connected to a Wiznet W6100 chip over SPI. The ESP32S3 is connected to USB over pins 13/14 (GPIO19/GPIO20). I can flash the chip without problems.
The W6100 in SPI mode is connected to the following pins:
18 (GPIO10): chip select
19 (GPIO11): MOSI
20 (GPIO12): SCLK
21 (GPIO13): MISO
Every time I try to connect to the SPI device, the ESP32S3 loses its serial connection. Rebooting in the bootloader restores the connection. Changing the pins to input / output manually gives the same result.
Simplest version which crashes right after
- Serial.println("Setting VSPI_SCK"):
- #include <Arduino.h>
- #include <SPI.h>
- #define VSPI_SCK 19
- #define VSPI_MISO 21
- #define VSPI_MOSI 20
- #define VSPI_SS 18
- void setup() {
- Serial.begin(115200);
- Serial.println("Starting");
- Serial.println("Setting VSPI_SS");
- pinMode(VSPI_SS, OUTPUT); //HSPI SS
- Serial.println("Setting VSPI_SCK");
- delay(1000);
- pinMode(VSPI_SCK, OUTPUT); //HSPI SS
- Serial.println("Setting VSPI_MISO");
- delay(1000);
- pinMode(VSPI_MISO, INPUT); //HSPI SS
- Serial.println("Setting SS");
- delay(1000);
- pinMode(VSPI_MISO, OUTPUT); //HSPI SS
- Serial.println("Init ethernet");
- }
- void loop() {}
- [env:esp32-s3-custom]
- platform = espressif32
- board = custom_pcb
- board_build.arduino.memory_type = dio_opi
- framework = arduino
- monitor_speed = 115200
- build_flags =
- -D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC
- -D USBCON
- -DCORE_DEBUG_LEVEL=5
- -DBOARD_HAS_PSRAM
- -mfix-esp32-psram-cache-issue
- lib_ldf_mode = deep+
- lib_deps =
- https://github.com/WIZnet-ArduinoEthernet/Ethernet.git
- adafruit/Adafruit NeoPixel@^1.11.0
- {
- "build": {
- "arduino": {
- "ldscript": "esp32s3_out.ld",
- "partitions": "default_8MB.csv",
- "memory_type": "qio_opi"
- },
- "core": "esp32",
- "extra_flags": [
- "-DBOARD_HAS_PSRAM",
- "-DARDUINO_USB_MODE=1",
- "-DARDUINO_USB_CDC_ON_BOOT=1"
- ],
- "f_cpu": "240000000L",
- "f_flash": "80000000L",
- "flash_mode": "qio",
- "hwids": [
- [
- "0x303A",
- "0x1001"
- ]
- ],
- "mcu": "esp32s3",
- "variant": "esp32s3"
- },
- "connectivity": [
- "wifi"
- ],
- "debug": {
- "openocd_target": "esp32s3.cfg"
- },
- "frameworks": [
- "arduino",
- "espidf"
- ],
- "name": "custom_pcb",
- "upload": {
- "flash_size": "8MB",
- "maximum_ram_size": 327680,
- "maximum_size": 16777216,
- "use_1200bps_touch": true,
- "wait_for_upload_port": true,
- "require_upload_port": true,
- "speed": 460800
- },
- "url": "https://www.google.nl",
- "vendor": "ME"
- }