Forum: Mikrocontroller und Digitale Elektronik NAND Flash dumpen mit Teensy 2.0++


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael N. (c0d3z3r0)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich hoffe, jemand kann mir bei meinem Problem helfen :-)

Ich möchte mot einem Teensy 2.0++ einen Toshiba TC58NVG0S3ETA00 NAND 
Flash dumpen. Der NAND-Flash befindet sich auf dem Systemboard eines 
Routers mit einem Broadcom BCM68385.

Ich versuche zunächst nur die Hersteller- und Chip-ID auszulesen, was 
aber schon scheitert. Egal, was ich lese, ich erhalte immer denselben 
Wert:
1
DEBUG readDataBus: 7C 1111100
2
DEBUG readDataBus: 7C 1111100
3
DEBUG readDataBus: 7C 1111100
4
DEBUG readDataBus: 7C 1111100
5
DEBUG readDataBus: 7C 1111100
6
MID: 7C
7
CID: 7C

Ich verwende einen 360 NAND Clip. Die Pinbelegung ist wie folgt:

Teensy <-> Clip/NAND
C0-C7 <-> I/O0-I/O7
B0 <-> /CE (FCE1)
B1 <-> /RE
B2 <-> CLE
B3 <-> ALE
B4 <-> /WP
B5 <-> /WE
B6 <-> RY/BY (FRB1)
VCC3.3 <-> VCC
GND <-> VSS (GND)

Datenlatt des NAND Chips: 
http://www.wilsolucoes.com.br/datasheet/Tc58nvg0s3eta00.pdf

Code im Anhang.


Danke schonmal!

