news 2026/6/10 0:47:21

EEPROM erase过程图解说明:适合零基础学习者

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
EEPROM erase过程图解说明:适合零基础学习者

深入理解EEPROM擦除:从晶体管到代码,一文讲透电可擦写的底层逻辑

你有没有想过,为什么你的智能手环能记住上次的设置?为什么温控器断电后还能保留校准数据?这些“记忆”能力的背后,藏着一种叫EEPROM的小芯片。它不像RAM那样断电就忘,也不像U盘那样动不动就要整块删除——它可以精准地修改某一个字节。

但问题来了:既然写入是把“1”变成“0”,那怎么再变回去呢?
答案就是本文的核心——erase(擦除)操作

别被这个术语吓到。哪怕你是第一次听说“浮栅”、“隧穿”这些词,这篇文章也会用最直观的方式带你一步步揭开EEPROM擦除的神秘面纱。我们不堆术语,只讲本质;不用PPT式罗列,而是像朋友聊天一样,把整个过程讲清楚。


为什么需要“擦除”?先搞懂它的起点和规则

我们先来玩个类比游戏:

想象你在一张纸上写字。一开始纸是白的,代表所有位都是“1”。你可以用笔在上面画黑点,把某些位置改成“0”——这就像 EEPROM 的写入(Program)操作。

但麻烦的是:这张纸不能涂改!你想把黑点变回白色,唯一的办法不是擦掉墨水,而是整格重置。而这个“重置”的动作,就是erase

所以关键来了:
- ✅ 你能自由地把“1”写成“0”
- ❌ 却无法直接把“0”改回“1”
- ✅ 唯一的办法是先执行erase,让这一位回到“1”,然后再按需写入新的值

这就是为什么 EEPROM 必须有独立的erase机制——它不是为了“清空”,而是为了让数据可以循环更新

📌 核心认知:
在大多数EEPROM中,“1”是默认态,“0”是写入态。
要翻转回来?必须走 erase 流程。


它是怎么存数据的?揭秘存储单元的“心脏”:浮栅晶体管

所有奇迹都始于一个微小的结构——浮栅MOSFET(Floating Gate Transistor)。这是EEPROM的最小存储单元,也是实现非易失性存储的关键。

浮栅到底“浮”在哪里?

普通MOS管有一个控制栅(Control Gate),用来控制电流是否导通。而EEPROM的晶体管多了一个“隐藏层”——浮栅(Floating Gate),夹在控制栅和半导体之间,并被二氧化硅绝缘层完全包裹。

这意味着:一旦电子进了浮栅,就出不来,除非施加特殊条件。

状态浮栅情况导电性表示
“1”无电子易导通晶体管开启
“0”有电子难导通晶体管关闭

为什么?因为浮栅里的负电荷会抵消控制栅的吸引力,相当于给晶体管“加了重量”,让它不容易打开。

这就形成了数据存储的基础:用电荷的存在与否,表示二进制状态


写入:“打一针”电子进去

现在我们知道,“0” = 浮栅里有电子。那么怎么把电子送进去?

靠的是热电子注入(Hot Carrier Injection)

简单说,就是在漏极加高压(比如+6V),控制栅加更高正压(如+12V),源极接地。强烈的电场会让部分电子加速到高速,获得足够能量“撞破”绝缘层,进入浮栅。

类比:就像用水枪把小球射进一个带盖的盒子,只要力气够大,就能打进去了。

这个过程叫做Program,不可逆——除非你主动把它拉出来。

而且一旦进去,由于周围是良好的绝缘体,电子能待上十几年都不跑,所以断电也不丢数据。


擦除:如何把电子“抽”出来?这才是重点!

好了,现在最难的问题来了:
电子已经进去了,怎么再把它弄出来?

总不能拆芯片吧?当然不用。工程师们发现了一种量子效应——Fowler-Nordheim隧穿(FN Tunneling)

FN隧穿是什么?

在经典物理里,电子不可能穿过厚厚的绝缘层。但在量子世界,当电场足够强时,电子有一定概率“穿墙而出”,就像隧道一样穿越屏障。

