EEPROM CAT24CXX 实现分页读、写数据
近日驱动 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,来选择设备地址区域,也就是 2 的 3 次方=8 个地址区域,每个地址区域有 64 页,每页 16 个字节, 故:64X16X8=8192B,也就是 8KB。
A2、a9 和 a8 选择地址区域,数值范围如下表所示:
所以,可将配置数据按照以下地址块分配:
2、代码实现
本代码驱动过程并没有什么变化,重点在于处理地址位,一般情况下我们默认使用地址区域 0 就满足开发需求,现在需要在读、写地址位基础上按位或地址区域。
使用地址区域 0 的时候,可默认地址位为:0XA0,读、写数据,地址如下所示:
使用地址区域 1 的时候,可默认地址位为:0XA2,读、写数据,地址如下所示:
以此类推,剩下区域都可以如此操作,然后就可以一页页读写数据了。
版权声明: 本文为 InfoQ 作者【不脱发的程序猿】的原创文章。
原文链接:【http://xie.infoq.cn/article/fbb04b036aa7a3cc09a00b7ae】。文章转载请联系作者。
评论