一:24C02芯片介绍:
24C02是一款2048位串行可擦除可编程只读存储器(EEPROM),组织为256个8位字。该设备采用先进的CMOS工艺制造,适用于低功耗和低电压应用。提供多种封装选项,包括8引脚DIP、8引脚SOP、8引脚MSOP、8引脚TSSOP、8引脚DFN和5引脚SOT-23/TSOT-23。标准2线双向串行接口用于所有读写功能。
二:24Cxx芯片特点:
宽范围的工作电压1.8V~5.5V低电压技术
-1mA典型工作电流
-1uA典型待机电流
存储器组织结构
24C02,256 X8(2K bits)
-24C04,512 X8(4K bits)
-24C08,1024X8(8K bits)
-24C16,2048 x8(16K bits)
-24C32,4096 X8(32K bits)
-24C64.8192X8(64K bits)2线串行接口,完全兼容12C总线12C时钟频率为1MHz(5V),400 kHz(1.8V,2.5V,2.7V)
施密特触发输入噪声抑制
硬件数据写保护
内部写周期(最大5 ms)
可按字节写
页写:8字节页(24C02),16字节页(24C04/08/16),32字节页(24C32164)
可按字节,随机和序列读
自动递增地址
ESD保护大于2.5kV
T24C02A
高可靠性
擦写寿命:100万次
-数据保持时间:100年
8-pin DIP和8-pin SOP封装
无铅工艺,符合RoHS标准
三:24Cxx 存储芯片的数据格式
可见 24C02 每一页最大支持64个字节长度,所以当我们存入数据时候需要注意不要超过每页的最大字节,防止自动存入到下一页。
原理图如下所示:
四:读写函数如下:
- /*******************************************************************************
- * 函 数 名 : errom_write()
- * 函数功能 : 向24Cxx指定地址写入多个数据字节
- * 输 入 : u16 addr -写入的起始地址
- * 输 入 : u8 *dt_pro-待写入数据的缓存区首指针
- * 输 入 : u16 num-待写入的数据个数
- * 输 出 : 无
- *******************************************************************************/
- void errom_write(u16 addr,u8 *dt_pro,u16 num)
- {
- while(num--)
- {
- AT24Cxx_WriteOneByte(addr,(*dt_pro));
- addr++;
- dt_pro++;
- }
- }
- /*******************************************************************************
- * 函 数 名 : errom_read()
- * 函数功能 : 向24Cxx指定地址读出多个数据字节
- * 输 入 : u16 addr -读出的起始地址
- * 输 入 : u8 *dt_pro-待读出数据的缓存区首指针
- * 输 入 : u16 num-待读出的数据个数
- * 输 出 : 无
- *******************************************************************************/
- void errom_read(u16 addr,u8 *dt_pro,u16 num)
- {
- while(num)
- {
- *dt_pro=AT24Cxx_ReadOneByte(addr);
- addr++;
- dt_pro++;
- num--;
- }
- }
测试代码如下所示:
- void Test_EEPROM(void)
- {
- WriteBuffer24C02[0]= 0xFA ;
- WriteBuffer24C02[1]= 0xFB ;
- WriteBuffer24C02[2]= 0xFC ;
- WriteBuffer24C02[3]= 0x05 ;
- WriteBuffer24C02[4]= 0xC0 ;
- WriteBuffer24C02[5]= 0x01 ;
- WriteBuffer24C02[6]= 0x02 ;
- errom_write(0,&WriteBuffer24C02[0],7);
- HAL_Delay(20);
- errom_read(0,&ReadBuffer24C02[0],7) ;
- memcpy(SendBuffer1,&ReadBuffer24C02[0],7 );
- SendDataToUSART1(7);
- }
|