2016-05-31 38 views
0

我试图用自定义编译的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.binblank.bin文件闪存到芯片。重新启动并检查adc读取的内容。尽管我得到了一些似是而非的结果。似乎芯片正常。

回答

2

这不能是一个明确的答案,因为涉及到硬件,但它可能仍然有帮助(评论太长)。

所以,第一件事情首先尝试使用允许明确设置闪存大小的闪光器。我不知道Espressif工具,但NodeMCU社区中的许多工具都很漂亮happy with esptool.py

esptool.py --port <USB-port-with-ESP8266> write_flash -fm dio -fs 32m 0x00000 <nodemcu-firmware>.bin 

不要尝试,直到你确认这可与固件修补(即开机W/O错误)和闪存大小和堆大小看行。

接下来,如果您使用dev分支的最新NodeMCU固件,则可以跳过字节107跳舞,因为you can set it in Lua

adc.force_init_mode(adc.INIT_ADC) 
-- now reboot 
+0

感谢您的回答。我现在正在深入检查这个问题。我将添加我的发现作为编辑。 –

+0

我接受你的回答,因为这个问题没有合格的答案。因为不同h/w(esp12E)的进一步测试显示出不同的特征。你的答案显示了证明闪存芯片的方法。 –