iamseer 发表于 2022-11-27 11:08:24

求问软件模拟I2C从机,忽略停止位检测问题大不大?

我这边尝试用CH552模拟I2C从机。但是问题是这个片子的外部中断和GPIO中断都只支持低电平或者是下降沿出发。还好T2EX可以配置成任意边沿。这样用T2中断至少可以检测时钟的上升下降沿,好读取数据。



模拟的程序我只做了简单的测试:把SCL挂到T2EX上检测上升下降沿,计数脉冲并读取数据。SDA挂到GPIO中断,检测起始信号。目前能正常读取地址并发送ACK。之后的内容还没开始写。由于受限于硬件,我还没发现很好的检测停止位的办法。请问各位网友如果做过类似工作,如果不检测停止位,只是在ACK之后释放SDA。等待下个起始信号,这样实现会不会有什么问题?

矩阵时间 发表于 2022-11-28 08:52:10

停止位这个地方的先后高电平,直接读引脚输入状态的话,就要一个大于 SCL 速率两倍的时钟来采样。如果帧是定长的话,只检测空闲状态,我想也可以了
页: [1]
查看完整版本: 求问软件模拟I2C从机,忽略停止位检测问题大不大?