找回密码
 立即注册
查看: 148|回复: 5

STC8A8K48D4输完程序后,断电再上电有个别会出现EEPROM错误,之前批次的没问题

[复制链接]
已绑定手机

1

主题

1

回帖

11

积分

新手上路

积分
11
发表于 2026-8-20 09:48:14 | 显示全部楼层 |阅读模式
同一型号的芯片,同一个程序,同一个板子,只是芯片批次不同,输完后存在EEPROM未清除的问题,请教下大家是怎么回事
回复

使用道具 举报 送花

已绑定手机

51

主题

2744

回帖

9547

积分

论坛元老

积分
9547
发表于 2026-8-20 10:06:33 | 显示全部楼层
输完程序是指下载完程序吗?烧录时这个选项有没有勾选?

截图202608201006239044.jpg
回复

使用道具 举报 送花

已绑定手机

1

主题

1

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2026-8-20 13:14:46 | 显示全部楼层
勾选了,
截图202608201314429716.jpg
回复

使用道具 举报 送花

已绑定手机

7

主题

411

回帖

6598

积分

论坛元老

积分
6598
发表于 2026-8-20 15:38:14 | 显示全部楼层
“输完后存在EEPROM未清除的问题”我表示看不懂,建议描述清楚具体现象,
老实说,我连“输完”都不知道是啥;
比如别人想要复现你这个问题,该怎么做?
回复

使用道具 举报 送花

53

主题

1467

回帖

3684

积分

超级版主

积分
3684
发表于 2026-8-20 18:02:30 | 显示全部楼层
STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复

使用道具 举报 送花

53

主题

1467

回帖

3684

积分

超级版主

积分
3684
发表于 2026-8-20 18:03:08 | 显示全部楼层

我已经查到了和你问题几乎完全相同的论坛帖子,以及 STC 工程师们的回复。让我结合手册知识给你一个完整的分析。


结论:问题根源基本可以锁定在 "下载程序时的 EEPROM 擦除选项" 和功耗/掉电时序

一、先看 STC 工程师在线程里的关键质询

你的帖子(TID:25340)里,官方工程师"乘风"一上来就问了一句关键话

"输完程序是指下载完程序吗?烧录时这个选项有没有勾选?"

并附了一张"下载选项"的截图(我看到截图里有"下载用户程序时擦除用户EEPROM"这一项)。

而你的回复是 "勾选了"


二、那问题可能出在哪?两个被忽略的细节

既然你勾选了"下载时擦除 EEPROM",但个别批次芯片烧完仍有 EEPROM 残留,那么常见原因集中在以下两点:

1. 擦除选项只对"下一次下载"生效,且依赖串口/握手时序是否稳定(最关键)

根据官方 EEPROM 文档和论坛讨论,"下载时擦除 EEPROM"这个选项的生效,依赖下载时与芯片的握手和数据传输过程。如果:

  • 该批次的芯片在下载时上电复位/握手时序略有差异;或
  • 下载过程中供电不稳串口电平波动,导致擦除命令没被完整执行到 EEPROM 区;

就会造成部分芯片的 EEPROM 没被擦干净,而之前的批次握手稳定就没事。

2. "未清除"到底是"没被擦除"还是"被异常擦除/写坏"?

论坛里 STC 工程师反复强调一个铁律:

EEPROM 写操作只能把 1 写成 0;要把 0 变回 1(即变成 FF),唯一的途径就是扇区擦除。

所以如果看到的是数据变成 FF(全 1),那一定是发生了擦除;如果看到的是残留旧数据(不是 FF),那是擦除没生效

请你确认一下:你说的"EEPROM 未清除",

  • (A) 是指烧完程序后,EEPROM 里还是旧的残留数据(应该被擦掉但没擦掉)?
  • (B) 还是指EEPROM 数据被异常变成了 FF,导致程序读出来是乱的?

这两种现象的排查方向完全不同。从你标题"存在 EEPROM 未清除的问题"看,更像是 (A) 擦除没生效


