Forum zostanie zamknięte w dniu 2019-02-14

Pozdrawiam
pcdeb.pl

Programator pamięci Flash NAND Lite! TSOP48

Opisy i schematy programatorów.
ODPOWIEDZ
Awatar użytkownika

Autor tematu
pcdeb.pl
Administrator
Posty: 374
Rejestracja: 13 kwie 2013, o 14:38
Kontaktowanie:

Programator pamięci Flash NAND Lite! TSOP48

Post autor: pcdeb.pl » 6 paź 2016, o 22:23

Obrazek
Założeniem projektu miało być stworzenie od podstaw programatora do popularnych pamięci typu Flash NAND, by wypełnić lukę na rynku w segmencie programatorów niskobudżetowych. Czasem istnieje konieczność odczytania układu Flash NAND znajdującego się np. w pendrive, ale i również różnego rodzaju nawigacjach, modemach, routerach, telewizorach itd. A niekoniecznie słuszny staje się zakup profesjonalnego narzędzia za cenę conajmniej 5x większą, by odczytać/zaprogramować jeden układ. Z pamięciami Flash NAND mam do czynienia stosunkowo długo, można powiedzieć już nieco ponad 3 lata. Gdy pierwszy raz zastosowałem taką pamięć do projektowanego urządzenia, widziałem same zalety: niska cena, duża pojemność, łatwość obsługi. Po latach użytkowania, widzę również wady, ale o tym za chwilę.




Zaprojektowany przeze mnie programator, z uwagi na cięcie kosztów, zawiera tylko jedno gniazdo do umieszczenia pamięci Flash NAND w obudowie TSOP48 lutowane na stałe.

Obrazek

Całość zasilana jest z portu USB napięciem 5,0V, zaś układ pamięci FlashNAND oraz procesor zasilany jest napięciem 3,3V podawanym ze stabilizatora LDO TPS781330220. Zaletą tego stabilizatora jest wbudowane zabezpieczenie nadprądowe 150mA, które świetnie się sprawuje w przypadku odwrotnego włożenia układu do podstawki, które nie powoduje uszkodzenie układu pamięci, jak również to, że miałem je w dużej ilości w magazynie.

Dodałem dwie diody LED, wskazujące napięcia 5,0V (D5), oraz 3,3V (D1), po których można szybko sprawdzić, czy wszystko jest w porządku.

Wykorzystałem pełny układ połączeń pamięci FlashNAND, w której obecne są cztery linie CE, oraz cztery linie RB, dzięki czemu jest możliwość obsługi wszystkich rodzajów pamięci dostępnych w obudowie TSOP48, zaś zasilanie(3,3V) jest doprowadzone tylko i wyłącznie do wyprowadzeń VSS(13,36), VCC(12,37).

Całym programatorem zarządza procesor XMEGA-A4U, który idealnie się wpasował pod kątem liczby wyprowadzeń, z którym komunikuje się oprogramowanie na PC, poprzez konwerter USB <> FT245.
Zastosowałem tutaj bardzo ciekawe rozwiązanie bazujące na magistrali równoległej, łącząc linie danych DATA0-7 układu FT245 bezpośrednio do portu procesora XMEGA, dodatkowo połączając je do układu pamięci FlashNAND.

Zyskałem na tym dużą prędkość transmisji danych oraz dużą swobodę komunikacji.
Uzyskane wyniki samego mnie zaskoczyły:

FT245 <> XMEGA = 980kB/s
NAND <> XMEGA = 2,7MB/s

Zatem przykładowa komunikacja wówczas wygląda następująco:
1. PC -> XMEGA - polecenie odczytu z pamięci NAND
2. PC <- XMEGA - rozpoczęcie pakietu odczytu
2. XMEGA -> NAND - przygotowanie do odczytu, wykonanie sekwencji
3. PC <- NAND - transfer danych bezpośrednio z NAND do PC
4. XMEGA <- NAND - nasłuch danych liczenie CRC32
5. XMEGA -> NAND - zakończenie odczytu
6. PC <- XMEGA - zakończenie pakietu odczytu

W takim ogólnym postępowaniu uwzględniając narzut protokołu i komunikację naprzemienną z PC osiągam realny transfer na poziomie 750kB/s uwzględniając czas odczytu pamięci FlashNAND na poziomie 60us.

