I2C作为板级串行数据总线,其规格相对简单,但调试过程中的一些细节问题容易被忽视,产生意想不到的时序错误。写这边文章为了记录我在调试I2C过程中遇到的问题,以便今后查阅并作为经验与大家分享。
使用MCU等SoC芯片中的I2C模块,一般不会出现问题,因为关于I2C的操作时序都经过芯片设计公司封装成功能完好的IP。但通过GPIO来模拟I2C操作时,所有的时序需由用户自己把握,因此,对于I2C的时序和操作要有深刻的认识。以下是使用GPIO模拟I2C调试时需要重点关注的问题:
(2)I2C总线信号引脚上拉。I2C总线空闲时,信号线需处于高电平状态,总线无驱动时由电阻上拉到电源。MCU或其他SoC芯片可以使能内部上拉或使用外部电阻上拉。