
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ę co najmniej 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.

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 NAND - przygotowanie do odczytu, wykonanie sekwencji
3. PC
Cool? Ranking DIY