网站首页 > 博客文章 正文
背景
上回说到,因为担心国产芯片的可靠性问题,准备借鉴SpaceX火箭的冗余设计思想,准备在控制器上用两个ESP8266协同工作提高可靠性。
还没过几个月,这就出事了。
客户反馈使用了几个月的控制器出现了找不到WiFi热点的故障,反复断电重启也无法恢复。
让客户把故障品寄回到分析。
Flash内容比对
收到之后,我首先把串口线连接到WiFi模块上,监控其上电时输出的logo,
发现与正常模块相比,故障品无法从地址为0x1000的flash地址取到正确的固件,猜想可能是flash的数据被异常损坏。
于是,下载了esptool.py工具,通过read_flash命令将固件读到电脑,可以正常读取整个flash的内容,并与下载的内容进行对比,并没发现明显差别。
EFUSE错误分析
准备再用flash下载工具下载固件,却发现提示 eFuse检验错误。
用串口调试助手抓取下载固件的交互数据,并与厂家定义的下载协议做比较。
发现除了同步消息之外,下载工具还从模块读取 eFuse的数据内容。
正常模块(MAC地址为BC:FF:4D:07:C8:8A)返回的数据为:
C0 01 0A 02 00 00 00 DA 8A 00 00 C0
C0 01 0A 02 00 C8 07 00 02 00 00 C0 /
C0 01 0A 02 00 00 B0 00 31 00 00 C0
C0 01 0A 02 00 4D FF BC 00 00 00 C0
根据协议对比,对应的efuse数据为:
00 00 DA 8A, C8 07 00 02, 00 B0 00 31, 4D FF BC 00
故障模块(MAC地址为C4:5B:BE:59:80:34) 返回的数据为:
C0 01 0A 02 00 01 01 EF 34 00 00 C0
C0 01 0A 02 00 80 59 00 02 00 00 C0
C0 01 0A 02 00 00 B0 00 B7 00 00 C0
C0 01 0A 02 00 BE 5B C4 00 00 00 C0
根据协议对比,对应的efuse数据为:
01 01 EF 34, 80 59 00 02, 00 B0 00 B7, BE 5B C4 00
根据下表中的 eFuse说明,
其中的flag3,正常模块的数值为0表示为非ESP8285芯片,而故障模块的数值为1,表示为ESP8285芯片,而该芯片实际为ESP8266,导致下载工具判断为 eFuse检验错误。
故障分析
eFuse是芯片中一块特殊的存储空间,它内部由熔丝相互连接。
当流经的电流达到一定程度时,熔丝会被烧断,该位的值会改变。
熔丝熔断是单向的、不可恢复的。
因此 eFuse 的值只能被烧写一次,只能由 0 变到 1。
在烧写 eFuse 的时候,一定要十分小心,也要注意避免静电、高温等情况,以防 eFuse 被打坏。
根据以上的分析,应该是因为静电、高温甚至空间电磁干扰的原因,导致eFuse的数据被破坏,最终导致程序不能正常启动。
接下来,准备将ESP-01S换成ESP-07S,
ESP-07S有以下优点:
1) 可以外接天线,增加无线信号的范围
2) 通过了CE,FCC认证,电磁兼容有保证
3) 有金属外壳,可以屏幕干扰信号
猜你喜欢
- 2024-10-25 388.C#使用RJCP.DLL.SerialPortStream进行串口通信
- 2024-10-25 嵌入式入门级学习——基于国产平台T3开发板的测试教程(6)
- 2024-10-25 H3C交换机通过MAC地址定位设备所在交换机端口步骤
- 2024-10-25 干货!PS端裸机与FreeRTOS案例开发之裸机lwIP_Demo案例
- 2024-10-25 Python读取Arduino的串口输出的数据?
- 2024-10-25 做网络那么多年,连以太网接口和串口都分不清?本文值得一看!
- 2024-10-25 QT中级(7)- 串口工具(qt串口类编程)
- 2024-10-25 MAC 10.14 安装教程-制作安装EFI文件
- 2024-10-25 FT232串口线和普通串口线有何区别?
- 2024-10-25 TI Sitara系列 AM64x开发板——TSN通信测试手册(上)
你 发表评论:
欢迎- 07-08Google Cloud Platform 加入支持 Docker 的容器引擎
- 07-08日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 07-08美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- 07-08GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 07-08谷歌推出Cloud Dataproc,缩短集群启动时间
- 07-08Infovista与Google Cloud携手推进射频网络规划革新
- 07-08比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- 07-08BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- 最近发表
-
- Google Cloud Platform 加入支持 Docker 的容器引擎
- 日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 谷歌推出Cloud Dataproc,缩短集群启动时间
- Infovista与Google Cloud携手推进射频网络规划革新
- 比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- NCSA和Google Cloud合作开发AI驱动的网络防御系统,加强泰国网络空间的安全性
- SAP将在沙特阿拉伯 Google Cloud 上推出BTP服务
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)