打印
[XMC™]

XMC1000/XMC4000使用flash模拟EEPROM

[复制链接]
385|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1. XMC1000使用Flash模拟EEPROM
实现原理:
一般用两个一样的sector可以实现模拟EEPROM。1 sector = 1 bank。每个bank的第一页来表示这个bank的状态,例如是否有效,是否有数据/已擦除,是否是数据copy,是否格式化过。每个数据块都是按照数据块来存放,如下图所示,这个数据块的大小可以在DAVE APP的GUI中来配置。



2. XMC4000使用Flash模拟EEPROM
实现原理:
XMC4000的模拟EEPROM算法和XMC1000的模拟EEPROM算法有所不同,XMC4000的最小擦除单位是一个sector,最小写入单位是1页(256字节),使用PS4的4个16KB的logical sector进行模拟EEPROM,为了使用这4个sector擦写均衡,数据在这4个sector中轮换放置。

为了提高Flash利用率,XMC4000的模拟EEPROM只能使用一个块,这个块的大小可以在DAVE APP的GUI中配置。举个例子,如果现在定义了一个1000字节大小的EEPROM,那么需要用到4页(4*256 = 1024 > 1000)。对于1000字节大小的EEPROM,每次写EEPROM,都是依次写4页,数据区域的Write Count代表当前数据的更改次数,数字越大说明数据越新。


PS4这个物理sector擦写次数可达1000次,考虑模拟一块2040字节的EEPROM(2048-8),数据是轮流放置的,因此EEPROM数据的修改次数可达320000次。

3. 相关例程
6_3_XMC1000_EEPROM_APP.zip 是 Flash 模拟 EEPROM 的例程,实现的功能是:
- 在 1 个数据块中存放了芯片上电次数和系统时间
- 每次上电都会把上电次数存到 EEPROM 中,上电次数由 P0.0 所接 LED 表示
- 系统时间每一秒都会当前时间存放到 EEPROM 里面,系统时间由 P0.6 所接的 LED 表示


6_6_XMC4000_EEPROM.zip 为 Flash 模拟 EEPROM 例程,在 EEPROM 初始化后,第一次会写入一些初始数据,接着 EEPROM 中某个字节代表上电次数,每次上电增加上电一次次数,上电次数由 P5.8 连接着 LED 表示。可以在 GUI 中修改 EEPROM 的大小。


6_3_XMC1000_EEPROM_APP.zip

1.22 MB

6_6_XMC4000_EEPROM.zip

1.17 MB

使用特权

评论回复
沙发
星辰大海不退缩| | 2024-9-25 17:28 | 只看该作者
使用flash模拟EEPROM非常不错的案例

使用特权

评论回复
板凳
OKAKAKO| | 2024-9-28 16:30 | 只看该作者
每个数据块都是按照数据块来存放

使用特权

评论回复
地板
AdaMaYun| | 2024-9-30 11:27 | 只看该作者
使用flash模拟EEPROM有助于学习过程

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:英飞凌科技股份公司
简介:关于英飞凌——我们致力于打造一个更加便利、安全和环保的世界,在赢得自身成功发展的同时,积极践行企业社会责任。

69

主题

196

帖子

6

粉丝