Programator również posiada możliwość pomiaru czasu odczytu/zapisu/kasowania stron. Wykonuje to całkowicie sprzętowo w XMEGA przy użyciu Timer z dokładnością do 1us. Z uwagi na to, że wyjścia RB układu pamięci FlashNAND są podciągnięte do zasilania jedynie przez rezystory Pull-Up w XMEGA, wartości te nieco odbiegają od tych, które są w dokumentacji. Jak dużo, muszę to jeszcze zmierzyć oscyloskopem. Jednakże daje to nam możliwość oceny diagnostycznej danego układu pamięci FlashNAND. Przykładowo można zauważyć, że niektóre strony są czytane nieco szybciej niż inne. Różnica czasem jest znaczna.

Przykład: K9GAG08U0E-SCB0
Blok 0, strona 0: odczyt: 197us
Blok 0, strona 1: odczyt: 198us
Blok 0, strona 2: odczyt: 235us
Blok 0, strona 3: odczyt: 198us
Blok 0, strona 4: odczyt: 236us

Przykład: MT29F64G08CBAAAWP
Blok 0, strona 0: odczyt: 42us
Blok 0, strona 1: odczyt: 43us
Blok 0, strona 2: odczyt: 42us
Blok 0, strona 3: odczyt: 42us
Blok 0, strona 4: odczyt: 58us
Blok 0, strona 5: odczyt: 58us
Blok 0, strona 6: odczyt: 42us

Przykład: K9F5608U0C-YIB0
Blok 0, strona 0: odczyt: 9us
Blok 0, strona 1: odczyt: 9us
Blok 0, strona 2: odczyt: 8us
Blok 0, strona 3: odczyt: 8us
Blok 0, strona 4: odczyt: 8us
Blok 0, strona 5: odczyt: 8us
Blok 0, strona 6: odczyt: 8us

Programator posiada również detekcję układu, w tym celu po włożeniu układu i włożenia programatora do USB pierwszą czynnością jest ustawienie w stan niski linii /WP celem zabezpieczenia układu pamięci FlashNAND przed przypadkowym skasowaniem, odczekaniu 1000ms i po tym czasie wysyłane jest polecenie RESET do pamięci, a następnie wczytywany identyfikator pamięci.

Jeśli wczytany identyfikator posiada nie różniące się od siebie wartości, np: 0x00, 0x00, 0x00, to układ oznaczany jest jako niewykryty i zaświeca się czerwona dioda LED, zaś jeśli te wartości różnią się od siebie, wówczas zaświeca się zielona dioda LED. Funkcja ta została dodana po to, by móc zaraz po włożeniu układu do podstawki sprawdzić, czy wszystko w porządku i można się zabierać za program PC, czy też należy jednak poprawić coś w ułożeniu układu.

Obrazek

Koszty szacunkowe około 105zł. Przy założeniu że wykonujemy od razu 5 sztuk.
Najgorzej jest z gniazdem TSOP48, które niestety trzeba sprowadzić z Chin.

Plik HEX aktualnej wersji(NANDLite_r1.0_1003a.zip) programatora znajduje się w załączniku, oraz aplikacja PC off-line(NANDLite_v1.0.1003.43.zip)

Zaś najnowsza wersja oprogramowania znajduje się pod linkiem Link która zawiera najnowsze sygnatury obsługiwanych układów.

Wygląd programu
ObrazekObrazekObrazekObrazekObrazek

Zródło: http://www.elektroda.pl/rtvforum/viewto ... 0#15973950
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
ownCloudusługi internetowe pod kontrolą
http://retro.68k.plretro sprzęt do /Amiga/Atari/C64/


KRISSDORA
Posty: 1
Rejestracja: 9 lut 2017, o 13:30

Re: Programator pamięci Flash NAND Lite! TSOP48

Post autor: KRISSDORA » 9 lut 2017, o 13:33

Witam jestem zainteresowany kupnem takiego programatora jaki koszt z wysyłka pozdrawiam .


pxdc2
czasem tu zaglądam
Posty: 14
Rejestracja: 7 paź 2016, o 08:58