: Bearbeitet durch User
von void (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>NAND-Flash hängt am Broadcom BCM68385.
  >Teensy kontaktiert NAND-Flash per 360 NAND Clip

Ist ein bisschen ins blaue geraten;
Hast du dafür gesorgt, dass der BCM68385 alle Signalleitungen des 
NAND-Flash auf Hi-Z hält?
Weil wenn nicht arbeitet die I/O des Teensy gegen die I/O des BCM68385 
und das wird dann nichts...

von Michael N. (c0d3z3r0)


Bewertung
0 lesenswert
nicht lesenswert
void schrieb:
>>NAND-Flash hängt am Broadcom BCM68385.
>   >Teensy kontaktiert NAND-Flash per 360 NAND Clip
>
> Ist ein bisschen ins blaue geraten;
> Hast du dafür gesorgt, dass der BCM68385 alle Signalleitungen des
> NAND-Flash auf Hi-Z hält?

Habe ich nicht. Ich wüsste auch nicht wie. Auf die CPU habe ich momentan 
keinerlei Zugriff. Es ist kein UART vorhanden. JTAG ginge, der Zugriff 
auf den NAND bleibt mir aber verwehrt, weil es keinen Treiber für den 
Broadcom NAND-Controller in OpenOCD gibt.

Um zu verhindern, dass das Teil bootet und dann an den Signalleitungen 
des NAND rumspielt, setze ich zunächst alle IO-Pins auf High und warte 
ein paar Sekunden. Der BCM kann dann nichts lesen und bleibt stehen. Das 
scheint auch zu funktionieren, die Status LED bleibt aus und blinkt 
nicht wie bei einem normalen Start. Das ganze ist nicht im angehängten 
Code mit drin, da ich es so einfach wie möglich halten wollte.

von Andrew T. (marsufant)


Bewertung
0 lesenswert
nicht lesenswert
Michael N. schrieb:
> Habe ich nicht. Ich wüsste auch nicht wie.

Dann solltest Du zumindest messen, welcher Pegel an dem NAND Flash 
anliegt. Sind ja nur wenige Leitungen, die du prüfen mußt und diese sind 
gut (hoffentlich) zugänglich.

Für die HW-Entwicklung und den Zugriff aufs NAND nutzt Broadcom ein 
eigenes Programm, nicht öffentlich gemacht, und da die Signalpegel zw. 
NAND und BCM Chip spannungskomptatibel ist da kein Pegelwandler zwischen 
(den man gfs. hochohmig schalten kann).


somit: Erst mal messen. Ergebnis hier posten.
Danach ist vermutlich klar, das es leider nicht geht.

von da1l6 (Gast)


Bewertung
1 lesenswert
nicht lesenswert
CPU beim auslesen im RESET halten, könnte helfen.

von Michael N. (c0d3z3r0)


Bewertung
0 lesenswert
nicht lesenswert
Andrew T. schrieb:
> Michael N. schrieb:
>> Habe ich nicht. Ich wüsste auch nicht wie.
>
> Dann solltest Du zumindest messen, welcher Pegel an dem NAND Flash
> anliegt. Sind ja nur wenige Leitungen, die du prüfen mußt und diese sind
> gut (hoffentlich) zugänglich.

Ok, werd ich mal messen.

da1l6 schrieb:
> CPU beim auslesen im RESET halten, könnte helfen.

Das werde ich auch mal probieren, Danke.

von Michael N. (c0d3z3r0)


Bewertung
0 lesenswert
nicht lesenswert
Hallo und erstmal sorry für die späte Antwort... ich hatte viel zu tun 
in letzter Zeit, konnte mir das jetzt aber endlich mal ansehen.

Die IO-Pins lassen sich (im "aufgehängten" Zustand durch I/O-Pins beim 
Start kurzschließen) ohne Probleme mit einem 4.7k Widerstand auf 0/1 
ziehen. Bei den Steuerpins CE, ALE, CLE etc. klappt das nicht.

Ein Blick auf die Platine verrät auch warum: Die I/O Pins sind jeweils 
mit einem 5k Widerstand an der CPU angeschlossen, die Steuerpins mit 33 
bzw. 150 Ohm.

Ich habe also wohl drei Möglichkeiten:
- Hoffen, dass der Controller im JTAG Reset die Steuerpins in Ruhe lässt 
(noch nicht getestet; vielleicht morgen)

- die SMD-Widerstandsnetzwerke auslöten (da dürfte im schlimmsten Fall 
am wenigesten kaputtgehen, kann man ja nachkaufen. SMD löten ist auch 
kein Problem für mich.)

- versuchen, den NAND auszulöten - nein, ich habe keinen Heißluftfön; 
heißt, das wäre dann die "viel Lötzinn und Nadel-Hebel"-Methode, die 
bisher zwar gut funktioniert hat, aber natürlich ein gewisses Risiko mit 
sich bringt und deshalb nur der allerletzte Ausweg wäre.

: Bearbeitet durch User
von Skyper (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Michael N. schrieb:
> - versuchen, den NAND auszulöten - nein, ich habe keinen Heißluftfön;
> heißt, das wäre dann die "viel Lötzinn und Nadel-Hebel"-Methode, die
> bisher zwar gut funktioniert hat, aber natürlich ein gewisses Risiko mit
> sich bringt und deshalb nur der allerletzte Ausweg wäre.

Ich würde da zum "CHIP QUIK SMD-1 Removal Kit" raten, spezielles Zinn 
das bis 150°C flüssig bleibt... gibt bei youtube einige Videos zu dem 
Thema... und ich hab es selbst schon benutzt... die 15~20 EUR sind es 
echt wert...

von Andrew T. (marsufant)


Bewertung
0 lesenswert
nicht lesenswert
Michael N. schrieb:
> - die SMD-Widerstandsnetzwerke auslöten (da dürfte im schlimmsten Fall
> am wenigesten kaputtgehen, kann man ja nachkaufen. SMD löten ist auch
> kein Problem für mich.)

Obiges ist ein erprobter Weg, und würde ich Dir auch anraten bevor Du:

> - versuchen, den NAND auszulöten - nein, ich habe keinen Heißluftfön;
> heißt, das wäre dann die "viel Lötzinn und Nadel-Hebel"-Methode,

nimmst.


Der Vorteil den Du bei der "nur Widerstände auslöten" hast, ist dass der 
Flash  von der Original Platine mit Vcc versorgt wird -- und das klappt 
meist besser als sich Vcc vom Dediprog o.ä. Progger zu holen.
Zusätzlich ersparst Du dem Flash die thermische Belastung - mit 
Sicherheit ein starkes Argument.

von Michael N. (c0d3z3r0)


Bewertung
0 lesenswert
nicht lesenswert
Widerstände auslöten hat funktioniert! Vielen Dank für eure Hilfe

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.