当前位置: 首页 > news >正文

还是 “月饼” 后续,玩转炫彩 “月饼” 之 问题说明(送开发板)

画一个 “月饼” 陪我过中秋,开发板后续问题跟进说明

目录

  • 前言
  • 一、出现问题
  • 二、寻求办法
  • 三、若有所思
  • 四、问题测试
  • 结语(悬赏送开发板)

前言

❤️

本文有纯理论玩家是永远不会经历的实际问题,嵌入式工程师不动手永远出不了作品!

本文最后有送开发板的彩蛋,有兴趣的同学可以来试试。

❤️

说明一下问题出现的开发板,其实就是前面“月饼”的那个板子:

画一个 “月饼” 陪我过中秋,使用 ESP32-C3 制作炫彩月饼(我为嵌入式工程师争取月饼)

当时基本测试的文章:

画一个 “月饼” 陪我过中秋,玩转炫彩 “月饼” 之 基本测试

其实在当时基本测试 Wifi 的时候,我就发现了一个问题,但是我没有写出来,因为我没解决= = !

这么多天我想到点眉目,于是特地来记录一下。

一、出现问题

还记得当时测试天线的时候,说当初的天线性能不是很好,但是后来自己也确实发现了问题,提出了解决办法。

但是在那之前,我其实还测试了一下 Wifi 的链接,使用的示例就是:

ESP32-C3入门教程 网络 篇(一、 Wi-Fi 使用入门 — 初始化及STA、AP模式)

文档中的 STA 模式,因为是测试,所以就选了一个简单的,看看能不能正常的顺利的连接上 WiFi ,于是就烧录了 STATION 程序:

在这里插入图片描述

烧录后,就出现了问题,具体情况如下,就是一直重启,因为 SHA-256 comparison failed :

在这里插入图片描述

具体的错误提示行如下图:

在这里插入图片描述

这…… 这是什么个意思?于是开始疯狂搜索了……

能够在某度搜索到的与SHA-256 comparison failed 有关的大多跳转到了乐鑫的官方论坛,但是实际上也没有一个完全的解决办法,C 站还有个收费专栏博主自己说换一个 USB 接口解决了,提到了供电问题,实际上我换了也没用。

当时我还特意写了一段话,准备在基本测试的文章中说明,后来还是想想算了:

这种疑难杂症遇到了,就很麻烦,我当时想着是不是得解决了记录一下,但是我画了 2 个多小时,还是没有解决,而且我换一个例程,就不会重启了,所以暂时就搁置在这里,以后如果真的找到解决办法,会来更新 。

二、寻求办法

上面也说了花了一段时间测试,并不知道问题在哪里,测试一段时间发现,只有用到 WiFi 的例子会有这种问题。

我还去乐鑫官方论坛提问了:

在这里插入图片描述

在提问的第二天官方就有工程师回复了,

在这里插入图片描述

当然当时的使用论坛工程师回复的方式进行测试并没有效果,然后一段时间没有处理这个问题,忙其他事情去了。

这段时间忙下来,等到最近两天想了下,还是心里面有个问题不舒服。

因为如果有问题那么产品就是有问题的,以后这种方案也不能用,但是自己一直觉得没有道理,就是不应该啊!

然后再次去看了下论坛的后续回答:

在这里插入图片描述

在上图中提到一个问题,供电问题!

这里说明一下,为什么我关注了这个芯片供电电压的问题而不是第一时间根据该工程师的回复修改代码进行测试:

  1. 因为在以前找问题的时候看到过有关 电源不稳定会出现 SHA-256 comparison failed 问题的情况;
  2. 相同的芯片,第一次做的开发板完全没有问题,所以程序修改也无非是测试为了定位问题,不是解决问题。
  3. 两块板子的供电部分方案确实不一样!!

三、若有所思

我们回过头来看看,两块板子的电源部分 LDO,一个用的是 1117 ,一个用的是 ME6211C33M5G :

在这里插入图片描述

我们很方便的可以查询到, AMS1117 的输出电流可以达到 1A ,而 ME6211C33M5G 的出书电流最大 500 mA :

在这里插入图片描述

但是这里还是有一个问题得说明,在设计之初就考虑到了的, 电脑的 USB 的最大输出电流也不过是 500mA ,所以对于上面2个 LDO 来说,应该都没问题!!!!

从理论上来说,供电不稳定的问题应该不存在,可是实际上就是出问题了,而且有可能是供电网问题引起的,但是注意还是不能确定,需要测试。

那么既然确定可能是某种问题,那么就来验证一下,给他稳定的电源,看一看是否还会无限重启!

四、问题测试

那么今天抽了个空就开始测试一下,想确定一下是否是 LDO 供电的问题。

但是测试的时候,我烧录测试程序,他居然正常了:

在这里插入图片描述

这 … …

在这里插入图片描述

难道产品开发是看运气的吗?

这个时候我就尴尬了,他居然好了,那么我折腾半天分析个毛啊?

继续一系列的折腾