三、结合手册的进一步排查建议

如果是 (A) 擦除没生效:

  1. 手动验证:用 STC-ISP 软件的"EEPROM 擦除"功能(在下载界面里直接勾选"擦除用户 EEPROM"并单独烧一次),看该批次芯片能否被正常擦干净。
  2. 检查下载时供电:用示波器看烧录瞬间 VCC 是否稳定、是否有毛刺。新批次芯片如果是 3.3V 供电或电源上电斜率偏缓,容易导致下载握手/擦除命令执行异常。
  3. 降低串口波特率 重新下载试试,排除握手时序差异。
  4. 确认下载时"擦除用户EEPROM"是否真的勾选,并勾选"下载完成后复位运行"。

如果是 (B) 数据被异常写成 FF(擦除被误触发):

这是更严重的隐患,论坛里多个案例指向同一根因,需要重点排查你的程序逻辑:

  1. 上电/掉电时是否有"保存 EEPROM"逻辑:STC 工程师多次建议——EEPROM 的使用要配合比较器做掉电检测。上电时把要改的数据读到 SRAM,电源正常时操作 SRAM,掉电时再及时写回 EEPROM。如果上电时序不稳,程序可能在电压临界状态下执行了擦除/写入,把数据弄坏。
  2. IAP 操作是否关中断:手册明确规定——如果主循环和中断里都用 IAP 操作 EEPROM,操作时必须关中断EA=0),否则中断里改写了 IAP 寄存器,返回后回到主循环继续 IAP 必然出错。
  3. 不进行 IAP 时,把 IAP 地址设置到非 EEPROM 区(如 IAP_ADDRH=0x80),防止误触发。

四、建议你提供以下信息,帮你精确定位

为了给你最准的判断,麻烦补充:

  1. 你说的"未清除"具体是哪种现象?

    • 旧数据还在(擦除没生效)?
    • 还是数据变成了 FF(被异常擦除了)?
  2. 烧录时的设置:能否截图看下 STC-ISP 下载界面的"EEPROM 相关选项"(是否勾选了"下载时擦除用户 EEPROM"、"EEPROM 大小"设置)?

  3. 供电情况:这块板子是 3.3V 还是 5V?新批次和旧批次电源电路是否完全一致

  4. 程序里是否有:上电保存 EEPROM 逻辑、比较器掉电检测、IAP 中断不关断、看门狗等。

  5. 复现方式:是每次烧都这样,还是个别芯片偶发?断电重新上电后是否恢复正常?

把现象描述清楚(尤其是 A/B 哪一种),基本就能锁定是"下载擦除未生效"还是"程序/供电导致的异常擦除",然后对症下药。


🔍 搜索 "STC8A8K64D4 EEPROM 批次 不同"

📌 相关论坛讨论

  1. [2026-08-20] STC8A8K48D4输完程序后,断电再上电有个别会出现EEPROM错误,之前批次的没问题 —— 这就是你的帖子
  2. [2025-07-17] 8A8K64D4 EEPROM数据被部分擦除了 —— 同扇区数据变FF,官方答复是"更新数据时先擦扇区后写一半掉电"
  3. [2024-10-19] 关于 8A8K64D4 芯片 EEPROM出错问题 —— 官方建议"用比较器做掉电检测、不操作IAP时地址设到非EEPROM区"

⏱️ 查找用时 5.6s | 总回答用时 16.2s


🔍 搜索 "STC8A8K64D4同一型号的芯片 同一个程序 同一个板子"

📌 相关论坛讨论

  1. STC8A8K48D4输完程序后,断电再上电有个别会出现 EEPROM错误,之前批次的没问题
  2. 关于 8A8K64D4 芯片 EEPROM出错问题
  3. STC8A8K64D4的 EEPROM地址问题

⏱️ 查找用时 5.4s | 总回答用时 19.0s

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-9-23 16:11 , Processed in 0.071017 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表