我试图使用自定义编译的nodemcu图像来闪存AI-Thinker ESP-12-Q模块。当芯片第一次启动时,它会显示一条消息,说它有8mbit(1MB)闪存。在每个文档上还显示该模块具有32mbit(4MB)闪存。这就是我所做的和结果:
在编程之后,nodemcu图像esp模块运行nodemcu。我需要使用ADC通道。当我说adc.read(0)
时,它会给我65535
。然后按原样说到处我需要更改配置的第107个字节。要做到这一点:
然后恐怖开始:当芯片启动时,我可以设法捕获像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读取的内容。不过,我得到了一些合理的结果。好像芯片正常。
答案 0 :(得分:2)
这不是一个明确的答案,因为涉及硬件,但它可能仍然有用(评论时间太长)。
因此,首先要尝试使用允许明确设置闪光灯尺寸的闪光灯。我不知道Espressif工具,但NodeMCU社区中的很多人都很happy with esptool.py。
esptool.py --port <USB-port-with-ESP8266> write_flash -fm dio -fs 32m 0x00000 <nodemcu-firmware>.bin
在确认无法正常工作(即启动无错误)并且闪存大小和堆大小看起来没问题之前,请不要尝试修改固件。
接下来,如果您使用dev
分支中最近的NodeMCU固件,则可以跳过byte-107-dance,因为you can set it in Lua。
adc.force_init_mode(adc.INIT_ADC)
-- now reboot