打印
[技术讨论]

Flash ROM中的ME丢失原因求助!

[复制链接]
867|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuanfff|  楼主 | 2024-12-26 16:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

电路如图,进行“上电12s,断电20s"的测试,机子概率出现不开机(一般10台跑14h会挂2台),原因为ROM中的ME被擦除
Flash 型号:Gigadevice 的 GD25LQ64ESIGR
CPU用的 Intel 的Gemini Lake SoC

目前已验证:
1、写保护WP脚直接拉低,没用,厂商回复,该硬件保护只能保护寄存器数据不被修改,无法保护ROM中的数据。
2、软件设置BP保护也没用。
3、怀疑电源不稳,将D29二极管换成0R电阻,出现丢失的概率变低。但是模拟二极管压降(使用电源单独输入,或者LDO调节转出),降低输入电压并没有复现到丢失。猜测是因为降低的输入电压过于稳定,无法模拟在开机过程中电压突然波动跌至异常。因此接回二极管,同时降低输入电压为1.6V,出现了不开机,但是ME数据只是部分被修改,没有出现擦除。


请求各位大佬帮忙分析一下可能原因,提供一些验证思路!不胜感激!急急急!客户提刀催了!

使用特权

评论回复

相关帖子

沙发
yuanfff|  楼主 | 2024-12-26 16:42 | 只看该作者
跪求!跪求!跪求!

使用特权

评论回复
板凳
fswyt| | 2024-12-28 09:18 | 只看该作者
看看是不是单片机上下电过程中对Flash进行误擦除了,单片机在最低启动电压附近运行会不稳定。
判断方法是把单片机对Flash擦除、写的代码直接屏蔽掉,不要编译到单片机内部,然后按照最容易出现丢失的条件进行测试。

使用特权

评论回复
评论
fswyt 2024-12-28 14:16 回复TA
@yuanfff :如果你的单片机有多种电源供电,这就要着重考虑不同电源间的上电时序了,必须严格按照规定的时序来上电; 
fswyt 2024-12-28 14:15 回复TA
@yuanfff :举个例子,假如单片机的额定工作电压是3.3V,在上电过程中,如果电源电压到达1V后,单片机的外部复位电路或者单片机内部的复位电路释放了复位信号,这时单片机就开始运行了,但是单片机能够稳定运行的电压必须高于1.6V(假设,具体参考使用的单片机手册),所以,在电压1~1.6V期间,单片机运行就不稳定,可能会出现程序跑飞,误调用了擦除指令; 
fswyt 2024-12-28 14:07 回复TA
@yuanfff :如果单片机本身没有电压检测功能,就在单片机的复位电路上做下调整,总的就是让单片机的电源升到能够确保正常运行的稳定电压以上后,再释放复位电路; 
fswyt 2024-12-28 14:05 回复TA
@yuanfff :先看看程序本身会不会有异常调用擦除指令的情况;然后看看你使用的单片机电源部分是否有低电压检测功能,通过配置,让单片机在安全电压以下不工作,在安全电压以上再工作,防止单片机在不稳定的电压范围内程序跑飞; 
yuanfff 2024-12-28 09:53 回复TA
确实用逻辑分析仪抓到了擦除瞬间,是CPU(Intel Gemini Lake SoC)那边发出了一个擦除指令,但是擦除原因未知。请问大佬该如何查找根因? 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