目录
目录
前言
DTS配置的参考
AT24C256 EEPROM的DTS配置参考
AT24C02 EEPROM的DTS配置参考
内核配置的参考
AT24C256 EEPROM的内核配置参考
AT24C02 EEPROM的内核配置参考
验证测试的参考
AT24C256 EEPROM的验证测试参考
AT24C02 EEPROM的验证测试参考
总结
前言
EEPROM(Electrically Eraseble Programmable rend only memory,电可擦可编程只读存储器)是一种非易失性存储芯片。
它们具有以下核心功能与特点:
1. 数据持久性。
- 断电后数据不丢失,适用于需要长期保存配置信息的场景;
- 通过电子擦除和编程实现数据更新,无需物理移除芯片。
2. 可重复擦写。
- 支持数万次擦写操作,适用于频繁修改数据的应用(如硬件配置存储等);
- 擦除时仅需特定电压,无需紫外线照射(区别于EPROM)。
3. 应用场景。
- 硬件配置存储:用于接口卡、即插即用设备的参数保存;
- 安全防护:作为”硬件锁“防止软件非法拷贝;
- 物联网设备:作为通信模块的配置信息或设置。
4. 技术特性。
- 支持按字节读写,灵活性较高;
- 现代EEPROM通常无需额外高压(Vpp),简化设计。
5. 与其它存储介质的区别。
相比NOR/NAND FLASH,EEPROM更适合小容量、频繁更新的场景;与RAM相比,具有非易失性优势,但速度较慢。
下面以AT24Cxx系列的EEPROM为例。
DTS配置的参考
AT24C256 EEPROM的DTS配置参考
AT24C256是一款广泛使用的串行EEPROM芯片,具有256K位存储容量,它使用I2C协议进行通信,适用于多种控制器系统。这种非易失性存储器在断电后依然能够保持数据不丢失,常被用于存储配置信息、日志数据或代码引导程序等。
i2c0_gpio: i2c@0 { compatible = "i2c-gpio"; #address-cells = <1>; #size-cells = <0>; scl-gpios = <&gpioc 22 GPIO_ACTIVE_HIGH>; sda-gpios = <&gpioc 23 GPIO_ACTIVE_HIGH>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ at24c256@50 { compatible = "atmel,24c256"; reg = <0x50>; pagesize = <64>; }; };AT24C02 EEPROM的DTS配置参考
AT24C02是一款2K位的串行EEPROM芯片,内部含有256个8位字节,有一个16字节的页写缓冲器,主要用于存储设备配置信息、系统参数等需长期保存且断电不丢失的数据场景。
i2c0_gpio: i2c@0 { compatible = "i2c-gpio"; #address-cells = <1>; #size-cells = <0>; scl-gpios = <&gpc 22 GPIO_ACTIVE_HIGH>; sda-gpios = <&gpc 23 GPIO_ACTIVE_HIGH>; i2c-gpio,delay-us = <2>; /* ~100 kHz */ 24c02@50 { compatible = "atmel,24c02"; reg = <0x50>; pagesize = <16>; }; };内核配置的参考
AT24C256 EEPROM的内核配置参考
CONFIG_EEPROM_AT24=yAT24C02 EEPROM的内核配置参考
CONFIG_EEPROM_AT24=y验证测试的参考
AT24C256 EEPROM的验证测试参考
1. 烧录固件后,正常开机,命令行终端可以输入:dmesg,正常打印如下:
# dmesg | grep "at24" at24 0-0050: 32768 byte 24c256 EEPROM, writable, 16 bytes/write2. 对其进行写操作,如下:
# i2ctransfer -f -y 0 w7@0x50 0x20 0x00 0x11 0x22 0x33 0x44 0x553. 对其进行读操作,如下:
# i2ctransfer -fay 0 w2@0x50 0x20 0x00 r5@0x50 0x11 0x22 0x33 0x44 0x55AT24C02 EEPROM的验证测试参考
1. 烧录固件后,正常开机,命令行终端可以输入:dmesg,正常打印如下:
# dmesg | grep "at24" at24 0-0050: 256 byte 24c02 EEPROM, writable, 16 bytes/write2. 对其进行写操作,如下:
# i2ctransfer -f -y 0 w2@0x50 0x00 0x113. 对其进行读操作,如下:
# i2ctransfer -fay 0 w1@0x50 0x00 r1@0x50 0x11总结
EEPROM使用电场来擦除和写入存储器单元,因此可以反复写入数据。EEPROM通常用于存储小量数据,并且可以通过SPI或I2C接口进行读写。相对于EEPROM,Flash具有更高的存储密度和更快的写入速度。Flash内部被分为多个扇区,每个扇区都可以单独擦除和写入。Flash通常用于存储固件和大量数据,并且可以通过SPI、SDIO或NAND等接口进行读写。