要触发这种效应,只需要反过来加电压:
- 控制栅接地或加负压(0V 或 -12V)
- 源极(或漏极)加高正压(+12V ~ +20V)

这时,浮栅中的电子感受到来自下方的强大吸引力,开始一个个穿过氧化层逃逸出去。

类比升级版水池模型:
- 浮栅 = 中间漂着的小船,底部有孔但平时堵着
- 电子 = 船里的水
- Program:从上面吹风,把水吸上来 → 船变重下沉 → 不容易动(截止)→ “0”
- Erase:从下面强力抽水,水从小孔被吸走 → 船变轻上浮 → 容易移动(导通)→ “1”

这就是erase的本质:通过反向强电场,利用量子隧穿将电子抽出浮栅,使单元恢复为“1”


关键参数一览:你知道擦一次要多久吗?

别以为这只是理论游戏,实际工程中有很多硬性约束:

参数典型值说明
隧穿电压12V ~ 20V片内电荷泵生成,外部无需提供
擦除时间2ms ~ 10ms不同型号差异大,期间不能访问
写耐久性10万 ~ 100万次超过可能氧化层老化导致漏电
数据保持>10年正常使用环境下

来源参考:Microchip AT24系列、ST M24系列等主流EEPROM手册

特别注意:每次 erase 和 program 都会对绝缘层造成微损伤,所以寿命有限。这也是为什么频繁写日志的应用不适合用传统EEPROM。


实际怎么操作?看一段真实的I2C代码

说了这么多原理,落地还得靠代码。下面我们以常见的AT24C02这类I2C接口EEPROM为例,看看如何完成一次完整的“修改数据”流程。

// 向指定地址写入一个字节 void eeprom_write_byte(uint8_t addr, uint8_t data) { i2c_start(); i2c_write(0xA0); // 设备写地址 i2c_write(addr); // 地址指针 i2c_write(data); // 数据写入 i2c_stop(); delay_ms(5); // 等待内部擦写完成(tWR周期) }

你以为这就完了?其实背后发生了什么?

  1. 主控发送写命令
  2. 芯片收到后,自动判断该地址是否需要先erase
  3. 如果原数据不是0xFF(即存在“0”位),则内部触发erase操作
  4. 然后再执行program,写入新数据
  5. 整个过程由芯片内部控制逻辑完成,对外表现为“等待写周期结束”

✅ 所以大多数情况下,你不需要手动调用 erase 函数——它是写入的一部分!

但也正因为如此,很多初学者误以为“可以直接覆盖写入”,结果在低速通信或未延时的情况下读到了旧数据。


常见误区解答:为什么不能像RAM一样随便改?

问得非常好。很多人刚接触EEPROM时都会犯同一个错误:

“我之前写了0x5A,现在想改成0x7C,为什么不生效?”

原因就在于二进制对比:

原值 0x5A = 0101 1010 新值 0x7C = 0111 1100

观察每一位的变化:
- 第5位:1 → 1 (不变)
- 第4位:0 → 1 ✅ 需要从“0”变“1” → 必须 erase!
- 第3位:1 → 1 (不变)
- 第2位:1 → 1 (不变)
- 第1位:0 → 0 (不变)
- 第0位:0 → 0 (不变)

看到没?第4位要从“0”变“1”,就必须先erase清零整字节为0xFF(全1),然后再写入0x7C。

如果你跳过这步,这一位依然保持“0”,最终写入的是错误数据。

✅ 正确做法始终是:
1. 读取当前值
2. 修改内存变量
3. 调用写函数(自动包含 erase + program)
4. 延时等待完成
5. 回读验证


应用场景与设计建议:怎么用才靠谱?

1. 接口选择:I2C vs SPI

类型引脚数速度适用场景
I2C2线(SDA+SCL)400kHz ~ 1MHz小数据量、引脚紧张
SPI4线(CS, SCK, MOSI, MISO)可达10MHz+高频配置更新

