Projektidee
Ich wollte eine einfache Möglichkeit haben, SPI-Flash-Chips von Kameras, Routern oder anderen Embedded-Geräten direkt auszulesen,
ohne dafür jedes Mal einen PC am Zielgerät zu brauchen. Der Pico 2 eignet sich dafür sehr gut, weil er zwei SPI-Schnittstellen,
genügend GPIOs und genug Leistung für einen standalone Dumper mitbringt.
Das aktuelle Setup nutzt einen SPI-Bus für den Flash und einen zweiten für die microSD-Karte. Der READ-Taster startet den Dump vom Flash auf die SD-Karte,
und über die Status-LEDs sieht man sofort, ob das System bereit ist, gerade arbeitet oder einen Fehler meldet.
Was sich gegenüber der ersten Version geändert hat
Vorher
- MicroPython auf dem Pico 2
main.py und sdcard.py auf den Pico kopieren
- Dokumentation für Python-Dateien
Jetzt
- Arduino IDE als Entwicklungsumgebung
- Ein kompletter Sketch als Firmware
- Download direkt als
.ino-Datei
Pinbelegung / Schaltplan
Die folgende Belegung entspricht dem zuletzt getesteten Arduino-Aufbau mit getrennten SPI-Bussen für Flash und microSD.
Das eingebundene Bild pico2-flasher-schaltplan.png bleibt als Breadboard-Schaltplan erhalten.
| Funktion |
Pico 2 Pin |
Ziel |
| Flash SCK | GP18 | SPI-Flash CLK |
| Flash MOSI | GP19 | SPI-Flash DI / MOSI |
| Flash MISO | GP16 | SPI-Flash DO / MISO |
| Flash CS | GP17 | SPI-Flash CS |
| READ-Taster | GP6 | Taster gegen GND |
| WRITE-Taster | GP7 | Taster gegen GND |
| SD MISO | GP12 | microSD MISO |
| SD CS | GP13 | microSD CS |
| SD SCK | GP14 | microSD CLK |
| SD MOSI | GP15 | microSD MOSI |
| Grüne LED | GP2 | Status bereit / erfolgreich |
| Gelbe LED | GP3 | Aktivität |
| Rote LED | GP4 | Fehler |
| Versorgung | 3V3 / GND | SD-Modul, Flash, Taster, LEDs |
Wichtig: WP# und HOLD# / RESET# des SPI-Flashs müssen fest auf 3,3 V liegen,
sofern du keinen Quad-SPI-Modus verwendest. Beim SD-Modul unbedingt prüfen, ob es direkt 3,3 V braucht oder einen eigenen Spannungsregler besitzt.
Installation mit Arduino IDE
- Arduino IDE installieren.
- Unter Datei → Voreinstellungen die zusätzliche Boardverwalter-URL eintragen:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
- Im Boardverwalter das Paket Raspberry Pi Pico / RP2040 / RP2350 installieren.
- Als Board Raspberry Pi Pico 2 auswählen.
- Über den Bibliotheksverwalter die Bibliothek SdFat installieren.
Downloads
Hier findest du den fertigen Arduino-Sketch für den Pico 2. Der Sketch enthält die Pinbelegung, die SD-Anbindung,
die JEDEC-Abfrage des Flashs, den READ-Button für den Dump und die Status-LEDs.
So verwendest du den Dumper
- Schaltung nach Plan aufbauen.
- microSD-Karte als FAT32 formatieren und einstecken.
- Den Arduino-Sketch in der Arduino IDE öffnen.
- Pico 2 anschließen und den Sketch hochladen.
- Optional den seriellen Monitor mit
115200 Baud öffnen, um JEDEC-ID und Fortschritt zu sehen.
- Den READ-Taster drücken.
Status-LEDs
- Grün: bereit oder erfolgreich abgeschlossen
- Gelb: Dump läuft gerade
- Rot: Fehler, z. B. SD-Init oder Flash nicht erkannt
Serielle Ausgabe
Typische Meldungen beim erfolgreichen Start:
Starte Flash -> SD
DEBUG: SD init OK
JEDEC ID: 0x...
Ergebnis
Nach einem erfolgreichen Lesevorgang liegt der Dump als Datei /flash_dump.bin auf der microSD-Karte.
Bei einem 128-Mbit-Flash wie dem 25FQ128 entspricht das typischerweise einer Dateigröße von rund 16.777.216 Byte.
Fertig: An diesem Punkt ist der Dump erfolgreich auf der SD-Karte gelandet und kann anschließend am PC weiter analysiert werden.