X1226 和 AT24C16 地址冲突问题

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

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

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

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

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

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

扫描二维码关注公众号,回复: 5516572 查看本文章

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

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

猜你喜欢

转载自www.cnblogs.com/xklzw/p/10521820.html