|
STM32H743IIT6 外接usb3300 引脚配置 PI11 ------> USB_OTG_HS_ULPI_DIR PC0 ------> USB_OTG_HS_ULPI_STP PH4 ------> USB_OTG_HS_ULPI_NXT PA3 ------> USB_OTG_HS_ULPI_D0 PA5 ------> USB_OTG_HS_ULPI_CK PB0 ------> USB_OTG_HS_ULPI_D1 PB1 ------> USB_OTG_HS_ULPI_D2 PB10 ------> USB_OTG_HS_ULPI_D3 PB11 ------> USB_OTG_HS_ULPI_D4 PB12 ------> USB_OTG_HS_ULPI_D5 PB13 ------> USB_OTG_HS_ULPI_D6 PB5 ------> USB_OTG_HS_ULPI_D7 枚举通不过,OTG_HS_ULPI 这个配置是否有问题 |
DMAMUX 使用内部外设Request Event(不使用TIM12和LPTIM)
STM32H747XG下载一次仿真器就检测不到,运行不能正常
——STM32H747XG下载一次仿真器就检测不到,运行不能正常 原理图是否有问
STM32H7开发LWIP时遇到的问题
STM32H7 UART 使用、HAL 代码分析和实际遇到的问题
STM32H750 FFT 时间太长
[ZEPHYR]SDMMC2 Clock Initialization Failure on M4 Core (PLL2R Frequency Mismatch) 問題詢問
OV5640 JPEG帧头和帧尾读取错误,无法找到FFD8和FFD9
问题解决,自己吓自己了
又有问题了,在尝试H7板子DA操作,但是DA按钮是灰色的咋回事
微信公众号
手机版
你贴的引脚顺序基本正确,但 STM32H743 的 ULPI 总线对「Alternate-function 编号」和「IO 速度/上下拉」都有硬性要求,任何一项配错都会导致 HS-OTG 无法完成复位、握手,从而枚举失败。下面把最容易踩坑的几点一次性列出来,请逐条核对:
Alternate-function 必须统一为 AF10 所有 ULPI 引脚(D0…D7、DIR、STP、NXT、CK)都要把 GPIOx_AFR 寄存器设为 AF10,而不是 AF0 或其他。CubeMX 里如果手动改过一次引脚,AF 号会被复位成 0,很多人这里翻船。
IO 速度一定要配到「Very High」 48 MHz 的 ULPI 时钟对上升/下降沿要求很高,把 GPIO_OSPEEDR 设成 LOW/MEDIUM 后,数据采样窗口不够,直接表现为「设备能复位但拿不到 Device-Descriptor」。
禁止内部上下拉 USB3300 自己带 50 kΩ 左右下拉,STM32 内部再给个 40 kΩ 上拉会把电平拉到 1.5 V 区间,导致主机判断成「设备已断开」。把 GPIO_PUPDR 全部设成 NOPULL。
时钟树里 OTG_HS 必须打开并选「ULPI」 在 CubeMX “Middleware → USB_OTG” 里 Mode 选 “Host_Only / Device_Only / OTG” 都行,但下方 PHY 一定选 “External ULPI”,否则库代码不会初始化 ULPI 状态机。
USB3300 的复位脚(RESETB,pin9)不能一直接地 原理图常见笔误:把 RESETB 直接拉到 GND,芯片永远处于复位态。正确做法是:
参考设计对电源去耦很敏感 按 USB3300 手册,VDDA1.8(pin29)必须 10 µF + 0.1 µF 到地,VDD3.3 每个引脚都要 0.1 µF;如果 1.8 V 电源走线过长,ULPI 时钟抖动会大到通讯失败
。
确认你用的封装真的引出 OTG_HS LQFP100 的 H750 只有 OTG_FS,HS 只存在于 LQFP144/176 等封装;虽然你用的是 H743IIT6(LQFP144),但经常有人把封装看错,结果 OTG_HS 实际没引出来。
把以上 7 点全部检查一遍,90% 的「枚举不过」都能解决。如果还有问题,用示波器抓 ULPI_DIR、ULPI_CK 和 D0,看设备插入后有没有出现连续 48 MHz 突发数据,没有的话多半是时钟/复位/AF 的问题。
[md]用的是176脚的封装,逐一检查都是正常的,操作(void)USBH_LL_ResetPort(phost);,返回OK,示波器看D+ 时始终为高电平,没有变化,枚举一直返回USBH_BUSY