我在 STM32F207和407 上使用 ULPI PHY。该设备仅作为 USB 从设备,可以工作在 USB 全速模式,但无法工作在高速模式。部分符合 ULPI 标准的 PHY 可以正常工作,另一些则不行。
通过逻辑分析仪观测 ULPI 总线与 USB 信号线状态:在 USB 复位阶段,STM32 会配置 PHY 的功能控制寄存器,使 PHY 输出 Chirp‑K 信号,设备支持高速模式。但实际上 Chirp‑K 信号没有产生,枚举过程回退到全速模式。此时 DP 电平被拉到 1.6V,DM 为 0V,而非输出 Chirp‑K。
猜测USB 内核会自动置位 PHY 功能控制寄存器的 LPM 位(第 7 位)。现象表明不支持 LPM 的 PHY 会忽略该位,可以正常工作;支持 LPM 的 PHY 则会出现故障。
是否有办法让 STM32F 系列芯片不设置 ULPI PHY 功能控制寄存器中的 LPM 位?按理应该存在该控制手段,但参考手册中没有相关文档说明。
哪些 PHY 可以正常工作、哪些无法工作?
|
|