驱动调试是要硬件相关的,经常要使用万用表,示波器,甚至逻辑分析仪检查问题。
1,电源电压和电流要符合datasheet的规定范围,要多动手测试,特别是硬件刚刚准备开始调试的时候,电源要放在第一位。
2,时钟要符合要求,工作频率和电平都要符合要求,幅度不能够过低或者过高,特别是不能够过低,否则不能够正常工作。
3,复位电路是否正常,包括复位电平和复位的时间是否达到datasheet的要求。
4,I2C或者UART,SPI等等接口两边是否电平匹配。比如HDQ设备的数据信号到cpu之间串联连接了200欧姆的电阻,CPU的GPIO有4.7K的上拉电阻,结果HDQ芯片发送低电平的时候,由于200欧姆的电阻和4.7K的电阻分压,到cpu只有(0.2/4.7)×1.8 = 0.77V,高电平1.8V,但是cpu的逻辑低电平是0.3×1.8=0.54V,cpu不能够识别低电平,通信就会出错。后来将串联电阻改为100欧姆,低电平为0.1/4.7 ×1.8=0.385V,满足cpu的电平,工作就正常了。
5,通信的GPIO口驱动电路是否够,特别是频率比较高的信号,比如LCD的PCLK等等。
6,I2C地址的表示是7位还是8位,不要搞混。
7,上电时序是否正确,比如I2c器件驱动,如果要在驱动probe对设备的电源打开,不能够打开电源就马上对芯片读写I2C操作,要打开电源后延迟100毫秒,保证电源稳定后再进行I2C的操作。否则回发生I2C错误。