Debug的一些小技巧和思路
归纳记录一些在debug中用到的小技巧和思路:
1. data、address总线bus上一般有多位bit,经常会出现异常,比如数据不稳定(无规律跳变)、毛刺,可以将总线展开,观察哪一位bit跳变较多。
可以考虑在跳变较多的bit位上增加一个小电容,维持数据稳定,电容容值一般几十PF就行。对于单bit的信号,也可以考虑这个办法来解决毛刺问题。
2. 分析问题时要善于运用工具,多查看出错的现象和每个现象的不同点,利用示波器等工具分析波形。最近项目上遇到一个i2c的问题,有一颗芯片里工作
电流大了之后,i2c通讯就不正常了。通过分析,发现是内部电流大了,干扰也大了。干扰耦合到i2c scl sda 线上,导致通讯出错。但是出错的本质原因没有找到。
后来我们组的老工程师过来查看,根据i2c协议,用示波器抓取各种出错点的波形,最后分析出了出错的本质原因,然后反馈给其他组成员进行了仿真,仿真结果
也复现出了这个现象,确定了出错的地方。
出错的本质原因是内部电流大了,导致低被周期性的抬高,出现上冲脉冲,当上冲脉冲出现在scl的上升沿时,由于地线的抬高,使得内部电路翻转异常,scl在上升沿
过程中又出现了下降沿,导致i2c内部逻辑出错。
未完。。。。。。