这个板子经过一下午的测试折腾,发现 “越来越稳定”,基本不会复位了 …… 我还是很无语啊

如下图每次都能正常获取 IP 连接上网络,图中重启是我手动按了复位按键:

在这里插入图片描述

现在我怎么确定是不是电源不稳定导致的呢?

忽然我想起来,我当时出现一直复位的问题的时候,我为了排除板子的问题,我焊接了2块板子,发现2块板子都是有复位的问题!

那么这里就得说明一下,一般做产品的样品,出现疑难杂症的问题以后最好是多测试几块板子,看看是否都是相同的问题,还是说说是单个样品的问题,从而更好的找到问题。

这时候我就想到了,我看一下另外一块板子,发现果然还是和以前一样,无限重启。

这里再提一下,虽然第一块板子莫名其妙好了,我确实也不能确定是什么问题,如今也没法通过从第一块板子判断问题了,但是我们还是有机会通过有问题的第二块板子排除问题的。

那么对于上面我们推测的问题,我们还是有机会验证的,我在第二块的3.3V电源处从别处并了3.3V 电源过来,这样绝对不会存在 供电不稳定功率不够的问题:

在这里插入图片描述

看看测试否好了…… ,发现还是无限重启,如下图:

在这里插入图片描述

这样应该就能确定并不是电源供电不稳定的问题了。

那这问题如何解决呢?

其实真的有点无从下手啊,当然可以从代码一点点调试,只是自己没那个精力,这个我先放着,向兄弟们请教了。

结语(悬赏送开发板)

本次问题我没有解决,也是因为自己对 ESP-IDF 框架的了解不够深入,以及对芯片内部细节不够了解,所以感觉无从下手。

☆ 如果感兴趣的兄弟愿意指点问题,能够帮我找到解决这个问题 ,我送一块“月饼” !☆

解决问题的办法可以CSDN私聊我,也可以加我微,在公众号里有我联系方式,可以告知我方法,我可以去测试 。

附上我在乐鑫官方论坛的提问的帖子: 我在乐鑫官方论坛的提问帖子

问题再次说明:

开发板如果不跑 WiFI 的示例,其他基本示例在我的文章:

画一个 “月饼” 陪我过中秋,玩转炫彩 “月饼” 之 基本测试

写的都正常,虽然现在看是无线重启,但是换其他的例程,都能够正常工作。

附上重启问题的 log 输出:

更新说明,后面我才发现下面这个重启的 log 与文章最开头的 重启 log 不一样,下面的 重启 log 提示与分区表程序烧录有关,但是实际上在上面的我有一个动图,是正常烧录完成后无限重启的,这下就更迷糊了,感觉有好几个不同的说不出的问题。

