AT24C256写不进去

2019-07-20 02:05发布

---------------------------------
回复【12楼】DADONG:
---------------------------------

关于地址,说个道理,自己就可以总结出来:

操作存储器,不论读或写,都需要指明目的字节的地址;
不同容量,地址的位数不同。比如2402是256字节,需要8位地址;24C16是2048字节,需要11位地址;容量越大,地址位数越多。

地址靠的是两个字节来表示:DEVICE ADDRESS 和之后的 WORD ADDRESS。
DEVICE ADDRESS中的5位有固定用途,剩下3位可以作为地址位使用,和后面的WORD ADDRESS拼起来,最长11位。
容量在2048字节以内的芯片,11位地址就足够了。

那么,容量再大,怎么办?
只好再增加一个字节,一共 11 + 8 =19位。这样,容量大到512K,都可以照顾到。

道理上说,制定协议的时候,可以只增加1位、2位、3位等,同样能达到目的,
但协议就显得有点乱,用户程序的兼容性也不好。所以,厂家索性一次增加8位。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
zzsj1990
1楼-- · 2019-07-22 22:02
 精彩回答 2  元偷偷看……
单井老头
2楼-- · 2019-07-23 02:45
I2C脚初始化的时候,SCL设为PP,SDA设为OD
lui515520
3楼-- · 2019-07-23 06:03
这个IIC例程有点挑芯片:ATLML原厂芯片AT24C02B可以正常读写,如果换成ATLML原厂芯片AT24C02C,就不能读写成功了,请原子看一下是什么问题,谢谢了~
流逝
4楼-- · 2019-07-23 09:41
 精彩回答 2  元偷偷看……
qiubo2000
5楼-- · 2019-07-23 13:12
我用原子哥的程序读写我的24c128可以的

一周热门 更多>