Re: Programator pamięci Flash NAND Lite! TSOP48

Post autor: pxdc2 » 9 lut 2017, o 21:04

Witam.

Prac ciąg dalszy nad programatorem.
Na chwilę obecną już mam opracowany algorytm kodów korekcyjnych BCH umożliwiający korekcję do 4 bitów w przestrzeni 512 bajtów. Niebawem dołączę oficjalnie do aplikacji NANDLite. Jednak na chwilę obecną znalazłem te kody tylko w jednym wsadzie pamięci Flash NAND w którym jest system plików UBI.

Zatem nadal poszukuję jakichkolwiek wsadów celem analizy struktury. Niebawem również będzie możliwość bezpośredniego uploadu wsadów z poziomu aplikacji NANDLite.

Obecna wersja oprogramowania 1.0.1014.63 - w załączniku.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.


pxdc2
czasem tu zaglądam
Posty: 14
Rejestracja: 7 paź 2016, o 08:58

Re: Programator pamięci Flash NAND Lite! TSOP48

Post autor: pxdc2 » 9 lut 2017, o 21:12

KRISSDORA pisze:Witam jestem zainteresowany kupnem takiego programatora jaki koszt z wysyłka pozdrawiam .
Koszt 250zł z wymienną podstawką, gdyż tylko takie obecnie są produkowane na zamówienie.
Czas realizacji niestety ok. 10 dni z uwagi na potrzebę zamówienia podstawek czarnych bezpośrednio z Chin.
Standardowo zaś 21 dni wysyłka. Żółte są na stanie :)

ObrazekObrazekObrazek


pxdc2
czasem tu zaglądam
Posty: 14
Rejestracja: 7 paź 2016, o 08:58

Re: Programator pamięci Flash NAND Lite! TSOP48

Post autor: pxdc2 » 3 maja 2017, o 14:56

Programator nadal się rozwija, czego dowodem jest kolejna wersja oprogramowania.

Nowa wersja przygotowana jest już do wyboru języku interfejsu, pozostaje jedynie wykonać tłumaczenia.

Ponadto dodane zostały sterowniki do aplikacji obsługującej programator, nie jest już konieczne szukanie na Internecie odpowiednich do układu FTDI.

Testowana jest obecnie funkcja uploadu wsadów na serwer NAND Lite. Bardzo to usprawni dalszą pracę nad programatorem, zwłaszcza obsługę badbloków, korekcji bitów itd., gdzie po prostu należy w sposób praktyczny przetestować opracowane algorytmy obsługi w/w zagadnień.

Zdaję sobie sprawę, że wysłanie 8GB i więcej przez Internet jest problematyczne. Stąd pomysł, aby wyręczyć użytkowników programatora i wykonać funkcję automatycznego upladu działającego w myśl zasady: zaznacz pliki, kliknij wyślij i po sprawie.

