记一次芯片休眠调试

2019-07-14 01:15发布

          先说调试环境,芯片在休眠时断电,在唤醒时需要重新通过i2c和spi发一下配置。刚开始的时候,通过打印知道i2c写进去和读出来的不一致,测量芯片休眠的电压,有0.8V。怀疑是芯片没完全断电造成的,故修改了一下电源,这时,芯片芯片断电时所有的引脚电压都是0V。但i2c通信还是失败。硬件的同事建议在芯片休眠起来后,通过io口去复位芯片,然后再发配置,i2c通信依然不成功。但芯片刚开机时,发配置是成功的,休眠后发配置不成功,对比两者的差异,发现有几个全局变量在休眠起来后没有重新初始化,导致i2c通信的接口不同,修改后,i2c通信成功了,但spi通信依然失败。测量spi的波形发现,休眠前spi是字节高位先传输,休眠后spi是字节低位先传输,发现问题就好办了,找该平台的spi的控制器驱动看看,在休眠起来后重新设置一下spi的传输模式就可以了。