2026-05-08 1:37 AM - last edited on 2026-05-08 1:45 AM by Andrew Neil
Environment:
- MCU: STM32H743IITx
- USB PHY: USB3300 (ULPI, external HS PHY)
- HAL version: STM32CubeH7 v1.11.6
- Mode: USB Host, HS, ISOC transfer (UVC camera)
- HFIR: 7500 (manually set for 60MHz PHY clock)
Problem:
HPRT.PENA is cleared by hardware at exactly HFNUM=16383 (14-bit frame
counter maximum, about to roll over to 0). HPRT value at the moment of
HAL_HCD_PortDisabled_Callback: 0x00001409.
Key observations:
1. PCSTS=1 at the time of the event — device is still physically connected
2. This happens 100% reproducibly at frame 16383, never at any other frame
3. Without SDRAM (FMC) and LTDC active, the issue does not occur for 1.5+ hours
4. With SDRAM only: occurs after ~7 minutes
5. With SDRAM + LTDC (framebuffer in SDRAM): occurs within seconds
6. Temporarily shorting USB3300 VCC to GND with a probe (adding bypass
capacitance) eliminated the issue for 50+ minutes — suggesting power
supply noise is a contributing factor, but the frame=16383 correlation
is too precise to be purely noise-driven
Question:
Is there a known hardware behavior or errata in STM32H743 USB OTG HS
where the 14-bit HFNUM counter rollover (16383→0) can trigger a spurious
PENCHNG interrupt and clear PENA, even when the USB device remains
physically connected?