【发布时间】:2016-05-31 10:37:55
【问题描述】:
我正在尝试使用自定义编译的 nodemcu 映像来刷新 AI-Thinker ESP-12-Q 模块。当芯片第一次启动时,它会显示一条消息,说它有 8mbit (1MB) 闪存。在每个文档上还显示该模块具有 32mbit (4MB) 闪存。这是我所做的和结果:
- 为了消除电源问题,我使用 10 安培实验室电源(当然是 3.3 伏)为模块供电。
- 在 esp 和计算机之间有一个 3.3v ftdi 模块。
- 我正在使用来自 Espressif 的官方 flash 下载工具 v2.4。
- 正如所言,nodemcu 映像到处都是 0x00000
在对nodemcu image esp 模块编程后运行nodemcu。我需要使用 ADC 通道。当我说adc.read(0) 时,它给了我65535。然后就像到处说我需要更改配置的第 107 个字节。为此:
- 打开esp flash下载工具2.4
- 转到射频初始化配置页面
- 按默认按钮
- 将 CrystalFreq 更改为 26MHz(因为芯片以 74880 波特率启动)
- 将 TOUT 引脚配置更改为 TOUT_ADC_EN 并将电压更改为 3.3v
- 别无其他改变
- 按 GenInitBin
- 转到 Flash 下载页面
- 选择 esp_init_data_setting.bin 文件刷入地址:0x3FC00
- 按开始。一切似乎都很好。
然后恐怖开始了:当芯片启动时,我可以设法捕捉到像system parameter error 这样的消息,然后芯片没有启动到 nodemcu 映像。当我检查引脚 GPIO0 时,电压读数约为 1.9v。此引脚上有一个 10K 的外部上拉电阻。当电压这样读取时,esp 无法启动到 nodemcu 映像。当我通过短接上拉电阻将此引脚强制为 3.3v 时,它会启动到 nodemcu 但出现一些错误(我会尝试捕捉它们)。
所以问题是,我做错了什么?
编辑#1:
这是芯片的输出:
ets Jan 8 2013,rst cause:2, boot mode:(3,0)
load 0x40100000, len 30288, room 16
tail 0
chksum 0xa5
load 0x3ffe8000, len 2268, room 8
tail 4
chksum 0x3f
load 0x3ffe88dc, len 8, room 4
tail 4
chksum 0xca
csum 0xca
system param error
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff .... goes on for 100 meters.
编辑#2:
我尝试按照 SDK v1.5 中的定义将“出厂默认设置”加载到芯片
Flash size 32Mbit-C1: 1024KB+1024KB
boot_v1.2+.bin 0x00000
user1.2048.new.5.bin 0x01000
esp_init_data_default.bin 0x3fc000 (optional)
blank.bin 0xfe000 & 0x3fe000
然后芯片开始正常工作。我尝试了一些 AT 命令,得到了预期的答案等......然后我加载了 nodemcu 图像。它也按预期运行良好。然后是棘手的部分:这次我从 SDK1.5 中取出 esp_init_data_default.bin,并通过十六进制编辑器将 107th 字节更改为 0x21 (33 DEC)。然后将esp_init_data_default.bin和blank.bin文件刷入芯片。重新启动并检查 adc 读取的内容。不过,我得到了一些似是而非的结果。好像芯片正常了。
【问题讨论】: