调USB驱动最容易走弯路的地方,就是一上来死磕示波器看波形。其实USB的D+ D-是差分高速信号,示波器能帮你的有限。这篇记Cadence USB2.0 Controller和PHY IP移植时的几个真实排查点。

先认清现实:USB寄存器几百个、协议栈很复杂,想一个人从头写USB驱动不现实,最实际的路子是拿厂商驱动源码移植修改。调试时示波器作用很小,因为D+ D-是差分高速信号。
第一检查点永远是电源电压。最好标准5V,最差也要在4.8到5.2V之间,电压不对,很多设备工作就是不正常。这一步别省。

握手阶段示波器还能派点用场。一开始握手失败,可以量D+ D-:D+一开始是3.3V高,握手时降到1V,握手成功后D+ D-都降到500mV左右。握手之后的通讯信号,示波器就排不上用场了,得用USB协议分析仪抓包分析。
踩过的坑:最早调不通USB,抱着示波器看了半天通讯波形,其实那是差分高速信号,根本看不清。后来先量电源电压,发现只有4.5V,换了供电就通了。记住顺序:先电源、再看握手D+电平、最后才上协议分析仪,别一上来就抓通讯码流。











