有关用2812的GPIO管脚模拟I2C总线时序的问题

qy7551693   2005-2-19 14:01 楼主
现在的情况是:

  启动I2C总线后,发送器件地址(PCF8576CT,器件地址为70H,SA0,A2/A1/A0接地),后能检测到应答信号,但是接下来发送的数据就不能够检测到应答信号了。SDA管脚始终为1。

  不知到为什么。

  想各位大侠请教了。^_^

回复评论 (2)


用万用表测得SDA和SCL两个信号都是有信号的。

我发送的数据是:

  70H(PCF8576CT的器件地址)、E0H(发送子地址)、48H(工作模式)

  发送70H后测得应答信号是正确的,发送E0H或者48H后就检测不到应答信号。

点赞  2005-2-20 03:04
问题解决了。

原来是发送完一个字节,把SDA置高以后没有及时把SDA信号设置成输入引起的。

所以,2812把SDA置成高电平后,PCF8576CT把SDA给置成低电平,这时管脚测得电压为1.77v,然后2812再把SDA设置成输入模式,这是SDA电平又从1.77V降低到0v,(这时SCL管脚为高电平),对于电压从1.77v变成0v的过程,PCF8576CT可能认为是再次启动I2C总线--不知道这么解释对不对。^_^
点赞  2005-2-22 00:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复