2024-01-17 06:02 AM
Hi,
i need to build a system that has two physical USB ports:
- USB-Host: Type-A USB2.0 HID device to connect an external Midi-controller
- USB-Device: Type-C USB2.0 or USB3.x to act as a multi-channel audio sound card, and also HID device (MIDI controller) at the same time
- Fast CPU to perform audio DSP, STM32H7 with 480 or 550MHz would be fine.
- Micro SD card connector
I can not find a way to setup an STM32H7 in CubeMX to have two physical USB ports, as there is only one USB_OTG_HS peripheral available. Did i overlook something here?
I prefer programming in C/C++ on the bare metal CPU and not using RTOS or embedded Linux. I was thinking of using an STM32MP135DAGx instead of the STM32H7 and program it bare metal, but this would require to interface an external FLASH and maybe also a DDR RAM, which i have never done before. I suppose at least a FLASH is necessary?
Looking forward to any suggestions :)
2024-01-17 07:06 AM
USB2.0 is a specification which covers both Full-speed and High-speed transfers (as well as Low-speed, too), so it's not useful if you want to specify the transfer speeds.
While the two-USB-port capable STM32 (including some 'H7) indeed tend to have only one HS-capable USB module (which except for 'F723 requires an external ULPI-connected USB-HS PHY), I don't think the MIDI controller would require HS, so for the Host, I'd use the FS-capable USB module. Correct me if I'm wrong.
JW