我试图用自定义编译的nodemcu图像刷新AI-Thinker ESP-12-Q模块。当第一次芯片启动时,它显示一条消息,说它有8mbit(1MB)闪存。在每张文件上还有图像显示该模块具有32mbit(4MB)闪存。这是我做了什么,结果如下:编程RF设置后无法获得GPIO0高电平ESP-12-Q
- 为了消除电源问题,我用10安培的实验室电源(当然是3.3伏)为模块供电。
- 在esp和电脑之间有一个3.3v ftdi模块。
- 我使用的是Espressif的官方flash下载工具v2.4。
- 由于它是说到处nodemcu图像会0x00000
编程nodemcu图像ESP模块运行nodemcu后。我需要使用ADC通道。当我说adc.read(0)
它给我65535
。然后,正如我所说的,我需要改变第107个字节的配置。要做到这一点:
- 打开ESP闪存下载工具2.4
- 转到RF InitConfig页
- 按默认设置按钮
- 变化CrystalFreq至26MHz(因为芯片靴74880波特)
- 变化TOUT引脚Conf to TOUT_ADC_EN and voltage to 3.3v
- Change change else
- Press GenInitBin
- 转到Flash下载页面
- 选择esp_init_data_setting.bin文件在地址处闪烁:0x3FC00
- 按开始。一切似乎都没问题。
然后恐怖开始:当芯片启动时,我可以设法捕获像system parameter error
这样的消息,那么芯片不会引导到nodemcu映像中。当我检查引脚GPIO0电压读取大约1.9v。该引脚上有一个10K外部上拉电阻。当电压读取像这样,esp无法启动到nodemcu映像。当我通过短接上拉电阻将此引脚强制为3.3v时,它会引导到nodemcu,但有一些错误(我会试着去捕捉它们)。
所以问题是,我做错了什么?
EDIT#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.
EDIT#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中拿走esp_init_data_default.bin
。5并通过十六进制编辑器将第107个字节更改为0x21(33 DEC)。然后将esp_init_data_default.bin
和blank.bin
文件闪存到芯片。重新启动并检查adc读取的内容。尽管我得到了一些似是而非的结果。似乎芯片正常。
感谢您的回答。我现在正在深入检查这个问题。我将添加我的发现作为编辑。 –
我接受你的回答,因为这个问题没有合格的答案。因为不同h/w(esp12E)的进一步测试显示出不同的特征。你的答案显示了证明闪存芯片的方法。 –