在嵌入式项目里,I²C(也写作IIC)通信失败是最常见的联调问题之一。现场经常会出现这样的对话:
软件工程师:“初始化都做了,寄存器也按手册配置了,就是读不到数据,是不是硬件有问题?”
如果这时候没有示波器波形和时序认知,排查很容易陷入“软件说没问题、硬件说没问题”的循环甩锅。
真正高效的做法是:先抓波形,再谈责任归属。
因为I²C是典型的时序型接口,很多问题并不发生在代码逻辑,而发生在电气层、上拉、电容负载、地址、ACK/NACK、总线占用等基础环节。
6
在嵌入式项目里,I²C(也写作IIC)通信失败是最常见的联调问题之一。现场经常会出现这样的对话:
软件工程师:“初始化都做了,寄存器也按手册配置了,就是读不到数据,是不是硬件有问题?”
如果这时候没有示波器波形和时序认知,排查很容易陷入“软件说没问题、硬件说没问题”的循环甩锅。
真正高效的做法是:先抓波形,再谈责任归属。
因为I²C是典型的时序型接口,很多问题并不发生在代码逻辑,而发生在电气层、上拉、电容负载、地址、ACK/NACK、总线占用等基础环节。
6