NAND FLASH z pendriva - format danych

Jul 10, 2006 6 Replies

Witam!



Mam zgryza technicznego. Znajomemu "uszkodził się" pendrive (pies go odgryzł, czy co). W każdym razie miał wyczucie i podzielił PCB między pamięciami (2x FLASH) a kontroleram (i raczej nie nadaje się do zlutowania - wielowarstwowy PCB i wyprute ścieżki).



Znajomy odlutował mi pamięci, kupiłem w Epsilonie ZIFa do tych chipów, zmajdrowałem na podstawie dokumentacji do chipa czytnik i zassałem zawartość do komputera.



I tu jest problem: dane nie są ułożone sekwencyjnie. Dane wyglądają tak:



Ramka ma 2048+64 bajty. W środku wygląda to tak: 4x struktura (512 bajtów sektor + 8 bajtów krzaczków + 8 bajtów 0xFF )


64 ramki tworzą stronę, stron jest 2048.

Są dwa scalaki, już wyczaiłem, że system czyta ramki raz z jednego, raz z drugiego.Zrobiłem program, który wywala śmieci z ramki (te wstawki po 16 bajtów między sektorami) oraz skleja ramki z obu chipów w "superramki" po



4096 bajtów a te w "superstrony" po 64 superramki, czyli po 256kB.

Jak popatrzę na superramkę, to mam tam zupełnie sensowne dane - dają się odczytać napisy, widać fragmenty struktury dysku (FAT, MBR, itd). Problem z tym, że superstrony nie są w kolejności... Pierwsze 256kB pena jest w superramce 0x0CD. Kończy się to FATem, więc szukając kontynuacji znalazłem



2 następne superramki: 0x0E2 i 2 następne do wyboru : 0x00D albo 0x0B1.

I pytanie moje: czy ktoś ma jakiekolwiek pojęcie (nawet teoretyczne, czy nawet "ciocia mówiła"), jak powiązać ramki??? Widzę dwie możliwości: gdzieś w pamięci jest superramka z mapowaniem numerów sekwencyjnych na superramki bądź te śmieci między sektorami zawierają jakąś formę mapy...



Za jakąkolwiek pomoc będę bardzo wdzięczny


Kupić identyczny pendrive i wlutować te kości. Jak sądzę to dane zawarte na nim są najwięcej warte. K.

Pawel Kraszewski napisał(a):

Poszukaj dokumentacji kontrolera tego pendrive'a i sprawdź, czy _przypadkiem_ nie opisali sposobu zapisu, zapewnienia ,,wear leveling'' itp. Jeśli tego nie ma, to możliwe, że będzie chociaż przykładowy schemat, na którego podstawie można sklecić pendrive'a na pająku.

A łatwiej by było na pewno kupić takiego samego pendrive'a (skoro dane są takie ważne, to raczej nie był to noname) i podmienić pamięć, jak już wcześniej wspomniano.

w.

Ha... No tak... To był mój pierwszy odruch... Ale obudowy do pendrive'a nie ma, a PCB nie jest sygnowana...

Kontroler jest taki (loga firmy brak):

M-DiSK

01-AS-046-01

Wygląda to na TwinMOSa (przynajmniej wg Google). Skontaktuję się z nimi. Dzięki za ,,wear leveling'' - poszukam więcej w sieci.

Numeracja bitów szyny danych i adresowej pamiêci (D0...D7, A0... Ax) jest "umowna" tzn. projektant móg³ po³±czyc je ze sterownikiem tak aby mu wysz³y najlepiej ¶cie¿ki na p³ytce, a nie zgodnie z numeracj±. Po odczytaniu zawartosci takiej pamieci programatorem trzeba zrobiæ permutacjê adresu / danych zgodnie ze schematem po³±czeñ na p³ytce.

Dobry punkt - ale to jest NAND-FLASH a nie zwykły (jak, powiedzmy, BIOS) i nie ma szyny adresowej. Tj. i ma i nie ma - bez włażenia w szczegóły - dane są multipleksowane z adresem na jednej 8-bitowej szynie. Czyli jak część danych widzę, to zanóźkowałem go dobrze i nie ma możliwości pomyłki.

Idąc tropem M-DiSKa - znalazłem takie coś (datowane 25.02.05):

formatting link
'Mobile Disk III' ma kropka w kropkę taką samą płytkę, te same chipy pamięci, tylko ciut inny kontroler (ja mam 01-AS-046-01 a tam jest

01-AS-038-00)

Pawel Kraszewski snipped-for-privacy@Kraszewscy.net napisał(a):

[ciach] podłączę się pod wątek, w sumie stoję przed podobnym problemem - zdechła karfa Compact Flash Kingston 512MB - próbowałem kupić taką - niestety mimo takiej samej obudowy - zawartość inna - mcu karty - ARM - nieżywy - jestem przygotowany na wylutowanie pamięci i odczytanie ich za pomocą innego mcu - tylko pytanie co dalej - wear leveling algorithm (o ile jest zastosowany) chyba mocno skomplikuje sprawę... może ktoś doświadczony podzieli się sugestiami? dziękuję i pozdrawiam Paweł

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required