USB

  • usb
  • USB

If the USB D+ pin on an ESP32 module is configured as input with pull-up, why can't an external 10K pull-down fully pull it to GND, and what should be noted?

IO20 is the USB D+ signal pin. In non-USB mode, this pin includes an internal weak pull-up resistor. Because the internal pull-up is much stronger than an external 10K pull-down, the pin voltage is held at a relatively high level by the divider effect instead of being pulled to GND. To resolve this, the internal pull-up must be forcibly disabled through the corresponding register.

// Include the header
#include "soc/usb_serial_jtag_reg.h"
// Clear the register bit to forcibly disable the internal weak pull-up on USB D+
REG_CLR_BIT(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_USB_PAD_ENABLE);
// Configure GPIO
...

Can ESP32-S3 use USB-to-Ethernet to provide wired network access?

The USB interface on ESP32-S3 operates in full-speed mode, with a maximum throughput of about 12 Mbps. It is therefore not suitable for directly attaching a USB-to-Ethernet chip to provide stable wired networking.

If Ethernet connectivity is required for ESP32-S3, an SPI-to-Ethernet solution is recommended instead.