请选择 进入手机版 | 继续访问电脑版

EEPROM CAT24CXX实现分页读、写数据

[复制链接]
蝶蝶已蝶已蝶蝶 发表于 2021-1-3 12:07:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
目次

1、CAT24CXX分页读、写数据原理
2、代码实现
克日驱动CAT24C08时遇到这样一个问题:
通常设置数据写入到EEPROM,256个字节根本可满意需求,最近做的一个项目数据量较大,且不确定以后时候还需要增加生存的数据。所以计划使用分页读、写数据,使差异范例的设置数据空间较大一些。
本项目EEPROM地点使用如下所示:


  • 设置1数据:0Byte~1000Byte;
  • 设置2数据:1001Byte~1100Byte;
  • 设置3数据:1101Byte~1200Byte;
  • 设置4数据:1201Byte~1300Byte。
这样该如何实现呢?
1、CAT24CXX分页读、写数据原理

本博文以CAT24C08为例举行解说。
如何实现CAT24C08分页读、写数据,datasheet中有说明很清楚。




CAT24C08,共有8KB的存储空间,可通过A2、a9和a8,来选择设备地点区域,也就是
=8个地点区域,每个地点区域有64页,每页16个字节, 故:64X16X8=8192B,也就是8KB。
A2、a9和a8选择地点区域,数值范围如下表所示:
A2a9a8 
000地点区域0
001地点区域1
010地点区域2
011地点区域3
100地点区域4
101地点区域5
110地点区域6
111地点区域7
所以,可将设置数据按照以下地点块分配:
地点区域0     

  • 设置1数据:0Byte~1000Byte
地点区域1     

  • 设置2数据:1001Byte~1100Byte
  • 设置3数据:1101Byte~1200Byte
  • 设置4数据:1201Byte~1300Byte
2、代码实现

本代码驱动过程并没有什么厘革,重点在于处理惩罚地点位,一般情况下我们默认使用地点区域0就满意开发需求,现在需要在读、写地点位底子上按位或地点区域
使用地点区域0的时候,可默认地点位为:0XA0,读、写数据,地点如下所示:
  1.   uint8_t dev_addr_r = dev_addr | 0x01;  uint8_t dev_addr_w = dev_addr & 0xFE;
复制代码
使用地点区域1的时候,可默认地点位为:0XA2,读、写数据,地点如下所示:
  1.   uint8_t dev_addr_r = dev_addr | 0x01;  uint8_t dev_addr_w = dev_addr & 0xFE;
复制代码
以此类推,剩下区域都可以如此操纵,然后就可以一页页读写数据了。
                                    
                                                不脱发的步调猿                                           
                CSDN认证博客专家                                        视觉/OpenCV                IoT/嵌入式                Python                            大地未绿我先绿,草木已凋我不凋。
来源:https://blog.csdn.net/m0_38106923/article/details/111696341
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

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

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )