2016-05-31 4 views
0

Ich versuche, AI-Thinker ESP-12-Q-Modul mit benutzerdefiniertem kompiliertem nodemcu-Bild zu flashen. Wenn der Chip das erste Mal hochfährt, zeigt er eine Nachricht an, dass er 8 MBit (1 MB) Flash hat. Auf jedem Dokument wird auch gezeigt, dass dieses Modul 32MBit (4MB) Flash hat. Hier ist, was ich getan habe und das Ergebnis:GPIO0 High kann nach der Programmierung der HF-Einstellungen nicht abgerufen werden. ESP-12-Q

  • Um Stromprobleme zu beseitigen, versorge ich das Modul mit 10 Amps Laborversorgung (3,3 Volt natürlich).
  • Es gibt ein 3.3v ftdi-Modul, das zwischen esp und Computer sitzt.
  • Ich benutze offizielle Flash-Download-Tool v2.4 von Espressif.
  • Wie es überall Bild angegeben wird nodemcu geht an 0x00000
  • Nach der Programmierung der nodemcu Bild esp Modul die nodemcu läuft. Ich muss den ADC-Kanal verwenden. Wenn ich sage adc.read(0) gibt es mir 65535. Dann, wie überall gesagt wird, muss ich das 107. Byte der Konfiguration ändern. Um dies zu tun:

    • öffnen esp Flash-Download-Tool 2.4
    • Goto RF InitConfig Seite
    • Press Schaltfläche Standard
    • ändern CrystalFreq zu 26MHz (weil Chip-Stiefel mit 74880 Baud)
    • ändern TOUT Pin conf TOUT_ADC_EN und Spannung bis 3,3 V
    • ändern nichts anderes
    • Presse GenInitBin
    • Gehe zu FlashDownload Seite
    • Wählen Sie die Datei esp_init_data_setting.bin aus, um unter Adresse zu blinken: 0x3FC00
    • Drücken Sie Start. Und alles scheint in Ordnung zu sein.
    • Dann beginnt der Horror: Wenn der Chip startet, kann ich eine Nachricht wie system parameter error fangen, dann bootet der Chip nicht in nodemcu Bild. Wenn ich den Pin GPIO0 überprüfte, liest die Spannung ungefähr 1.9v. An diesem Pin befindet sich ein 10K externer Pullup-Widerstand. Wenn die Spannung so gelesen wird, kann esp nicht in das nodemcu Bild booten. Wenn ich diesen Pin auf 3.3v erzwinge, indem ich den Pullup-Widerstand kurzschließt, bootet es in nodemcu, aber mit einigen Fehlern (ich werde versuchen, sie zu fangen).

      Die Frage ist also, was mache ich falsch?

      EDIT # 1:

      Dies ist der Ausgang des Chips:

      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:

      ich versuchte "die Werkseinstellung" in den Chip zu laden, wie es definiert ist, im 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 
      

      Dann beginnt der Chip normal zu funktionieren. Ich habe es mit einigen AT-Befehlen versucht, habe die Antwort wie erwartet bekommen usw. Dann habe ich das nodemcu-Image geladen. Es funktionierte auch gut wie erwartet. Dann der knifflige Teil: Diesmal nahm ich die esp_init_data_default.bin von SDK1.5 und änderte die 107. Byte zu 0x21 (33 DEC) von einem Hex-Editor. Dann blitzten die esp_init_data_default.bin und blank.bin Dateien auf den Chip. Neustart und überprüft, was ADC liest. Ich habe jedoch ein paar plausible Ergebnisse. Scheint so, als ob der Chip normal wird.

    Antwort

    2

    Dies kann keine definitive Antwort sein, da Hardware beteiligt ist, aber es kann immer noch hilfreich sein (es ist zu lang für einen Kommentar).

    Also, erste Dinge versuchen zuerst mit einem Flasher, der erlaubt, die Flash-Größe explizit einzustellen. Ich kenne das Expressif-Tool nicht, aber viele in der NodeMCU-Community sind hübsch happy with esptool.py.

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

    Versuchen Sie nicht, mit der Firmware zu basteln, bis Sie bestätigt, dass dies funktioniert (das heißt Booten w/o Fehler) und Flash-Größe und Heap-Größe ok aussehen.

    Als nächstes, wenn Sie eine aktuelle NodeMCU Firmware aus dem dev Zweig verwenden, können Sie das Byte-107-Tanz überspringen, da you can set it in Lua.

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

    Danke für die Antwort. Ich untersuche das Problem jetzt gründlich. Ich füge meine Ergebnisse als Bearbeitung hinzu. –

    +0

    Ich akzeptiere Ihre Antwort, da keine berechtigte Antwort auf diese Frage vorliegt. Weil weitere Tests mit unterschiedlichen h/w (esp12E) unterschiedliche Eigenschaften zeigen. Ihre Antwort zeigt eine bewährte Möglichkeit, den Chip zu flashen. –

    Verwandte Themen