选哪个?看你对速度和资源的需求。

2. 如何延长寿命?

虽然标称10万次,但我们可以通过软件优化进一步提升可靠性:

  • 磨损均衡(Wear Leveling):不要老在一个地址写,轮流使用多个备份区
  • 写缓存机制:避免频繁单字节写,累积一批再刷入
  • CRC校验 + 双备份:防止因意外断电导致数据损坏

⚠️ 提示:对于每秒写好几次的应用(如日志记录),建议换用 FRAM 或 MRAM,它们支持无限次写入。

3. 安全防护怎么做?

很多EEPROM带有硬件写保护引脚(WP),接高电平后禁止任何写操作。适合出厂锁定关键参数。

此外,也可通过软件锁机制(如密码验证)防止误操作。


总结:Erase不只是命令,更是半导体智慧的体现

回顾一下我们走过的路:

  1. 我们从一张“不能涂改的纸”说起,理解了为什么必须有erase
  2. 深入到晶体管层面,认识了浮栅结构如何锁住电子
  3. 学会了两种操作:
    -Program:热电子注入 → 把“1”变成“0”
    -Erase:FN隧穿 → 把“0”变回“1”
  4. 看了真实代码,明白了“写入”背后其实是“先擦后写”
  5. 解决了常见误解:不能直接覆盖,必须依赖 erase
  6. 最后给出了实用的设计建议

你会发现,erase并不是一个孤立的操作,而是整个非易失性存储体系中的核心环节。今天你理解了它,明天去看Flash的“块擦除”、SSD的“垃圾回收”,思路就会清晰得多。

毕竟,所有的现代存储技术,都在解决同一个问题:
如何安全、高效、持久地操控那些看不见的电子?

而EEPROM的erase,正是这场人机博弈中最精巧的一招。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/7 10:57:08

5分钟快速部署:基于TradingView的缠论可视化终极解决方案

5分钟快速部署:基于TradingView的缠论可视化终极解决方案 【免费下载链接】chanvis 基于TradingView本地SDK的可视化前后端代码,适用于缠论量化研究,和其他的基于几何交易的量化研究。 缠论量化 摩尔缠论 缠论可视化 TradingView TV-SDK 项…

作者头像 李华
网站建设 2026/6/9 23:18:09

暗黑2存档编辑器:快速打造完美角色的终极完整指南

暗黑2存档编辑器:快速打造完美角色的终极完整指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 想要在暗黑破坏神2中轻松获得梦寐以求的顶级装备和完美属性吗?这款基于Vue.js开发的暗黑2存档编辑器正是…

作者头像 李华
网站建设 2026/6/9 22:17:44

m4s转mp4完整指南:为什么这款工具是B站用户的必备神器?

m4s转mp4完整指南:为什么这款工具是B站用户的必备神器? 【免费下载链接】m4s-converter 将bilibili缓存的m4s转成mp4(读PC端缓存目录) 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过这样的情况:在B站缓…

作者头像 李华
网站建设 2026/6/10 0:32:36

Rusted PackFile Manager:Total War MOD开发难题的终极解决方案

Rusted PackFile Manager:Total War MOD开发难题的终极解决方案 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt5 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址: ht…

作者头像 李华
网站建设 2026/6/9 22:35:45

Linux系统终极完整指南:使用notion-linux项目安装原生Notion应用

Linux系统终极完整指南:使用notion-linux项目安装原生Notion应用 【免费下载链接】notion-linux Native Notion packages for Linux 项目地址: https://gitcode.com/gh_mirrors/no/notion-linux 长久以来,Linux用户在使用Notion这款革命性生产力工…

作者头像 李华
网站建设 2026/6/8 15:42:15

m4s转mp4工具实战指南:轻松保存B站珍贵视频

m4s转mp4工具实战指南:轻松保存B站珍贵视频 【免费下载链接】m4s-converter 将bilibili缓存的m4s转成mp4(读PC端缓存目录) 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过这样的情况:在B站收藏了很多优质视频&…

作者头像 李华