xklzw

导航

 

这几天开发eeprom功能的时候,利用单片机的I2C接口访问AT24C16.遇到一个问题:

发现AT24C16的最后一页写不进去.表现为写任何值后,再读取都是0.

经过几天的排查,发现是应为在I2C总线上还挂了一个时钟芯片X1226 ,它与AT24c16在高区间会有地址冲突的问题.

关于AT24C16的详细介绍,见文献:https://blog.csdn.net/liukais/article/details/85944645

 

下图是X1226时钟芯片的当前地址读时序.

 

 

下图是AT24C16的当前地址读时序,

可见,当访问AT24C16的高地址(最后一页),其device address 将变为 1010 111x, 这和X1226的device address(slave addre) 1xxx 111x 产生冲突!

解决办法,由于暂时不用X1226,将其从pcb拿掉,问题解决!

 

posted on 2019-03-13 11:12  杨康佳  阅读(502)  评论(0编辑  收藏  举报