Witam . Mam pytanie dotyczące działania pamięci NAND FLASH. Chodzi mi o teorię dotyczącą działania bym mógł napisać program do obsługi tych pamięci. Programatory są mega drogie i nie każdego stać na kupno profesjonalnego sprzętu , a dodając że miałoby się zaprogramować tylko jeden układ to wogóle cała inwestycja byłaby nie rentowna. Także proszę o pomoc kogoś kto ma pojęcie jak działają te pamięci i mógłby tu krok po kroku wyjasnić jak zachowują się poszczególne sygnały wejściowe do danych wchodzących/wychodzących przez I/O0-I/O7.
W NAND dostepne sygnały są : I/O1 - 8 ,/CE (chip enable),/WE(zezwolenie na zapis),/RE(zezwolenie odczytu),CLE command latch enable,ALE address latch enable, /WP write protect,RY /BY ready/busy , GND,Vcc,Vss (masa wejściowych sygnałów).
Rozumiem że /CE to pin który wprowadzony w stan "0" spowoduje włączenie się chipa do pracy. Musi być zawsze włączony. Chyba, że korzystamy z kilku podobnych układów - wtedy on staje się jakby włącznikiem aktywnego układu w danym czasie.
/WE to pin zezwalający na zapis -musi być w stanie "0" jeśli chcemy coś zapisać.
/RE podobnie do /WE tyle, że tyczy się odczytu. Oba piny mogą być jedynie w stanie wysokim "1" jak mi się zdaje. Jeden z nich musi być w niskim stanie by było OK. Chyba że się mylę ? Proszę mnie poprawić.=Dziękuję=
/WP write protect - blokada zapisu. Gdy nie chcemy by układ został zapisany wtedy ten pin dajemy do GND. Normalnie poprzez np. rezystor 10K do Vcc.
RY /BY - inaczej READY /BUSY - czyli gotowy /zajęty . Wyjście z układu , pin przerwania uniemożliwiający wysłanie komendy odczytu lub zapisu przez zewnętrzny kontroler (np.AVR).
GND ,Vcc ,Vss - to chyba jest znane oznaczenie masy i zasilania .
I tu moja wiedza się kończy.
Do czego służą CLE command latch enable,ALE address latch enable to już wyczytałem, ale nie mam pojęcia w jakiej kolejności muszą łapać "0" i "1", w jakim czasie, by możliwy był odczyt czy zapis NAND ?
Czy jest możliwe że pojawi się ktoś obznajomoony z tym tematem i mi wyjaśni?
Czy są jakieś procedury init , tak jak to jest w przypadku wyświetlacza do S65 (Kranz) do odczytu i zapisu?
=DZIĘKUJĘ= za wszelkie uwagi dotyczące tego tematu.
Do moderatorów tego forum : proszę nie usuwać tego tematu, przejrzałem to forum i nie znalazłem żadnej istotnej informacji w tym kierunku. A chyba ostatnio temat stał się dosyć ciekawy. Jeśli umieściłem go w złej kategorii to proszę o przeniesienie.Dziękuję.
Oto znalazłem parę ciekawych informacji:
Z rysunku - czyli z 2 diagramów: Basic Read Page i Basic Page Write/Program wynika że :
a)dla odczytu:
stan początkowy : /CE -"1",CLE - "0", ALE- "0", /WE- "1",/RE-"1"
zmieniamy /CE z "1" na "0" CLE -"0" , ALE - "0" , /WE -"1"
następnie zmieniamy CLE na "1" i /WE na "0" , na I/O(7:0) wysyłamy komendę 00H - znaczy że chcemy oczytać
kolejny krok to zmiana /WE na "1" i CLE na "0" włączamy ALE zmieniając stan na "1" , krótko /WE na "0",na I/O(7:0) podajemy adres do odczytu np.15H ,podnosimy /WE do stanu "1"
pin /RE na "0" , odczytujemy na I/O (7:0) zawartość naszej komórki pamięci pod adresem np.15H .
b)dla zapisu:
stan początkowy : /CE -"1",CLE - "0", ALE- "0", /WE- "1",/RE-"1"
/RE niezmiennie stan "1" - przez cały czas zapisu
reszta prawie tak samo jak dla odczytu , tylko komendę mamy inną bo 80H.
Dobrze rozumuję ?
Do moderatora forum : Proszę nie kasować, wiem że na pewno rzuciło się w oczy że mam drugi podobny temat w dziale z AVRami ale jak zobaczę że tu jest bryndza - znaczy nikt nie zajrzy i nie napisze to sam skasuje ten temat. OK ?
W NAND dostepne sygnały są : I/O1 - 8 ,/CE (chip enable),/WE(zezwolenie na zapis),/RE(zezwolenie odczytu),CLE command latch enable,ALE address latch enable, /WP write protect,RY /BY ready/busy , GND,Vcc,Vss (masa wejściowych sygnałów).
Rozumiem że /CE to pin który wprowadzony w stan "0" spowoduje włączenie się chipa do pracy. Musi być zawsze włączony. Chyba, że korzystamy z kilku podobnych układów - wtedy on staje się jakby włącznikiem aktywnego układu w danym czasie.
/WE to pin zezwalający na zapis -musi być w stanie "0" jeśli chcemy coś zapisać.
/RE podobnie do /WE tyle, że tyczy się odczytu. Oba piny mogą być jedynie w stanie wysokim "1" jak mi się zdaje. Jeden z nich musi być w niskim stanie by było OK. Chyba że się mylę ? Proszę mnie poprawić.=Dziękuję=
/WP write protect - blokada zapisu. Gdy nie chcemy by układ został zapisany wtedy ten pin dajemy do GND. Normalnie poprzez np. rezystor 10K do Vcc.
RY /BY - inaczej READY /BUSY - czyli gotowy /zajęty . Wyjście z układu , pin przerwania uniemożliwiający wysłanie komendy odczytu lub zapisu przez zewnętrzny kontroler (np.AVR).
GND ,Vcc ,Vss - to chyba jest znane oznaczenie masy i zasilania .
I tu moja wiedza się kończy.
Do czego służą CLE command latch enable,ALE address latch enable to już wyczytałem, ale nie mam pojęcia w jakiej kolejności muszą łapać "0" i "1", w jakim czasie, by możliwy był odczyt czy zapis NAND ?
Czy jest możliwe że pojawi się ktoś obznajomoony z tym tematem i mi wyjaśni?
Czy są jakieś procedury init , tak jak to jest w przypadku wyświetlacza do S65 (Kranz) do odczytu i zapisu?
=DZIĘKUJĘ= za wszelkie uwagi dotyczące tego tematu.
Do moderatorów tego forum : proszę nie usuwać tego tematu, przejrzałem to forum i nie znalazłem żadnej istotnej informacji w tym kierunku. A chyba ostatnio temat stał się dosyć ciekawy. Jeśli umieściłem go w złej kategorii to proszę o przeniesienie.Dziękuję.
Oto znalazłem parę ciekawych informacji:
Z rysunku - czyli z 2 diagramów: Basic Read Page i Basic Page Write/Program wynika że :
a)dla odczytu:
stan początkowy : /CE -"1",CLE - "0", ALE- "0", /WE- "1",/RE-"1"
zmieniamy /CE z "1" na "0" CLE -"0" , ALE - "0" , /WE -"1"
następnie zmieniamy CLE na "1" i /WE na "0" , na I/O(7:0) wysyłamy komendę 00H - znaczy że chcemy oczytać
kolejny krok to zmiana /WE na "1" i CLE na "0" włączamy ALE zmieniając stan na "1" , krótko /WE na "0",na I/O(7:0) podajemy adres do odczytu np.15H ,podnosimy /WE do stanu "1"
pin /RE na "0" , odczytujemy na I/O (7:0) zawartość naszej komórki pamięci pod adresem np.15H .
b)dla zapisu:
stan początkowy : /CE -"1",CLE - "0", ALE- "0", /WE- "1",/RE-"1"
/RE niezmiennie stan "1" - przez cały czas zapisu
reszta prawie tak samo jak dla odczytu , tylko komendę mamy inną bo 80H.
Dobrze rozumuję ?
Do moderatora forum : Proszę nie kasować, wiem że na pewno rzuciło się w oczy że mam drugi podobny temat w dziale z AVRami ale jak zobaczę że tu jest bryndza - znaczy nikt nie zajrzy i nie napisze to sam skasuje ten temat. OK ?