目录 1、FLASH与EEPROM简介 2、FLASH模拟EEPROM原理 2.1、EERPOM数据结构 2.2、EERPOM物理结构 在讲解这篇博文前,首先要明白为什么使用Flash存储来模拟EEPROM...主要有以下几个原因: 成本效益:许多微控制器(MCU)和系统芯片(SoC)内置有Flash存储,但没有专门的EEPROM。使用已有的Flash存储模拟EEPROM可以减少额外硬件成本。...灵活性和可扩展性:通过软件,可以灵活地设计和调整EEPROM模拟的大小和结构,以适应不同的应用需求。这种方法比使用固定大小的物理EEPROM更具可扩展性。...,这为FLASH模拟 EEPROM提供了条件,FLASH与EEPROM特点对比如下表所示: FLASH模拟EEPROM优点: 低成本:可节约一颗EEPROM芯片; 存储、读取速度快:通讯速度快于使用...通常EEPROM存储区定义在整 个FLASH末尾,这样程序的烧录、执行和EEPROM区域互不影响。
EEPROM的页写,EEPROM内部低位地址自动加1,高位地址还是由主器件程序发出。 低位地址正好对应页大小,如三位低位地址对应8个字节页地址0~7,这8个地址由EEPROM内部自动加1寻址。...如果写完一页,主器件的程序控制没有把高位地址加1(也就是整个写地址加页大小),而没有发送停止信号且继续发送数据,那么EEPROM会重新刷写该页。
很多的MCU控制器不带有片上EEPROM,但是我们有时候鉴于成本的考虑又不想外扩EEPROM,所以经常用Flash来模拟EEPROM存储,但是Flash都是块擦除,所以需要考虑频繁擦除的影响,需要借鉴软件算法来综合考虑...,最近经常在使用NXP的KE系片子,KE系列除过KE02带有256字节的片上EEPROM外,KE04和KE06都不带片上EEPROM,所以我们采用Flash来模拟。...还好官方提供了很好的一篇参考笔记AN4903,可字节编程或字编程且可擦除的电可擦可编程只读存储器(EEPROM) 在汽车电子控制单元 (ECU) 中经常使用。...对于不带 EEPROM 存储器的设备,可以通过 EEPROM 仿真软件,使用页面可擦除的 Flash 存储器来仿真 EEPROM,一个可擦除 Flash 单元相当于一个扇区。...可以看到移植的工程可以正常工作,且使用Flash来模拟EEPROM也可以正常工作,完成移植的目的,运用于正式的工程和项目,还要做一些修改,根据实际定好起始地址,并且做些容错处理。
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 编写APP直接访问EEPROM 参考资料: Linux驱动程序: drivers/i2c/i2c-dev.c I2C-Tools-4.2: https://mirrors.edge.kernel.org...AT24C02的设备地址跟它的A2、A1、A0引脚有关: 打开I2C模块的原理图(这2个文件是一样的): STM32MP157\开发板配套资料\原理图\04_Extend_modules(外设模块)\eeprom.zip...\i2c_eeprom_module_v1.0.pdf IMX6ULL\开发板配套资料\原理图\Extend_modules\eeprom.zip\i2c_eeprom_module_v1.0.pdf
示例代码 3.1 EEPROM驱动端代码 #include #include #include #include #include #include #include #include #include #include #include #include... #include #include #include static...设备端代码 #include #include #include #include
3.1 设备端代码 #include #include #include #include.../kernel.h> #include #include #include #include... #include #include #include #include... #include #include #include #include <linux...struct i2c_client *eeprom_client; #define MAX_SIZE 255 //EEPROM大小 #define EEPROM_PAGE 16 //页字节大小
在各型号的arduino控制器上的AVR芯片均带有EEPROM,也有外接的EEPROM芯片,常见arduino控制器的EEPROM大小:Arduino UNO、Arduino duemilanove-m328...、Zduino m328均使用ATmega328芯片,EEPROM都为1KArduino duemilanove-m168的EEPROM为512bytesArduino 2560的EEPROM为4K下面我们介绍...arduino自带的EEPROM使用方法,arduino的库已经为我们准备好了EEPROM类库,我们要使用得先调用EEPROM.h,然后使用write和read方法,即可操作EEPROM。...1.写入 选择 File>Examples>EEPROM>eeprom_write /* * EEPROM Write * * Stores values read from...>eeprom_clear清除EEPROM的内容,其实就是把EEPROM中每一个字节写入0,因为只用清一次零,所以整个程序都在setup部分完成。
EEPROM驱动程序的稳定可靠在嵌入式产品的设计中占据举足轻重的地位,因为如果EEPROM不正确,那么存储的设备运行参数和数据就不正确,曾遇到过因为老产品的EEPROM驱动设计存在缺陷,导致客户抱怨,退回产品...,虽然有的程序员写的驱动程序可以用,但是在恶劣条件下,导致数据丢失或者存储错误,EEPROM驱动的设计复用性应当相当高,在产品的设计中可以服用,如果驱动做的好的话,可以直接用在下一个产品中,只需更改一些应用层的映射...EEPORM驱动主要的功能接口应该提供,读,写,擦除,比较数据等接口,例如汽车电子行业中的AUTOSAR就对EEPROM的驱动有标准要求,其他行业也可以参考使用,汽车电子对安全要求相当高,为了避免各个厂商做出的驱动不一致性...,所以在标准中提出了细致的要求,大家都必须按照标准来走,这样的话就大大提高了程序的复用性,和可靠性,对外置EEPROM和内置EEPROM都适用,也推荐大家使用状态机来做EEPROM的驱动,另外还要维护EEPROM...我们曾在公众号里给大家介绍过基于AUTOSAR标准的GPIO驱动开发,其实认真阅读AUTOSAR标准,开发出一个符合AUTOSAR标准的驱动没有想象中那么难,希望有兴趣的同学可以阅读下AUTOSAR标准中的以下文档,对你开发EEPROM
本例的EEPROM型号为AT24CM01,在电路中的引脚连接如下图所示: ? 1,该器件的特性如下: 时钟支持标准模式(100KHZ),快速模式(400KHZ),极快速模式(1MHz)。...该EEPROM的器件地址定义如下: 地址的高4位是预定义好的,值为"1010",bit3,bit2根据引脚A2,A1连接的电平来决定,在该设计中,A2,A1均为0,bit1位为寄存器地址的最高位(A16...该EEPROM的的寄存器地址为双字节,定义如下 ? ? 首先发送寄存器地址的高8位字节地址,然后发送寄存器地址的低8位字节地址。
历史的车轮不断前进,伟大的EEPROM出现了,拯救了一大批程序员,终于可以随意的修改rom中的内容了。...但是今天已经存在多种EEPROM的变种,变成了一类存储器的统称。 狭义的EEPROM: 这种rom的特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。...这是最传统的一种EEPROM,掉电后数据不丢失,可以保存100年,可以擦写100w次。具有较高的可靠性,但是电路复杂/成本也高。...因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的。 flash: flash属于广义的EEPROM,因为它也是电擦除的rom。...往期推荐 Linux 最强总结! 这些内存问题你真的搞懂了吗? 36 张图全面总结计算机网络知识点 PID到底是个啥?给你讲个故事,通俗易懂
历史的车轮不断前进,伟大的EEPROM出现了,拯救了一大批程序员,终于可以随意的修改rom中的内容了。...但是今天已经存在多种EEPROM的变种,变成了一类存储器的统称。 狭义的EEPROM: 这种rom的特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。...这是最传统的一种EEPROM,掉电后数据不丢失,可以保存100年,可以擦写100w次。具有较高的可靠性,但是电路复杂/成本也高。...因此目前的EEPROM都是几十千字节到几百千字节的,绝少有超过512K的。 例如我们常见的24C02: ? 广义的EEPROM: flash属于广义的EEPROM,因为它也是电擦除的rom。...但是为了区别于一般的按字节为单位的擦写的EEPROM,我们都叫它flash。 flash做的改进就是擦除时不再以字节为单位,而是以块为单位,一次简化了电路,数据密度更高,降低了成本。
flash模拟eeprom存储日志的原理 文章目的 采用flash模拟eeprom的优点 方案设计 注意事项 文章目的 做mcu开发时,涉及到数据存储时,往往都会考虑使用flash、eeprom,或者铁电存储器...从数据储存的角度上来说,安全性最高的肯定是FRAM,接着才会考虑使用EEPROM,对于一般的数据储存,flash就足够了。...考虑到一般的MCU都不会携带EEPROM,最简单的方案可以利用flash模拟出eeprom,并且实现基本的日志文件系统操作,下面来描述一下基本的原理。...所以上述方案存在缺陷,那么如何才能让flash像eeprom一样读写,而且操作也不用每次擦除flash呢?...有了这些后台管理机制,再写日志时,上层便可以直接使用读写函数进行操作,而不用管底层到底是flash还是eeprom。
视频观看 百问网驱动大全 完善虚拟的I2C_Adapter驱动并模拟EEPROM 参考资料: Linux内核文档: Linux-4.9.88\Documentation\devicetree\bindings...\i2c\i2c-gpio.txt Linux-5.4\Documentation\devicetree\bindings\i2c\i2c-gpio.yaml Linux内核驱动程序:使用GPIO模拟...I2C Linux-4.9.88\drivers\i2c\busses\i2c-gpio.c Linux-5.4\drivers\i2c\busses\i2c-gpio.c Linux内核真正的I2C...控制器驱动程序 IMX6ULL: Linux-4.9.88\drivers\i2c\busses\i2c-imx.c STM32MP157: Linux-5.4\drivers\i2c\busses...在master_xfer函数里,我们模拟一个EEPROM,思路如下: 分配一个512自己的buffer,表示EEPROM 对于slave address为0x50的i2c_msg,解析并处理 对于写
蓝桥杯单片机必备知识—–(11)EEPROM EEPROM 由于EPROM操作的不便,后来出的主板上BIOS ROM芯片大部分都采用EEPROM(Electrically Erasable Programmable...EEPROM在写入数据时,仍要利用一定的编程电压,此时,只需用厂商提供的专用刷新程序就可以轻而易举地改写内容,所以,它属于双电压芯片。...所以,仍有不少主板采用EEPROM作为BIOS芯片并作为自己主板的一大特色。...IIC.H添加 void write_eeprom(unsigned char add,unsigned char val); unsigned char read_eeprom(unsigned char...(0x00,0x00); //EEPROM中存储的数据需要进行初始化 reset_cnt = read_eeprom(0x00); //从AT24C02地址0x00中读取数据 delay()
最近有几个项目用的是NXP的 KE02片子这个芯片内部自带256字节的EEPROM,可以用来存一些参数,和密码,但是操作的时候要注意,EEPROM的地址是0x10000000-0x100000FF, 所以我们所有的参数要存在这个地址范围...我们使用SDK的函数编写一个简单的例子,可以测试下如上图所示,写进EEPROM和从EEPROM 相应地址读出来的是一样的,可以在掉电测试,都是没有问题的,需要注意的就是每次写操作要一次四个字节,可以利用...这里需要提醒的一点是在正式的产品中,因为片内EEPROM的寿命是有限的,不能频繁操作EEPROM, 可以对EEPROM的块进行分成小块,按块操作,这样可以相当于延长了EEPROM寿命。
蓝桥杯开发板板载一个AT24C02的2KB的EEPROM芯片,主要考察对IIC通信的掌握。IIC通信因其需要的数据线少、通信方式可自己决定等优点在嵌入式开发板中运用很多。...IIC初始化 因为EEPROM的通信方式IIC通信,所以需要对IIC进行初始化。需要的文件有i2c.c和i2c.h文件。
IIC EEPROM例程 本文描述在如何运行IIC EEPROM例程。...IIC EEPROM例程更改 下面是在AMD Xilinx AC701 单板运行IIC EEPROM例程所需要的更改。...EEPROM所在的IIC总线(CHANNEL)需要根据AC701的硬件设计设置,软件代码中对应的设置是IIC_EEPROM_CHANNEL。...* IIC_EEPROM_CHANNEL is the Channel number of EEPROM for IIC Mux....定义EEPROM在IIC总线上的地址。
1、简介 STM8S内部的FLASH程序存储器和数据EEPROM是由一组通用寄存器来控制的;所以我们可以通过这些通用寄存器来编程或擦除存储器的内容、设置写保护、或者配置特定的低功耗模式。...2、存储架构图 STM8S内部存储包括:FLASH程序存储器(FLASH program memory)和数据EEPROM(DATA EEPROM); (1)数据EEPROM又包括: 数据存储区域(DATA...memory is correct */ 53 /* OperationStatus = FAILED, if the data written/read to/from DATA EEPROM...memory is correct */ 71 /* OperationStatus = FAILED, if the data written/read to/from DATA EEPROM...memory is correct */ 80 /* OperationStatus = FAILED, if the data written/read to/from DATA EEPROM
目录 1、CAT24CXX分页读、写数据原理 2、代码实现 ---- 近日驱动CAT24C08时遇到这样一个问题: 通常配置数据写入到EEPROM,256个字节基本可满足需求,最近做的一个项目数据量较大...本项目EEPROM地址使用如下所示: 配置1数据:0Byte~1000Byte; 配置2数据:1001Byte~1100Byte; 配置3数据:1101Byte~1200Byte; 配置4数据:1201Byte
本次带来Vivado系列,EEPROM驱动设计。话不多说,上货。...EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。...EEPROM(带电可擦可编程只读存储器)是用户可更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不需从计算机中取出即可修改。...在一个EEPROM中,当计算机在使用的时候可频繁地反复编程,因此EEPROM的寿命是一个很重要的设计考虑参数。EEPROM是一种特殊形式的闪存,其应用通常是个人电脑中的电压来擦写和重编程。...我们以SANXIN-B04板卡上的EEPROM为例,向大家介绍一下其驱动方式。EEPROM型号为24LC64。
领取专属 10元无门槛券
手把手带您无忧上云