IIC调试心得——基于ADuC7023(ARMV4架构)
以下调试均在外部IIC Master通信正常的情况下,进行的ADuC7023 IIC Slave&Master侧调试。
且仅列出我在调试中踩过的坑和我想到可能有的坑。
基本通信——从机侧
- 无波形
- 供电正常?
- IIC线可能被拉死,Master无法驱动(测试方法:断掉与Slave的连接观察Master波形;将Slave IIC设置为IO模式,看能否拉高拉低IO)
- Slave侧是否有特殊的兼容设计(一开始我调试的Demo板上就有个短接开关)
- 有波形
- 无ACK:
- Device address和IIC Master不匹配
- IIC模式未开启
- 检查IIC Tx IRQ、Rx IRQ、STOP IRQ、RSTART IRQ是否正常开启
- Slave侧IO驱动能力不足
- 有ACK:
- ACK之后的数据有规则,非乱码 -> 通信基本成功,需要查看传入的数据
- ACK之后数据全高/低,或无规则 ->高电平电压不达标; ADuC7023的速率实现问题。
- 无ACK:
基本通信——主机侧
因为先调试了从机,主机侧遇到的困难参考了从机解决。需要注意的是时钟线占空比最好是50%(例程中非50%)。
速率100kHz和