Poniżej przedstawiam aktualną listę zweryfikowanych przez użytkowników obsługiwanych układów:
EON EN27LN1G08-25TCP
EON EN27LN1G08-25TIP
EON EN27LN2G08-25TCP
EON EN27LN2G08-25TIP
EON EN27LN4G08-25TCP
EON EN27LN4G08-25TIP
HYNIX HY27US08121B-T
HYNIX HY27US08121B-TP
HYNIX HY27US08281A-T
HYNIX HY27US08281A-TP
HYNIX H27UBG8T2BTR-BC
HYNIX H27UBG8T2CTR-BC
HYNIX H27UCG8T2ATR-BC
HYNIX H27UCG8T2BTR-BC
HYNIX H27U4G8F2DTR-BC
HYNIX H27U4G8F2ETR-BI
HYNIX H27U1G8F2BTR-BC
HYNIX H27U1G8F2CTR-BC
HYNIX H27U2G8F2CTR-BC
MACRONIX MX30LF1G18AC
MACRONIX MX30LF1G08AA-TI
MACRONIX MX30LF4G18AC
MICRON MT29F64G08CBAAAWP
MICRON MT29F1G08ABADAWP
MICRON MT29F1G08ABAEAWP
MICRON MT29F2G08ABAEAWP
MICRON MT29F4G08ABAEAWP
MICRON MT29F4G08ABADAWP
MICRON MT29F4G08AAC
MICRON MT29F8G08ABABAWP
MICRON MT29F64G08CBABAWP
SAMSUNG K9G8G08U0A-PCB0
SAMSUNG K9G8G08U0A-PIB0
SAMSUNG K9GAG08U0E-SCB0
SAMSUNG K9GAG08U0E-SIB0
SAMSUNG K9GAG08U0F-SCB0
SAMSUNG K9GAG08U0F-SIB0
SAMSUNG K9GAG08U0M-PCB0
SAMSUNG K9GAG08U0M-PIB0
SAMSUNG K9LBG08U0E-SCB0
SAMSUNG K9LBG08U0E-SIB0
SAMSUNG K9HCG08U1E-SCB0
SAMSUNG K9HCG08U1E-SIB0
SAMSUNG K9F1G08U0A-PCB0
SAMSUNG K9F1G08U0A-PIB0
SAMSUNG K9F1G08U0D-SCB0
SAMSUNG K9F1G08U0D-SIB0
SAMSUNG K9F2G08U0B-PCB0
SAMSUNG K9F2808U0C-YIB0
SAMSUNG K9F2808U0C-PIB0
SAMSUNG K9F5608U0A-YCB0
SAMSUNG K9F5608U0A-YIB0
SAMSUNG K9F5608U0A-PCB0
SAMSUNG K9F5608U0A-PIB0
SAMSUNG K9F5608U0B-YCB0
SAMSUNG K9F5608U0B-YIB0
SAMSUNG K9F5608U0B-PCB0
SAMSUNG K9F5608U0B-PIB0
SAMSUNG K9F5608U0C-YCB0
SAMSUNG K9F5608U0C-YIB0
SAMSUNG K9F5608U0C-PCB0
SAMSUNG K9F5608U0C-PIB0
SAMSUNG K9F5608U0D-PCB0
SAMSUNG K9F5608U0D-PIB0
SAMSUNG K9F1208U0C-XCB0
SAMSUNG K9F1208U0C-XIB0
SAMSUNG K9K4G08U0M-PCB0
ST NAND128W3A
ST NAND256W3A
ST NAND512W3A
ST NAND512W3A2CN6
ST NAND512W3A2SN6
ST NAND01GW3A
ST NAND01GW3B2CN6
ST NAND04GW3B2DN6
TOSHIBA TC58NVG2S3ETA00
TOSHIBA TC58DVM92A5TA00
TOSHIBA TC58NVG1S3ETA00
TOSHIBA TC58DVG3S0ETA00
Toshiba TC58NVG0S3HTA00
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.


Gal_kris
Posty: 1
Rejestracja: 26 maja 2017, o 15:53

Re: Programator pamięci Flash NAND Lite! TSOP48

Post autor: Gal_kris » 26 maja 2017, o 16:01

WItam serdecznie, muszę powiedzieć że projekt udany w 100% i dołączam się do listy chętnych na zakup tego programatora po tym jak zobaczyłem ile kosztuje programator w gotroniku, więc zamawiam a na zachętę wyślę już kaskę na konto, tylko proszę o dane konta na które mam je przesłać. Pytanko czy na zakup programatora dostanę fakturę?

pozdrawiam, Krystian


pxdc2
czasem tu zaglądam
Posty: 14
Rejestracja: 7 paź 2016, o 08:58

Re: Programator pamięci Flash NAND Lite! TSOP48

Post autor: pxdc2 » 7 cze 2017, o 10:08

Witam

Zapraszam do pobrania najnowszej wersji aplikacji do obsługi programatora NANDLite.
Link

Wersja 1.0b1014.78
+ Dodana testowa funkcjonalność wysyłki wsadów na serwer celem analizy struktury.

Pojawiła się zakładka Wsady, gdzie można dodawać już pliki z wsadem, który w łatwy sposób zostanie wysłany na serwer celem analizy.

Obecnie pojemność serwera wynosi 200GB, z czasem rozszerzy się jego pojemność.

Wysłane wsady pomogą mi w rozpracowywaniu struktur danych dotyczących omijania uszkodzonych bloków pamięci, jak również testowanie algorytmów korekcji danych ECC.

