打印
[信息]

关于AT24CXX器件地址的问题,帮忙指点下

[复制链接]
258|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2021-3-22 14:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
uint8_t at24cxx_ReadOneByte(uint16_t addr)
{
        uint8_t temp;
        i2c_Start();

        if( EE_TYPE > AT24C016 ) //双字节地址
        {
                i2c_SendByte(0xA0);
                i2c_WaitAck();
                i2c_SendByte(addr>>8);  //发送数据地址高位
               
               
        }
        else     //单字节地址                              
        {                                       
                i2c_SendByte(0xA0+((addr/256)<<1);  //器件地址+数据地址
        }                                                                                
        i2c_WaitAck();
        i2c_SendByte(addr%256);         //数据地址低8位地址
        i2c_WaitAck();


        i2c_Start();
        i2c_SendByte(0xA1); //
        i2c_WaitAck();

        temp = i2c_ReadByte(0);//
         i2c_Stop();

         return temp;
}


假设以AT24C16为例,读的流程应该是
开始
发送器件地址i2c_SendByte(0xA0+((addr/256)<<1);  //器件地址+数据地址,为什么多加了一个数据地址
应该是响应完才发啊?
AT24C16的器件地址就是固定的A0 ?

AT24C08的器件地址就是固定A0 或者A8?




资料上说AT24C16的P0 P1 P2三位没有用作器件地址,用作data word address

,如果这3位接地,那么字地址的高三位就是固定的000?

[url=] [/url]0


QQ图片20150327112832.png (43.78 KB, 下载次数: 38)






[url=] [/url]



使用特权

评论回复
沙发
walton1226| | 2021-3-22 15:37 | 只看该作者
i2c_SendByte(0xA0+((addr/256)<<1);  //器件地址+数据地址

if(addr<0x100)器件地址+数据地址=0xA0,即访问00~FF 地址空间用0xA0
else if((addr>=0x100)&&(addr<0x200))器件地址+数据地址=0xA2,即访问100~1FF 地址空间用0xA2
else if((addr>=0x200)&&(addr<0x300))器件地址+数据地址=0xA4,即访问200~2FF 地址空间用0xA4
else if((addr>=0x300)&&(addr<0x400))器件地址+数据地址=0xA6,即访问300~3FF 地址空间用0xA6
else if((addr>=0x400)&&(addr<0x500))器件地址+数据地址=0xA8,即访问400~4FF 地址空间用0xA8
else if((addr>=0x500)&&(addr<0x600))器件地址+数据地址=0xAA,即访问500~5FF 地址空间用0xAA
else if((addr>=0x600)&&(addr<0x700))器件地址+数据地址=0xAC,即访问600~6FF 地址空间用0xAC
else if((addr>=0x700)&&(addr<0x800))器件地址+数据地址=0xAE,即访问700~7FF 地址空间用0xAE

使用特权

评论回复
板凳
文句子| | 2021-3-22 23:18 | 只看该作者
本帖最后由 文句子 于 2021-3-22 23:23 编辑

Ax表示硬件引脚地址Px表示页地址(多数时候可看做后面addr无法表示的更高一位)
对于某一型号器件,当规格书中使用Px代替Ax,这意味着被替代Ax就不再有原来的控制意义了(器件的可级联数也会相应减少)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1416

主题

3911

帖子

6

粉丝