The official Raspberry Pi Compute Module 5 IO board doesn’t include the USB 2.0 path switch IC, which was in its elder brother CM4 IO board. Also, it uses CM5’s own CC control pins for USB Type C port. To make my design compatible with both CM4 and CM5, I integrated an USB 2.0 switch IC in the similar way, but with a little bit different configuration.
Key Features
- Raspberry Pi Compute Module 5 connector, backward compatible with Compute Module 4
- CM5-only features
- CR1220 RTC battery
- 4p fan connector
- Power on/off tactile button switch
- 2 x USB 3.0 ports
- CM4 and CM5 common features
- 2 x USB 2.0 via 4p JST PH connector
- 1 x USB Type C for flashing the CM4/CM5
- 1 x HDMI, via FPC connector
- 1 x 4-lane DSI via FPC connector
- 1 x PCIe via FPC connector, pinout compatible with Raspberry Pi 5’s PCIe
- 40p GPIO connector for Raspberry Pi HAT
- External 5V power supply input solder pads
PCB Design
The board need to have 2 x USB 2.0 ports. So I needed to add an USB 2.0 hub IC and an USB path switch chip, similar to the official Raspberry Pi CM4 IO board. But I needed to modify it to use an USB Type-C port and use CC control pins of CM5. The elder CM4 series modules didn’t have CC control pins. Thus, I also added DNP resistors, where I can solder 5.1K resistors for using CM4 on this board.
The official Raspberry CM4 IO board used VBUS to automatically switch the OTG config via USB_OTG_ID pin. But on my design, +5V line may be supplied from external power source. It means I should use 5A rated ideal diode. But the requirements was only using USB 2.0 as normal Host, instead of standard USB OTG compatible port. As we anyway need BOOT button to set the compute module into flashing mode, I decided to use a DPDT slide switch instead of tactile boot button. In this way, I could manage setting BOOT and OTG_ID flags using a single switch sliding.
- Designed in EasyEDA Pro
- Prototyped by JLCPCB (in progress)