Hallo alle zusammen, ich habe folgendes Problem: Ich habe mir ein ESP8266 Board selber aufgebaut, es entspricht eigentlich komplett dem Layout des ESP-12 Modules. Da ich aber für meine Anwendung einen recht begrenzten Bauraum habe, habe ich dieses selber auf einer Platine aufgebaut. Nun startet der ESP auch und ich kann über die serielle Schnittstelle die Boot Message empfangen. Leider nur diese. Ich kann kein Programm in den Flashspeicher schreiben und wenn ich einen Flashspeicher anlöte, der schon mit einem Programm beschrieben ist, kann der ESP dieses nicht starten. Ich denke das ich irgendeinen sehr groben Fehler gemacht haben muss und der ESP einfach nicht mit dem Flashspeicher reden will. Die Anbindung zwischen Flashspeicher und ESP ist ja bei den meisten Modulen die gleiche. Er wird fast immer über die SPI Schnittstelle die auch für die SD-Karte vorgesehen ist angebunden. Dafür sind die Leitungen SD_CMD, SD_CLK, SD_D0, SD_D1, SD_D2 und SD_D3 mit dem Flash verbunden. Genauso habe ich es auch gemacht. Aber egal ob ich den DOUT, DIO, QOUT oder QIO Modus verwende (alle werden vom FLashspeicher unterstützt mit bis zu 108Mhz) und auch wenn ich mit 20Mhz, 40Mhz oder auch 80Mhz Flashe, es gibt immer eine Fehlermeldung. Das esptool.py sagt: "A fatal error occured: Timed out waiting for Packet content" Das ESP8266 DOWNLOAD TOOL V3.6.4 sagt: "[ERROR]: ESP8266 Chip flash download error esp_write_flash" Und die Arduino Umgebung sagt: "warning: espcomm_send_command: didn't receive command response warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed Beim Hochladen des Sketches ist ein Fehler aufgetreten error: espcomm_upload_mem failed" Das hochladen der Stub funktioniert und ausgeführt wird diese auch, aber spätestens bei der Kommunikation mit dem Flash scheitert das ganze. Bei der Stromversorgung habe ich schon jede mögliche Variante ausprobiert, zu guter letzt sogar mit zwei AA Batterien. Auch habe ich alle Datenleitungen zwischen ESP und Flashspeicher durchgeklingelt und auch alle möglichen Permutationen der Datenleitungen ausprobiert (ich habe nämlich festgestellt, das z.b. in meinem ESP-01 Modul SD_D0 nicht mit IO0 des Flash verbunden ist, sondern mit IO1 und SD_D1 mit IO0, gleiches gilt auch für SD_D2 und SD_D3, diese sind auch mit IO3 und IO2 verbunden. Auch fehlte in meinem ESP-01 Modul der 200Ohm Widerstand, den habe ich auch schon testweise überbrückt, aber ohne Erfolg.). An Flashspeicher IC's habe ich auch mehrere ausprobiert, neue frisch gekaufte genauso wie welche die ich schon mit dem ESP-01 Modul geflashed habe, aber auch die Funktionieren nicht (wenn ich sie wieder zurück auf das ESP-01 Modul löte, dann funktionieren diese auch wieder). Hatte vielleicht schon einmal jemand ein ähnliches Problem oder generell eine Idee wie ich weiter Vorgehen söllte? Über ein paar Tips von euch würde ich mich sehr freuen. Gruß Felix
Zeig mal Schaltplan und Platinen-Layout (als Bild) Da muss ja irgendwo der Wurm drinnen sein, wenn derselbe Flash-Chip auf anderen Boards funktioniert.
Ja, da hast du vollkommen recht. Das komische ist nur, das ich alle Verbindungen schon Durchgeklingelt habe, also da kann eigentlich kein Fehler sein. Ich habe auch gerade mit dem Oszi nachgeschaut, es kommen auch schöne Rechteckimpulse auf allen Datenleitungen und auch auf der Clock-leitung an. Da ich gerade unterwegs bin und nur ein kleines Taschen Oszi bei mir habe, kann ich leider nicht genauer die Daten analysieren, aber auf den ersten Blick scheint es alles zu funktionieren. Ein Bild von dem Layout habe ich gerade nicht zur Hand, aber den Schaltplan sende ich gleich mit. Des weiteren habe ich auch schon mit feinem Kupfer Lackdraht die Anschlüsse für die Datenleitungen (also SD_D0, SD_D1, SD_D2 und SD_D3) untereinander Vertauscht, aber auch ohne Erfolg. Ich habe nämlich Festgestellt, das die Datenleitungen laut Schaltplan wie folgt angeschlossen werden müssen: SD_CMD -> CS SD_CLK -> CLK SD_D0 -> IO1 SD_D1 -> IO0 SD_D2 -> IO3 SD_D3 -> IO2 Da mir das aber ein wenig komisch vorkam, habe ich auch mal folgende kombination ausprobier: SD_CMD -> CS SD_CLK -> CLK SD_D0 -> IO0 SD_D1 -> IO1 SD_D2 -> IO2 SD_D3 -> IO3 Hilft leider auch nicht.
Hmm... ESP -> Flash 20 -> 1 21 -> 6 22 -> 2 23 -> 5 18 -> 7 19 -> 3
Perfektionist schrieb: > Hmm... Genau so. Felix schrieb: > Über ein paar Tips von euch würde ich mich sehr freuen. Dein Flash hat vertauschte Datenleitungen.
An GPIO15 (MTDO) gehört ein Pull-Down Widerstand. An GPIO1 (TxD) gehört ein Pull-Up Widerstand. An VCC+GND gehört zusätzlich ein 100µF (oder 220µF) Elko.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.