标题: 单片机读写AT24C32高地址位和低地址位问题 [打印本页]

作者: zhengaohui    时间: 2018-12-12 19:30
标题: 单片机读写AT24C32高地址位和低地址位问题
我的ds3231+24c32,比如秒的地址是01h,可是EEPROM 24c32的读写需要高地址位和低地址位,这应该咋办啊,把01拆开了?第一次发送高0000,第二次发送低0001???是这样吗

作者: HC6800-ES-V2.0    时间: 2018-12-13 08:33
24C32的地址,是两个8位,共有4095个存贮单元。
4095=0xFFF,所以,你存贮的地址,应该由你自己确定,例如:我想将秒的值(注意是值,不是地址哦),存贮到0x00ff这个单元中,那么,地址就是:高位0x00,低位0xff。
当然,你也可以将秒的地址存贮到那个单元中,好像没什么意义吧。
作者: zhengaohui    时间: 2018-12-13 09:41
HC6800-ES-V2.0 发表于 2018-12-13 08:33
24C32的地址,是两个8位,共有4095个存贮单元。
4095=0xFFF,所以,你存贮的地址,应该由你自己确定,例如 ...

学习到了谢谢
作者: phang    时间: 2018-12-13 13:46
24c32 ,32指的是32Kb,即32*1024bit,即32*1024 / 8 B     (B=Byte,字节;b=bit,位;1字节=8位)

即24c32里面可以存储4096个字节,即4K个字节。

这样说的很清晰了吧。

然后你说存放的地址问题,一开始我觉得奇怪,为什么有高低地址分别发送的概念,原来我之前用的是24c02,顺便一块说。
这是有点和“寻址”相关的意思,如当使用24c02(256B),地址只使用8位去发送,那么8位可以包括的地址范围为“0-256”,可以用。
当使用24c32(4096B),如果只用8位去发送地址,那么在256以后的地址就指不到了,就不能操作了,所以使用16位去传递你要操作的地址(2^16 = 65536)
贴主你问的地址在0x01甚至后一些,都体现不出为什么要使用两个字节去传送地址,如前面所说,当你需要读写24c32中第256后面的数据时,就明白了。
最后,地址分两个字节发送,是先发送“高8位”,然后发送“低8位”,那么,你操作的“0x01”地址,在操作时,要理解成 0x00 01,高字节为0,低字节为1。

纯手动哦,希望能帮到贴主。
作者: zhengaohui    时间: 2018-12-13 14:54
phang 发表于 2018-12-13 13:46
24c32 ,32指的是32Kb,即32*1024bit,即32*1024 / 8 B     (B=Byte,字节;b=bit,位;1字节=8位)

即 ...

学到了谢谢

作者: dhy1405    时间: 2019-9-3 22:52
我买的也是这个模块,我想问一下,2432和3231是不是用一组SCL SDA就行了,多出来的SDA SCL要不要接啊?2432的器件地址是多少啊,店家说0X57,和芯片手册对不上啊。
作者: bboroo    时间: 2020-1-30 20:26
dhy1405 发表于 2019-9-3 22:52
我买的也是这个模块,我想问一下,2432和3231是不是用一组SCL SDA就行了,多出来的SDA SCL要不要接啊?2432 ...

3231和24c32应该用的是不同的地址,通过不同地址来访问就行了吧。这个模块我也买了,不过还没研究,而且单独买一个3231芯片好像还贵一些,估计这些3231都是拆机的,精度是个疑问。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1