OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3695|回复: 5

AT24C08的问题,求证一下。

[复制链接]

56

主题

520

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2014-11-18
在线时间
160 小时
发表于 2016-7-22 17:18:59 | 显示全部楼层 |阅读模式
30金钱
本帖最后由 aiyeba 于 2016-7-22 19:54 编辑

之前一直是用的c02,所以也没有想到那么多,现在出现c08,而且存入的东西超过256了


于是涉及到了page,我看了原子哥的代码,好像是写了一写兼容的,比如
                                                                                                                              
      IIC_Start();  
        if(EE_TYPE>AT24C16)
        {
                IIC_Send_Byte(0XA0);         
                IIC_Wait_Ack();
                IIC_Send_Byte(ReadAddr>>8);
                IIC_Wait_Ack();                 
        }else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   

        IIC_Wait_Ack();
    IIC_Send_Byte(ReadAddr%256);  
        IIC_Wait_Ack();            
        IIC_Start();                     
        IIC_Send_Byte(0XA1);                             
        IIC_Wait_Ack();         
    temp=IIC_Read_Byte(0);                  
    IIC_Stop();   
        return temp;


但是没有看到 页的操作啊,求指点。



最佳答案

查看完整内容[请看2#楼]

好吧,我记错了,超过1页的A0-A2的地址线会变少,相对应的传高地址的命令中,对应A0-A2的位数也变少,腾出位数来选页 A9,A8应该就是选页的
自己选择的路,成家前走完。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-7-22 17:19:00 | 显示全部楼层
aiyeba 发表于 2016-7-23 10:47
A0  到A2  那几个是选外设的    就是一根总线上面能接多少个EEPROM   感觉你搞错了

页选 是程序里面来 ...

好吧,我记错了,超过1页的A0-A2的地址线会变少,相对应的传高地址的命令中,对应A0-A2的位数也变少,腾出位数来选页
A9,A8应该就是选页的
L1_$EZ}~51Q$AM0GYCI]D2J.png
回复

使用道具 举报

56

主题

520

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2014-11-18
在线时间
160 小时
 楼主| 发表于 2016-7-22 20:20:36 | 显示全部楼层
本帖最后由 aiyeba 于 2016-7-29 09:00 编辑

解决了,玩了这么久的EEPROM,现在是真的全部搞懂了。
先向EEPROM的寄存器发送数据 这个是寄存器是管控制的

8位寄存器 高四位固定的1010 所以是0xA0,A0 A1  那些是用来选择外设地址的
多数情况下面IIC总线上面接俩个EEPROM的时候才会齐作用,一般情况下是接地。

而P0那个是用来控制页的 ,c02只有一页,所以是没有P0控制的  

256个字节为一页,原子哥巧妙地利用了取模的算法。

Addr/256   得到的是页地址   然后Address%256是那页的偏移地址。

举个例子:我用的C08  A2接的是高电平  那么在第1次发送的命令是 0xA0+0x80+Addr/256;
自己选择的路,成家前走完。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11544
金钱
11544
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-7-22 22:38:05 | 显示全部楼层

我一直按地址写,
根本不管页的问题。


回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-7-23 10:03:55 | 显示全部楼层
首先,你字体弄这么大,我们看得有辛苦的,超过1页的,C02有3个引脚(好像是3个)是接地的,所以他的地址0,超过一页后,那三个引脚就不全是可以固定接地或者拉高了,他们有选页的作用
回复

使用道具 举报

56

主题

520

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2014-11-18
在线时间
160 小时
 楼主| 发表于 2016-7-23 10:47:34 | 显示全部楼层
憨厚诚实大叔 发表于 2016-7-23 10:03
首先,你字体弄这么大,我们看得有辛苦的,超过1页的,C02有3个引脚(好像是3个)是接地的,所以他的地址0 ...

A0  到A2  那几个是选外设的    就是一根总线上面能接多少个EEPROM   感觉你搞错了

页选 是程序里面来决定的    ADDR/256就是用来选页的    当然最低位控制读写  所以要
(ADDR/256)<<1  
自己选择的路,成家前走完。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 08:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表