Attempting to boot anyway...
entry 0x403ce000
I (53) boot: ESP-IDF v4.3.1-dirty 2nd stage bootloader
I (53) boot: compile time 13:13:46
I (53) boot: chip revision: 3
I (56) boot.esp32c3: SPI Speed      : 80MHz
I (60) boot.esp32c3: SPI Mode       : DIO
I (65) boot.esp32c3: SPI Flash Size : 4MB
I (70) boot: Enabling RNG early entropy source...
I (75) boot: Partition Table:
I (79) boot: ## Label            Usage          Type ST Offset   Length
I (86) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (94) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (101) boot:  2 factory          factory app      00 00 00010000 00100000
I (109) boot: End of partition table
I (113) esp_image: segment 0: paddr=00010020 vaddr=3c080020 size=13590h ( 79248) map
I (133) esp_image: segment 1: paddr=000235b8 vaddr=3fc8dc00 size=03138h ( 12600) load
I (136) esp_image: segment 2: paddr=000266f8 vaddr=40380000 size=09920h ( 39200) load
I (146) esp_image: segment 3: paddr=00030020 vaddr=42000020 size=771f0h (487920) map
E (221) esp_image: invalid segment length 0xffffffff
E (221) boot: Factory app partition is not bootable
E (221) boot: No bootable app partitions in the partition table
ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0xd (SPI_FAST_FLASH_BOOT)
Saved PC:0x403d11a0
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd6100,len:0x1778
load:0x403ce000,len:0x8dc
load:0x403d0000,len:0x2984
SHA-256 comparison failed:
Calculated: 11d1fc32393ac3669a16c5f76445f1bf91238846d12e5ae2717043cdeb60e9fa
Expected: 7933900344e64bce5c4d16d3cccc336c461e7d9fc6d536d2032552acb855f4d9
Attempting to boot anyway...
entry 0x403ce000
I (53) boot: ESP-IDF v4.3.1-dirty 2nd stage bootloader
I (53) boot: compile time 13:13:46
I (53) boot: chip revision: 3
I (56) boot.esp32c3: SPI Speed      : 80MHz
I (60) boot.esp32c3: SPI Mode       : DIO
I (65) boot.esp32c3: SPI Flash Size : 4MB
I (70) boot: Enabling RNG early entropy source...
I (75) boot: Partition Table:
I (79) boot: ## Label            Usage          Type ST Offset   Length
I (86) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (94) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (101) boot:  2 factory          factory app      00 00 00010000 00100000
I (109) boot: End of partition table
I (113) esp_image: segment 0: paddr=00010020 vaddr=3c080020 size=13590h ( 79248) map
I (133) esp_image: segment 1: paddr=000235b8 vaddr=3fc8dc00 size=03138h ( 12600) load
I (136) esp_image: segment 2: paddr=000266f8 vaddr=40380000 size=09920h ( 39200) load
I (146) esp_image: segment 3: paddr=00030020 vaddr=42000020 size=771f0h (487920) map
E (221) esp_image: invalid segment length 0xffffffff
E (221) boot: Factory app partition is not bootable
E (221) boot: No bootable app partitions in the partition table
ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0xd (SPI_FAST_FLASH_BOOT)
Saved PC:0x403d11a0
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd6100,len:0x1778
load:0x403ce000,len:0x8dc
load:0x403d0000,len:0x2984
SHA-256 comparison failed:
Calculated: 11d1fc32393ac3669a16c5f76445f1bf91238846d12e5ae2717043cdeb60e9fa
Expected: 7933900344e64bce5c4d16d3cccc336c461e7d9fc6d536d2032552acb855f4d9
Attempting to boot anyway...
entry 0x403ce000
I (53) boot: ESP-IDF v4.3.1-dirty 2nd stage bootloader
I (53) boot: compile time 13:13:46
I (53) boot: chip revision: 3
I (56) boot.esp32c3: SPI Speed      : 80MHz
I (60) boot.esp32c3: SPI Mode       : DIO
I (65) boot.esp32c3: SPI Flash Size : 4MB
I (70) boot: Enabling RNG early entropy source...
I (75) boot: Partition Table:
I (79) boot: ## Label            Usage          Type ST Offset   Length
I (86) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (94) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (101) boot:  2 factory          factory app      00 00 00010000 00100000
I (109) boot: End of partition table
I (113) esp_image: segment 0: paddr=00010020 vaddr=3c080020 size=13590h ( 79248) map
I (133) esp_image: segment 1: paddr=000235b8 vaddr=3fc8dc00 size=03138h ( 12600) load
I (136) esp_image: segment 2: paddr=000266f8 vaddr=40380000 size=09920h ( 39200) load
I (146) esp_image: segment 3: paddr=00030020 vaddr=42000020 size=771f0h (487920) map
E (221) esp_image: invalid segment length 0xffffffff
E (221) boot: Factory app partition is not bootable
E (221) boot: No bootable app partitions in the partition table
ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0xd (SPI_FAST_FLASH_BOOT)
Saved PC:0x403d11a0
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd6100,len:0x1778
load:0x403ce000,len:0x8dc
load:0x403d0000,len:0x2984
SHA-256 comparison failed:
Calculated: 11d1fc32393ac3669a16c5f76445f1bf91238846d12e5ae2717043cdeb60e9fa
Expected: 7933900344e64bce5c4d16d3cccc336c461e7d9fc6d536d2032552acb855f4d9
Attempting to boot anyway...

赠送方式:开发板给你配上全套的元器件,就本次的“月饼”开发板,测试使用说明可以见我前面几篇文章。

开发板的全套教程见我的 ESP32-C3 专栏。

【导航】ESP32-C3 入门教程目录 【快速跳转】

相关文章:

  • 软考高级-系统架构师-操作系统
  • 测试计划包括哪些内容?
  • 淘宝Tmall,拼多多,1688等API接口示例请求,获取页面商品详情等数据
  • vue-cli 组件
  • 从0开始安装虚拟机VMware和安装Linux系统(详细步骤)
  • 2022年第五空间网络安全大赛WriteUp
  • Git操作
  • 15天深度复习JavaWeb的详细笔记(十)——Filter、Listener、Ajax
  • 30.0、C语言——文件操作 (1)
  • 物联网感知安全——你了解多少?
  • Linux【编写一个简单的shell】
  • Python入门到进阶——流程控制
  • 基于Docker的开源端到端开发者平台
  • Chapter2.2:控制系统的数学模型
  • 前端关于cookie那些事儿
  • CentOS6 编译安装 redis-3.2.3
  • export和import的用法总结
  • gitlab-ci配置详解(一)
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java编程基础24——递归练习
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • php面试题 汇集2
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 代理模式
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 前端临床手札——文件上传
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 问题之ssh中Host key verification failed的解决
  • 我的业余项目总结
  • 项目管理碎碎念系列之一:干系人管理
  • 一、python与pycharm的安装
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (Matlab)使用竞争神经网络实现数据聚类
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .Net MVC4 上传大文件,并保存表单
  • .Net Redis的秒杀Dome和异步执行
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net Stream篇(六)
  • .NET 使用 XPath 来读写 XML 文件
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET与 java通用的3DES加密解密方法
  • @Async注解的坑,小心
  • @Service注解让spring找到你的Service bean