Wysłane pliki oczywiście są w sposób anonimowy i dostępne tylko dla mnie.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.


pxdc2
czasem tu zaglądam
Posty: 14
Rejestracja: 7 paź 2016, o 08:58

Re: Programator pamięci Flash NAND Lite! TSOP48

Post autor: pxdc2 » 15 cze 2017, o 20:12

Dziękuję za szybką reakcję. Do dziś otrzymałem od Państwa 5 wsadów pod układ K9GAG08U0E o pojemności 2GB. Wiążą się z tym dwie rzeczy:
- system uploadu działa prawidłowo
- analizę BAD BLOKÓW rozpocznę właśnie od tych układów.

Część informacji już mam rozpracowane, m.in. że zastał zastosowany algorytm korekcji błędów ECC typu BCH.
Każda strona o wielkości 8kB jest podzielona na fragmenty po 1036 bajtów, którą zabezpieczają dodatkowe 42 bajty danych, umożliwiając naprawienie 24 błędnych bitów. Czyli w sumie na stronie może być 192 błędnych bitów a i tak będzie można prawidłowo odczytać informacje. Zatem, w mojej ocenie: Nieźle :)
Zastosowany system Samsung'a: FSR: Flex Sector Remapper.
Do poszukania została właściwa rzecz, czyli mapa z relokacją uszkodzonych bloków, w czym mam nadzieję, że pomogą mi przesłane wsady.

Tym samym jednocześnie proszę o nadsyłanie jakichkolwiek wsadów celem dalszej analizy.
Niebawem będzie możliwość pobierania wysłanych wsadów, bezpośrednie programowanie z Internetu i wiele, wiele innych fajnych funkcjonalności.

Dziękuję za wsparcie NAND Lite!


pxdc2
czasem tu zaglądam
Posty: 14
Rejestracja: 7 paź 2016, o 08:58

Re: Programator pamięci Flash NAND Lite! TSOP48

Post autor: pxdc2 » 15 cze 2017, o 20:13

Jeśli chodzi o wysyłanie wsadów celem analizy, to instalujesz aplikację z poprzedniego postu:
http://software.progelo.pl/NANDLite/publish.htm

Lub pobierasz wersję bez instalacji, przechodzisz na zakładkę wsady, klikasz Dodaj plik...
zaznaczasz pliki i tyle... upload jest samoczynny, wystarczy mieć włączoną aplikację NANDLite.
Można w dowolnym czasie zamknąć aplikację, po ponownym włączeniu, wznawiana jest wysyłka.

Każdy plik, niezależnie od wielkości czy to 2GB, czy 16GB dzielony jest na fragmenty po 1MB i sprawdzane są na serwerze. Jeśli dany fragment istnieje, jest pomijany, tym sposobem następuje szybsza wysyłka.

Nie jest wymagana obecność fizycznego programatora.


pxdc2
czasem tu zaglądam
Posty: 14
Rejestracja: 7 paź 2016, o 08:58

Re: Programator pamięci Flash NAND Lite! TSOP48

Post autor: pxdc2 » 15 cze 2017, o 20:13

Nawet mogą być wsady pamięci które nie działają - czyli wadliwe. Każdy plik na miarę złota.

Na dniach dołożę również pole opisowe do każdego wsadu, by przekazać dodatkowe informacje, np. z jakiego telewizora został odczytany, jaka pamięcć, czy sprawny, czy też nie jakie są objawy.

Przeglądając wsady pamięci K9GAG08U0E widzę, że posiada dwie mapy pamięci uszkodzonych bloków. W jednym z wsadów jest brak kopii mapy. To też daje do myślenia. Hipoteza jest taka, że w trakcie zapisu mapy uszkodzonych bloków może wystąpić błąd zapisu i tutaj może być problem - stąd może nie startować telewizor - niebawem zweryfikujemy.

Już rozpoznaję we wsadzie 5 partycji, adresy, oraz ich rozmiary. Każda partycja jest poprzedzona od kilku do kilkunastu bloków o tajemniczej zawartości(podejrzewam że jakiś rodzaj FTL - Flash Translation Layer), później już rozpoczyna się nagłówek partycji właściwej FAT32.

ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość