i2c 电压不匹配造成的读写问题

来源:互联网 发布:windows logo 编辑:程序博客网 时间:2024/06/02 21:19

今天开始测试V2芯片的I2C控制器,代码还是以前的测试V1的代码,因为I2C控制器本身没有什么变化,所以就直接用以前的代码开始测试。

测试方式依然是使用24C02B  EEPROM作为从设备进行读写。

连接好管脚后发现无法读取数据,总是提示从设备不响应。用示波器测量SCL和SDA发现有信号发出。说明I2C控制器是能够发送数据的。

I2C控制器的IO电压为1.8V,而此次连接中将EEPROM的供电连接到了5V电压上,这样是否会导致EEPROM采样的参考电压识别不到总线上的1.8v电压?怀疑下。

所以将EEPROM的供电改为1.8V,以便和总线上的电压匹配。反正EEPROM的工作电压可以是1.8V~6V。

果然,现在可以读到EEPROM中的数据了!

但是却发现向EEPROM中写入的时候依然会有问题,当第一个page完成后写第二个page时一定会出现从设备无响应的状态。为什么只能写一个呢?我猜可能是一个page的数据发送过去后,EEPROM的内部逻辑就开始进行实际的写入动作,在此期间就可能无法响应外界新的寻址动作,也就是延时的问题。这么推测下,没有时间去试了。因为我想也可能是因为EEPROM的工作电压太低了,写入动作就变慢了而导致了问题,所以我可以试试稍微提高了EEPROM的工作电压试试看。

这次使用2.8V给EEPROM供电。

读写都正常了!

这里只是测试,在实际的的产品中我们真的这种总线上的电瓶不匹配的问题都应该采用电瓶转换器件来作为桥梁,如果像我这样直接相连的话可能会有潜在隐患。

原创粉丝点击