IO口模拟IIC主机的问题
时间:10-02
整理:3721RD
点击:
今天写了一个IO模拟IIC的程序,发现不少问题:
1、主机模拟IIC端口配置成开漏,主机释放SDA后,从机不能将SDA拉到低电平(这时是主机读,而数据刚好是0);SCL上升沿很缓。
2、主机模拟IIC端口配置成推挽,虽然SCL很陡了,但读数据0时电平依然有700mv左右的电平;如果读的时候设成开漏也不行;而且会影响多主机的电平。
3、在主机上显示的数据都是对的,但总觉得不能接受,难道用mcu仿iic不能做得好些,还是我的程序有问题?
也就是我测的700mv没有问题,大家看呢?
1、主机模拟IIC端口配置成开漏,主机释放SDA后,从机不能将SDA拉到低电平(这时是主机读,而数据刚好是0);SCL上升沿很缓。
2、主机模拟IIC端口配置成推挽,虽然SCL很陡了,但读数据0时电平依然有700mv左右的电平;如果读的时候设成开漏也不行;而且会影响多主机的电平。
3、在主机上显示的数据都是对的,但总觉得不能接受,难道用mcu仿iic不能做得好些,还是我的程序有问题?
看了下IIC的规范,其中有低电平和高电平的值:
也就是我测的700mv没有问题,大家看呢?
但总觉得不能接受
SCL需要配置为推挽输出,此时SCL就不需要增加上拉电阻了。
SDA需要配置为双向状态,如果不能配置为双向状态,则MCU向从器件发送时设置为输出状态,在MCU读取时设置为输入状态。
