2026-05-12 3:14 PM
Hi everyone,
I am working on a project using the STM32H753ZI Nucleo-144 board. My goal is to save data to an external USB thumb drive via the CN13 (USB OTG FS) port.
My Environment:
RTOS Stack: ThreadX, NetXDuo (Ethernet is working), USBX (Host/Storage Class), and FileX.
Tools: STM32CubeMX v6.12/6.17 and IAR Embedded Workbench.
Clocking: Using HSI48 for USB, stabilized by the CRS (Source: LSE).
Hardware Configuration:
VBUS: Manually controlled via PD10 (STMPS2141). I have confirmed with a multimeter that 5V is present on the port when the software runs.
VBUS Sensing: Disabled in CubeMX (since I am driving power manually).
USB_OTG_FS Settings:
Mode: Host_Only.
Speed: Full Speed (12 MBit/s).
DMA: Disabled.
Interrupts: USB OTG FS global interrupt enabled (Priority 15).
The Issue: Despite the drive having power, the USBX stack does not seem to trigger the device insertion callback. I suspect the issue lies in the registration of the Host Controller Driver (HCD) or the link between the HAL interrupts and the USBX stack.
What I have implemented so far:
HCD Registration: I am calling ux_host_stack_hcd_register using the controller constant 6U (which corresponds to UX_HCD_STM32_CONTROLLER in my version of the header files).
Interrupts: I have linked the HAL HCD callbacks (HAL_HCD_Connect_Callback, etc.) to the _ux_hcd_stm32_interrupt_handler.
Memory: All USBX memory pools are located in AXI SRAM (DMA is off).
The Question: Is there a specific requirement for the H753ZI when using HSI48 + CRS in Host mode that I might be missing? Specifically, are there known issues with the 6U controller ID for the FS peripheral in the latest Azure RTOS USBX drivers?
Any help or sample initialization code for the H7 Host FS would be greatly appreciated.
Thank you