linux – Interface Custom USB to CM4 raspberry pi device

I’ve designed a custom board using the Raspberry Pi Compute Module 4.

On the official CM4 IO board, the micro USB interface goes through a multiplexer and then to a USB hub. In my custom design, I removed both the multiplexer and the hub since they are not required for my use case. Instead, I connected the USB signals from the CM4 directly to the micro USB connector.

enter image description here

enter image description here

Notes:

  • The midpoint of the 2.2kΩ / 2.2kΩ divider is connected to USBOTG_ID.
  • This creates ~2.5V from 5V VBUS for OTG detection.
  • D+ and D− are directly routed from connector to CM4.

Questions

  1. Is using a resistor divider from VBUS to drive USBOTG_ID the correct
    approach? Kept it similar to CM4 IO board
  2. Should I add ESD protection (e.g., USB TVS diodes) on D+ / D−?
  3. Are series resistors or controlled impedance routing required on the
    D+ and D− lines for reliable USB operation?

Also, since the USB interface involves 5V on VBUS, will the D+ and D− signals ever reach 5V levels and potentially damage the Raspberry Pi Compute Module 4 USB pins? Goal is to use CM4 as device, to flash image in emmc.

Read more here: Source link