background image

Pami ci 
 

W mikrokontrolerach mo na wyró ni nast puj ce typy pami ci: 

pami  programu (zawieraj ca kod programu, tablice sta!ych, wektor resetu i przerwa"), 

pami  danych (przechowuj ca zmienne), 

stos sprz towy (obs!ugi przerwa" i wywo!a" funkcji odk!adaj na niego bie c warto%  
licznika rozkazów i po zako"czeniu dzia!ania „zdejmuj ” j ), 

pami  EEPROM (przechowuje zmienne lub tablice sta!ych, które po wy! czeniu 
zasilania nie mog ulec skasowaniu). 

Pami  programu jest wykonana w technologii ROM, EPROM, OTP lub FLASH. Natomiast 
pami  danych najcz %ciej jest typu SRAM. Przegl d podstawowych typów pami ci zestawiono 
w tabeli 1. 
 
W asno ci pami ci

 

Stosowane typy pami ci

 

Zawarto%  pami ci nie zanika wraz z 
wy! czeniem napi cia zasilania. 
Z pami ci mo na czyta , lecz nie mo na do
niej wpisywa danych. Umieszczanie danych 
w pami ci wymaga specjalnego procesu, 
zwanego programowaniem. 

 

ROM (Read Only Memory)

programowanie zawarto%ci pami ci 

nast puje w procesie produkcyjnym i nie mo e
by przeprowadzone przez u ytkownika. 
EPROM (Erasable Programmable ROM)
– pami ci z mo liwo%ci

kasowanie 

dotychczasowej zawarto%ci promieniami 
ultrafioletowymi i prowadzania nowej 
zawarto%ci za pomoc

zewn trznego 

programatora. Umieszczane s

w

obudowach z okienkiem kwarcowym w celu 
umo liwienia kasowania. 

OTP (One Time Programmable)
– pami ci typu EPROM umieszczane w 

obudowach bez okienka kwarcowego. 
Dlatego mo liwe jest tylko jednokrotne 
zaprogramowanie pami ci bez mo liwo%ci 
skasowanie jej zawarto%ci. 

FLASH (Bulk Erasable Non-Volatile 
Memory
)
– pami ci z mo liwo%ci

kasowanie 

zawarto%ci i programowania bezpo%rednio 
w systemie mikroprocesorowym.

 

Zawarto%  pami ci zanika wraz z wy! czeniem 
napi cia zasilania.  
 

Z pami ci mo na zarówno czyta , jak i 
wpisywa do niej dane. 
 

SRAM (Static Random Access Memory)
– pami ci RAM statyczne. S to pami ci o 
krótkich czasach dost pu, prostsze w obs!udze 
przez jednostk centraln , ale dro sze.

 

DRAM (Dynamic Random Access Memory)
– pami ci RAM dynamiczne. S to pami ci 
ta"sze, ale ich obs!uga przez jednostk
centraln jest bardziej skomplikowana. Polega 
to na konieczno%ci wykonywania w krótkich 

background image

odst pach czasu okre%lonych operacji na 
pami ci (tzw. od%wie aniu). W przeciwnym 
razie dane zawarte w pami ci dynamicznej 
zanikaj .

Tabela 1. Przegl d podstawowych uk!adów pami ci

 

Uk'ady scalone pami ciowe 
 

W sk!ad systemów mikroprocesorowych (mse)cz sto mog wchodzi uk!ady pami ciowe. 
Szczególnie, gdy u yty mikrokontroler nie posiada wewn trznej pami ci danych i programu. 
Generalnie pami ci mo na podzieli na dwie grupy: 

pami ci ulotne, trzymaj dane tylko wtedy, gdy s zasilane. Zanik napi cia zasilania 
powoduje utrat przechowywanych informacji, 

pami ci nieulotne, zachowane dane nie ulegaj skasowaniu po wy! czeniu napi cia 
zasilania. 

Pierwsza grypa to pami ci RAM (Random Access Memory). S one pami ciami, w których dane 
mog by zarówno zapisywane, jak z niej odczytywane. Istniej dwa g!ówne typy tych pami ci: 

pami  statyczna SRAM,

pami  dynamiczna DRAM.

Pami  SRAM przechowuje bity informacji w postaci stanów przerzutników bistabilnych. Ka da
komórka pami ci sk!ada si z oko!o od 4 do 6 tranzystorów. Uk!ady SRAM mog mie
wzgl dnie niski pobór mocy w trybie podtrzymywania zawarto%ci pami ci, natomiast w trybie 
pracy pobieraj do%  du y pr d. Zalet tych pami ci jest prostota sterowania oraz szybko%  
(pami ci te wykonane z arsenku galu GaAs maj czas dost pu poni ej 1ns). Dzi ki prostemu 
sterowaniu s one najcz %ciej stosowane w mse.
W pami ci DRAM informacja przechowywana jest w postaci !adunków zgromadzonych w 
kondensatorach, jakie powstaj pomi dzy emiterami tranzystorów MOS i pod!o em uk!adu. 
Dane w tych pami ciach maj tendencje do zanikania i wymagaj ci g!ego odnawiania. Proces 
taki nazywa si „od)wie*aniem” i wymaga specjalnych uk!adów do wytwarzania sygna!ów
od%wie aj cych. Zalet uk!adów DRAM jest niski koszt produkcji, ze wzgl du na niewielk
powierzchni zajmowanej powierzchni krzemu. Ka da komórka pami ci DRAM ma tylko jeden 
tranzystor MOS. Z zalety tej wynika równie inna cecha: pami ci DRAM posiadaj znacznie 
wi ksz pojemno%  od pami ci SRAM (obecnie dost pne s na rynku pami ci SRAM do 512kB). 
Wad tych uk!adów jest skomplikowane sterowanie, wynikaj ce z multipleksowania adresów 
rz dów i kolumn (pami ci te adresuje si jak macierz) oraz wynikaj cego z tego d!u szego czasu 
dost pu, który jest dodatkowo zwi kszany o czas potrzebny na od%wie anie. 
Istnieje ca!y szereg pami ci nieulotnych (cz %  z nich zestawiono w tabeli 1). Poni ej 
przedstawiono najcz %ciej spotykane typy tych pami ci: 

Pami  ROM (Read Only Memory) s!u y tylko do odczytywania. Informacja w pami ci 
ROM jest zapisywana w czasie produkcji w formie maski, na podstawie dostarczonego 
wzorca. Dla zamawiaj cego tak pami  oznacza to wysoki koszt jednostkowy. Dlatego 

background image

pami ci ROM u ywa si jedynie w urz dzeniach, które s produkowane w d!ugich 
seriach. 

Pami  EPROM jest pami ci programowan elektrycznie. U ytkownik sam programuje 
swój wzór informacji, jak

chce zapisa . Gdy uk!ad posiada okienko ze szk!a

kwarcowego, mo na tak pami  kasowa i programowa ponownie. Jest to du a zaleta 
w fazie uruchamiania mse. Kasowanie odbywa si na ogó! przy pomocy %wiat!a
ultrafioletowego. Pami  EPROM umieszczona w obudowie plastikowej, znacznie 
ta"szej od obudowy ceramicznej z okienkiem szklanym, nosi nazw OTP  (One Time 
Programmable
). Komórki pami ci EPROM s tranzystorami MOS z p!ywaj cymi 
bramkami. S one programowane przez wstrzykiwanie elektronów o wysokiej energii. 
Komórka taka zawiera „0”, podczas gdy nie zaprogramowane komórki zawieraj „1”. 
Zaprogramowanego w ten sposób tranzystora nie mo na wprowadzi

w stan 

przewodzenia i usun  zgromadzonego w nim !adunku. Mo na tego dokona jedynie 
przez kasowanie %wiat!em UV. Promienie UV dostarczaj

elektronom energii, 

wystarczaj cej do ponownego przej%cia przez barier

energetyczn

w warstwie 

izolacyjnej dwutlenku krzemu wokó! p!ywaj cej bramki. Uk!ady EPROM mog by
kasowane i ponownie programowane oko!o 100 razy. 

Pami ci EEPROM s uk!adami, które nie tylko s elektrycznie programowalne, ale 
równie elektrycznie kasowane. Maj ograniczon liczb cyklów programowania od 
oko!o 10000 razy do 1000000 razy. Komórka pami ci EEPROM sk!ada si z tranzystora 
NMOS (Metal Nitride Oxide Semiconductor). Do ka dej komórki mo na wprowadzi
!adunek elektryczny, który przechowywany jest w izolowanej warstwie azotku krzemu, 
znajduj cej si mi dzy bramk tranzystora, a pod!o em z tlenku krzemu. Eadowanie 
inicjuje si poprzez tzw. efekt tunelowy. Powstaje on po przy!o eniu wysokiego napi cia 
(20-40V) do bramki tranzystora. Przez zmian polaryzacji tego napi cia, uk!ad mo na
programowa , b dG te kasowa .

Pami   b'yskowa (FLASH) jest równie

pami ci

programowan

i kasowan

elektrycznie. Koszt jej produkcji jest ni szy ni uk!adu EEPROM. W porównaniu z 
pami ci EEPROM cechuje si ona szybszymi czasami programowania i kasowania. 
Najcz %ciej pami  ta sk!ada si z sektorów, na których mog by wykonywane 
odpowiednie operacje, posiada w!asn list komend automatyzuj cych programowanie i 
kasowanie pami ci. 

 
Poni ej zostan omówione trzy przyk!adowe uk!ady pami ciowe, które mo na spotka w mse: 
pami  SRAM 128kB i pami  FLASH 128kB. 
 

Pami

 SRAM 128kB 

 

Pami  SRAM zostanie przedstawiona na przyk!adzie uk!adu K6T1008C2E firmy Samsung 
Electronics. Jest to pami  SRAM o pojemno%ci 128Kx8 bitów wykonana w technologii CMOS 
o ma!ym poborze mocy. Na rys. 1 pokazano wyprowadzenia uk!adu. S one zgodne ze 
standardem dla pami ci o tej pojemno%ci. Równie identyczne wyprowadzenia maj pami ci 
np. 512Kx8 bitów, przy czym pin 1 jest lini A17, a pin 30 lini A18.

 

background image

Rys. 1 Wyprowadzenia uk!adu K6T1008C2E 
 

Rys. 2 Schemat blokowy uk adu K6T1008C2E

 

Na rys. 2 pokazano schemat blokowy uk!adu pami ci SRAM. Sk!ada si on z uk!adu 
kontrolnego, do którego pod! czone s sygna!y CS1, CS2, WE i OE za po%rednictwem których, 
steruje si pami ci , uk!adu we/wy s!u cego do wymiany danych pomi dzy matryc pami ci 
sk!adaj cej si z 1024 rz dów i 128x8 kolumn, a liniami danych I/O1 do I/O8. Wybór komórki 
(bajtu) do zapisu lub odczytu odbywa si za pomoc uk!adów wyboru wierszy i rz dów do
których, pod! czone s linie adresowe A0 – A16. 

background image

Sygna y CS

1

i CS

2

s u  do uaktywnienia uk adu. Najcz ciej steruje si pierwszym sygna em, 

drugi jest na sta e pod czony do „1”. Sygna OE jest wykorzystywany w trakcie czytania danej, 
a sygna WE w trakcie pisania danej do pami ci za po rednictwem dwukierunkowych linii   
I/O

1

– I/O

8

pod adres wskazany przez linie A

0

– A

16

.

Aby móc zapisa bajt do pami ci musi by ona aktywna (CS

1

– stan niski (L), CS

2

– stan wysoki 

(H)) oraz na linii OE ma by stan niski (aktywny), a na linii WE stan wysoki (nieaktywny). 
Podobnie jest dla zapisu. W tym przypadku sygna! WE jest niski (warto aby OE by!o w stanie 
wysokim).

 

Na poni szych rysunkach pokazano przebiegi cyklu odczytu bajtu z pami ci SRAM (rys. 3) oraz 
zapisu do niej bajtu dwoma sposobami, przy czym zak!ada si , e sygna! CS

2

jest nieaktywny (na 

zacisku jest stan wysoki). Pierwszy sposób oparty jest na sterowaniu zapisem danej sygna!em 
WE (rys. 4), natomiast drugi bazuje na sterowaniu zapisem za pomoc sygna!u CS

1

(rys. 5).

 

Rys. 3 Przebiegi czasowe cyklu odczytu danych z pami ci (sygna! WE w stanie „Hi”)

 

Rys. 4 Przebiegi czasowe cyklu zapisu danych do pami ci (sterowanie sygna!em WE)

background image

Rys. 5 Przebiegi czasowe cyklu zapisu danych do pami ci (sterowanie sygna!em CS

1

)

background image

Pami  FLASH 128kB 

Szczególn zalet pami ci b!yskowych (FLASH) w stosunku do pami ci EEPROM jest krótki 
czas kasowania i zapisu. Do programowania i kasowania pami ci b!yskowych potrzebne jest 
podwy*szone napi cie 11,5 - 13,5V, które w zale no%ci od typu uk!adu mo e by podawane z 
zewn trz lub wytwarzane przez wbudowan1 przetwornic . Pami ci FLASH przyjmuj oprócz 
danych polecenia, które umo liwiaj realizacj ró nych rodzajów operacji. Ten typ pami ci 
zostanie przedstawiony na przyk!adzie popularnej pami ci typu 29F010 firmy AMD (Advanced 
Micro Devices
) o organizacji 128k x 8 bitów. Na rys. 6 pokazano symbol logiczny pami ci wraz 
z opisem linii. 
 

Rys. 6. Symbol logiczny pami ci Am29F010 
 
Pami  ta posiada nast puj ce w!a%ciwo%ci: 

pojedyncze zasilanie, 5V +-10% dla czytania, zapisu i operacji kasowania programu, 

maksymalny czas dost pu 45ns, 

niskie zu ycie energii, maksymalnie 30mA na odczyt i 50mA na programowanie oraz 
czyszczenie, mniej ni 25QA podczas trybu standby, 

elastyczna architektura oparta na sektorach, 8 zunifikowanych sektorów, wszystkie 
kombinacje sektorów mog by czyszczone, 

mo liwo%  wymazania ca!ego chipu, 

ochrona sektorów przed zapisem, 

wsparcie sprz towe dla zablokowania i odblokowania programowania i czyszczenia dla 
wszystkich kombinacji sektorów, 

wbudowany algorytm czyszczenia automatycznie przeprogramuje i czy%ci chip lub 
wszystkie kombinacje wybranych sektorów, 

wbudowany algorytm programowania automatycznie programuj cy i sprawdzaj cy 

dane z zadanego adresu, 

minimum 100000 gwarantowanych cykli programowania i czyszczenia, 

programowe metody detekcji ko"ca cyklu programowania i czyszczenia. 

Pami  Am29F010 jest 1Mbit, 5V pami ci FLASH zorganizowan jako 131072 bajtów. 
Produkowana jest w 32-pinowych obudowach typu PLCC ,TSOP i PDIP. Zaprojektowano j z

background image

mo liwo%ci programowania w systemie ze standardowym 5V zasilaniem. Ponadto mo e by
programowana za pomoc standardowego programatora do pami ci EPROM. Pami  posiada 
wbudowany algorytm programowania (wewn trzny algorytm, który automatycznie weryfikuje 
szeroko%  i czas trwania impulsów programowania). Zawiera ona tak e wbudowany algorytm 
czyszczenia. Podczas czyszczenia urz dzenie automatycznie kontroluje czas i szeroko%  
sygna!ów oraz weryfikuje w!a%ciwe komórki docelowe. System nadrz dny mo e wykrywa
zako"czenia operacji czyszczenia/programowania poprzez czytanie bitów statusu: DQ7 
(DATA#Polling) i DQ6 (toggle).  
Po zako"czeniu cyklu programowania/czyszczenia pami  jest gotowa do czytania z niej danych 
lub oczekuje na nast pn komend . Sektorowa architektura pami ci pozwala na czyszczenie, czy 
ponowne programowanie wybranych sektorów pami ci bez wp!ywu na pozosta!e sektory. 
Sprz towa ochrona danych wykrywa niski poziom napi cia zasilania i wstrzymuje proces 
zapisywania podczas zmiany napi cia. Pami  mo na prze! czy w tryb standby, w celu znacznej 
redukcji pobieranej mocy. 
 

Rys. 7. Schemat blokowy pami ci Am29F010 
 
Na rys. 7. przedstawiono schemat blokowy pami ci Am29F010. Jak wida , sk!ada si ona z
wielu bloków, z których cz %  s!u y do obs!ugi procesu zapisu do pami ci (blok Cell Matrix), s
nimi generatory napi  PGM Voltage Generator Erase Voltage Generator. Prac ca!ego uk!adu 
zarz dza blok State Control / Command Register. Komórki pami ci s wybierane za pomoc
uk!adu dekodera adresu. Sterowanie przep!ywem danych odbywa si

za po%rednictwem 

background image

dwukierunkowego bufora i rejestru zatrzaskuj cego oraz bloku Chip Enable / Output Enable 
Logic
. Rejestr komend (Command Register) sk!ada si z zatrzasków, które przechowuj komendy 
z adresami i danymi potrzebnymi do wykonania komendy. Zawarto%  rejestru s!u y jako wej%cia 
dla „wewn trznej maszyny stanu”. Wyj%cia maszyny stanu dyktuj funkcje urz dzenia. Funkcje 
te (operacje na szynie danych) zestawiono w tabeli 2. 
 

Tabela 2. Operacje na szynie danych 
 
Aby odczyta dane z pami ci system musi zapewni niski stan linii CE# i OE#. Linia CE# 
kontroluje odczyt. Linia OE# steruje buforem wyj%ciowym. Sygna! na linii WE# powinien by na 
poziomie VIH. Uadna komenda nie jest wymagana w tym trybie. Jest on trybem domy%lnym po 
w! czeniu napi cia zasilania. Zatem mk mo e podawa na linie adresowe A0 – A16 adresy 
danych, które chce otrzyma na liniach danych DQ0 – DQ7. Urz dzenie pozostaje dost pne do
odczytu dopóki nie zmieni si zawarto%  rejestru komend. Aby zapisa komend lub sekwencj
komend (które zawieraj dane programuj ce czy czyszcz ce wybrane sektory pami ci), system 
musi zapewni nast puj ce stany: na liniach WE# i CE# stan niski VIL oraz na linii OE# stan 
wysoki VIH . Operacja czyszczenia mo e skasowa jeden sektor, wiele sektorów lub ca!e
urz dzenie. Tablica adresów sektorów wskazuje na adres w przestrzeni jak ka dy sektor 
zajmuje. „Adres sektora” to bity adresu potrzebne aby jednoznacznie zidentyfikowa sektor 
(patrz tabela 3).  
 

Tabela 3. Tablica adresów sektorów pami ci Am29F010 
 
Podczas operacji czyszczenia lub programowania system mo e sprawdzi status operacji przez 
czytanie bitów statusu DQ7-DQ0.

 

background image

Pami  posiada tryb autoselect, który umo liwia identyfikacj urz dzenia oraz producenta, a 
tak e weryfikacj chronionych sektorów przez kody identyfikacyjne podane na DQ7-DQ0. Ten 
tryb jest niezb dny dla urz dze" programuj cych, aby mog!y wykorzysta odpowiedni algorytm 
programuj cy. Ten tryb mo e by tak e wykorzystany w systemie przez rejestr komend. Pami  
mo na wprowadzi w tryb autoselect wydaj c odpowiedni komend (tabela 4). Zapis adresu i 
danej rozkazu lub ca!ej sekwencji rozkazowej do rejestru rozkazów inicjuje wykonanie operacji. 
Poprawne sekwencje rozkazowe przedstawia tabela rozkazów (tabela 4). Zapis niepoprawnych 
warto%ci adresu i danych lub zapis sekwencji w nieodpowiedniej kolejno%ci przestawia pami  w 
tryb odczytu danych. Adres jest "zatrzaskiwany" w momencie pojawienia si opadaj cego zbocza 
na linii WE# lub CE#, w zale no%ci od tego, które z tych zdarze" wyst pi jako ostatnie.  
 

Tabela 4. Formaty polece" sterowania pami ci Am29F010 
 
Po w! czeniu zasilania domy%lnie ustawiany jest tryb odczytu danych. Tryb ten jest ustawiany 
domy%lnie tak e po wykonaniu wbudowanego algorytmu programowania (Embedded Program 
Algorithm
) lub wbudowanego algorytmu kasowania (Embedded Erase Algorithm). Odczyt jest 
mo liwy bez u ycia jakichkolwiek rozkazów.

 

Rozkaz AUTOSELECT umo liwia uzyskanie dost pu do kodów producenta i pami ci, a 

tak e pozwala na ustalenie, czy dany sektor jest chroniony. Na sekwencj rozkazow sk!ada si
rozkaz AUTOSELECT poprzedzony zapisem 2 cykli odblokowuj cych. Nast pnie pami  
wchodzi w tryb autoselect i mo liwy jest odczyt spod ka dego adresu dowoln ilo%  razy bez 
inicjowania kolejnej sekwencji rozkazowej. Cykl odczytu spod adresu XX00h zwraca kod 
producenta, a spod adresu XX01h kod urz dzenia. Cykl odczytu zawieraj cy adres sektora (SA) i 

background image

adres 02h zwraca 01h je%li ten sektor jest chroniony, a 00h w przeciwnym wypadku. W celu 
wyj%cia z trybu autoselect do pami ci trzeba przes!a rozkaz RESET.  

Programowanie pami ci sk!ada si z 4 cykli szyny (rozkaz PROGARM). Na sekwencj

rozkazow sk!ada si rozkaz ustawiaj cy tryb programowania poprzedzony zapisem 2 cykli 
odblokowuj cych. Dane i adres s wysy!ane w nast pnej kolejno%ci. Operacja ta inicjuje 
wykonanie wbudowanego algorytmu programowania. System programuj cy nie musi dostarcza
dodatkowych sygna!ów steruj cych czy taktuj cych. Urz dzenie samo generuje wewn trzne 
impulsy programuj ce i weryfikuje poprawno%  zaprogramowania komórki. Kiedy wbudowany 
algorytm programowania zako"czy dzia!anie urz dzenie wraca do trybu odczytu danych i 
zwalniany jest przerzutnik "zatrzaskuj cy" adresy. System nadrz dny mo e ustali status operacji 
programowania na podstawie stanu linii DQ6 i DQ7. Wszystkie rozkazy wysy!ane do urz dzenia 
podczas wykonywania wbudowanego algorytmu programowania s ignorowane. Programowanie 
mo e odbywa si w dowolnej kolejno%ci i mo e przekracza granice sektorów.  

Sekwencja kasowania pami ci sk!ada si 6 cykli szyny. W jej sk!ad wchodzi rozkaz 

ustawienia (set-up) poprzedzony zapisem 2 cykli odblokowuj cych. Po nich nast puj kolejne 2 
cykle odblokowuj ce zapis i rozkaz kasowania, który uruchamia wbudowany algorytm 
kasowania. Wszystkie rozkazy wysy!ane do urz dzenia podczas wykonywania wbudowany 
algorytm kasowania s ignorowane. Kiedy ten algorytm zako"czy dzia!anie urz dzenie wraca do 
trybu odczytu danych i zwalniany jest przerzutnik "zatrzaskuj cy" adresy.  

Na rozkaz kasowanie sektora równie sk!ada si 6 cykli szyny. Pierwszym jest rozkaz 

ustawienia (set-up) poprzedzony zapisem 2 cykli odblokowuj cych. W nast pnej kolejno%ci 
wysy!ane s 2 dodatkowe cykle odblokowuj ce. Potem zapisywane s : adres sektora do 
kasowania oraz rozkaz kasowania. Po zapisie sekwencji rozkazowej rozpoczyna si 50Qs
przerwy. W trakcie tej przerwy mog zosta przes!ane dodatkowe adresy i rozkazy kasowania 
sektorów. Za!adowanie bufora kasowania sektorów mo e si odby w dowolnej kolejno%ci. 
Dowolna mo e by tak e liczba sektorów przeznaczonych do skasowania. Odst p czasu mi dzy 
tymi dodatkowymi cyklami, w których przesy!ane s informacje o dodatkowych sektorach do 
skasowania musi by mniejszy ni 50Qs. Jakikolwiek rozkaz wys!any podczas 50Qs przerwy 
przestawia urz dzenie w tryb odczytu. System musi ponownie wys!a sekwencje rozkazow oraz 
adresy dodatkowych sektorów i rozkazy. System mo e nadzorowa stan linii DQ3 w celu 
sprawdzenia, czy min ! czas przerwy. Przerwa zaczyna si od narastaj cego zbocza ostatniego 
impulsu w sekwencji rozkazowej na linii WE#. Wszystkie rozkazy wysy!ane do urz dzenia 
podczas kasowania sektora s ignorowane. Kiedy wbudowany algorytm kasowania zako"czy 
dzia!anie urz dzenie wraca do trybu odczytu danych i zwalniany jest przerzutnik "zatrzaskuj cy" 
adresy. System nadrz dny mo e ustali status operacji programowania przy wykorzystaniu linii 
DQ6 i DQ7.  
 
Stan operacji zapisu mo na sprawdzi wykorzystuj c linie: DQ3, DQ5, DQ6 i DQ7. Za pomoc
pinów DQ7 i DQ6 mo na sprawdzi , czy operacja programowania lub kasowania zosta!a
zako"czona (tabela 5).

 

background image

Tabela 5. Status operacji zapisu

 

Na poni szych rysunkach pokazano przebiegi czasowe operacji odczytu (rys. 8), operacji 

zapisu danej do pami ci (rys. 9) oraz operacji kasowania pami ci (rys. 10).

 

Rys. 8. Przebieg czasowy operacji odczytu z pami ci Am29F010

background image

Rys. 9. Przebieg czasowy operacji programowania pami ci Am29F010

Rys. 10. Przebieg czasowy operacji kasowania pami ci Am29F010

background image

Szeregowe pami ci EEPROM 
 

Pami ci nieulotne EEPROM i FLASH z szeregowym wej%ciem i wyj%ciem danych s

coraz cz %ciej stosowane w mse ze wzgl du na mo liwo%  programowania ich zawarto%ci w 
uk!adzie, w którym pracuj (in-circuit programming). Przechowuj one dane, które po zaniku 
napi cia zasilania nie mog ulec skasowaniu. Dane te najcz %ciej s wykorzystywane do 
indywidualnej linearyzacji charakterystyk czujników, zbierania danych pomiarowych, 
parametryzacji wbudowanych algorytmów itd. Ich zalet , oprócz niskiej ceny i ma!ych 
rozmiarów obudowy, jest standardowe napi cie zasilania równe zwykle +5V lub +3V. Uk!ady te 
maj

zwykle  wbudowan1 przetwornic

napi cia  i nie wymagaj

do programowania i 

kasowania zewn trznego napi cia programuj cego. Ponadto posiadaj w!asn automatyk , tzn. 
odczyt, zapis, kasowanie oraz funkcje zwi zane z ochron danych s obs!ugiwane za pomoc
odpowiednich rozkazów wprowadzanych do uk!adu i przez niego interpretowanych.  

Spotykane pami ci szeregowe EEPROM maj pojemno% : 1Kbit, 2Kbit, 4Kbit, 8Kbit, 

16Kbit, 32Kbit i 64Kbit. Pami  jest zorganizowana bajtowo (x8), dwubajtowo (x16) i bajtowo 
lub dwubajtowo (x8 lub x16 – wybór przez u ytkownika). W praktyce spotyka si trzy 
podstawowe odmiany pami ci EEPROM z szeregowym wej%ciem i wyj%ciem danych: 

uk!ady z interfejsem SPI,

uk!ady pracuj ce z niestandardowym protoko'em wymiany danych (przewa nie 
standard przemys!owy Microwire), 

uk!ady z interfejsem I2C.

Do sterowania pami ci EEPROM z szeregowym dost pem stosuje si powszechnie dwie metody: 

sterowanie przy u*yciu linii portów we/wy mk (dla pami ci z niestandardowym 
protoko!em wymiany danych), 

sterowanie przez interfejs komunikacji szeregowej (dla pami ci z interfejsem SPI i 
I2C).  

Zasadnicz wad pami ci EEPROM jest d'ugi czas zapisu informacji, jak i kasowania uk!adu 
wynosz cy typowo od 2ms do 5ms, a nawet 10ms. 
 

Szeregowe pami ci EEPROM z interfejsem SPI 
 

Zalet

pami ci szeregowych EEPROM z interfejsem SPI jest mo liwo%  ich 

bezpo%redniego pod! czenia do interfejsu SPI mk. Zatem obs!uga tych pami ci przez mk mo e
odbywa si w trybie przerwaniowym. W tym trybie mk mo e realizowa inne zadania, podczas 
gdy trwa transmisja. Jc jest anga owana tylko przy odczycie lub zapisie danych do rejestru 
szeregowego interfejsu SPI. Powiadomienie jc o zako"czeniu transmisji bajtu odbywa si za 
pomoc przerwania od interfejsu SPI, który wpierw musi by w!a%ciwie skonfigurowany. 
Kolejn zalet jest fakt, i konwersja równoleg!o-szeregowa (wpis danej przez jc do bufora 
szeregowego i wys!anie jej szeregowo przez wyj%cie danych interfejsu) i szeregowo-równoleg!a
(szeregowy odczyt danej z wej%cia interfejsu do bufora i odczyt jej przez jc z tego bufora) danych 
odbywa si sprz towo, a nie programowo jak ma to miejsce przy zastosowaniu popularnych 
pami ci EEPROM, umówionych w kolejnym podrozdziale, z niestandardowym interfejsem 
Microwire. 

Pami ci szeregowe EEPROM i interfejsem SPI zostan przedstawione na przyk!adzie 

uk!adu 25C080 firmy Microchip. Jest to 8Kbitowa pami  o architekturze bajtowej (1024x8 

background image

bitów). Dost p do pami ci, jak i jej sterowanie odbywa si za pomoc interfejsu SPI, który sk!ada 
si z linii: sygna! zegara SCK, sygna! danych wej%ciowych SI oraz sygna! danych wyj%ciowych 
SO. Dost p do urz dzenia jest kontrolowany poprzez sygna! wyboru uk!adu CS (Chip Select). 
Istnieje mo liwo%  wstrzymania komunikacji z pami ci poprzez sygna! HOLD. 
Uk!ad ten ma nast puj ce w!a%ciwo%ci: 

Niski pobór mocy: pr d podczas zapisu maksymalnie 3mA, pr d podczas odczytu typowo 
500QA, pr d spoczynkowy typowo 500nA. 

Organizacja pami ci: 1024x8 bity. 

16 bajtowa strona. 

Czas cyklu zapisu maksymalnie 5ms. 

Wewn trzne automatyczne cykle kasowania i zapisu. 

Ochrona zapisu bloku: ochrona  adnej,1/4,1/2 lub ca!ej tablicy. 

Wbudowana ochrona zapisu: ochrona danych podczas w! czania/wy! czania uk!adu, 
zatrzask umo liwiaj cy zapis, pin ochrony przed zapisem. 

Sekwencyjny odczyt danych. 

Wysoka niezawodno% : wytrzyma!o%  1M cykli kasowania/zapisu, czas przechowywania 
danych > 200 lat, ochrona wej%  cyfrowych przed przepi ciami typu ESD. 

Obudowa 8-pinowa PDIP oraz SOIC (rys. 11). 

Rys. 11. Wyprowadzenia uk!adu 25C080 firmy Microchip

 

Na rys. 11 pokazano wyprowadzenia pami ci EEPROM. Opis tych wyprowadze zebrano w 
tabeli 6. 

Tabela. 6. Opis wyprowadze uk adu 25C080 firmy Microchip

 

background image

Rys. 12. Schemat blokowy uk adu 25C080 firmy Microchip

 

Na rys 12 pokazano schemat blokowy uk!adu 25C080. Jak wida sk!ada si on z dwóch cz %ci: 
pierwsz cz %  stanowi zespó! bloków zwi zanych z interfejsem SPI i sterowaniem pami ci . S
to bloki: we/wy uk!ad steruj cy (I/O Control Logic), rejestr statusu, uk!ad steruj cy pami ci
(Memory Control Logic), generator wysokiego napi cia (HV Generator), uk!ad kontroli 
amplitudy przy odczycie/zapisie (Sense Amp. R/W Control). Druga cz %  to pami  "w!a%ciwa". 
Sk!ada si ona z dekodera wierszy (X Dec) i dekodera kolumn (Y Dec), rejestru zatrzaskowego 
stron (Page Latches) i matrycy komórek EEPROM (EEPROM Array).  
Zastosowania i funkcje pinów uk!adu s nast puj ce: 

Linia CS s!u y do uaktywnienia pami ci przez uk!ad nadrz dny z ni wspó!pracuj cy 
(np. mk). Uaktywnienie pami ci dokonuje si poprzez wystawienie na wej%cie CS 
niskiego poziomu sygna!u. Wysoki poziom na tej linii dezaktywuje uk!ad. Podczas 
inicjacji b dG trwania cyklu programowania wysoki stan sygna!u CS nie powoduje 
przerwania procesu zapisu/odczytu. Zostaje on doko"czony, po czym nast puje 
dezaktywacja uk!adu pami ci i przej%cie w stan czuwania. W tym trybie pracy wyj%cie SO 
przechodzi w stan wysokiej impedancji umo liwiaj c innym uk!adom korzystanie z 
magistrali SPI. Zmiana stanu na wej%ciu CS z niskiego na wysoki po zako"czonej 
sekwencji wprowadzania rozkazów do pami ci inicjuje wewn trzny cykl zapisu. 

Wyj)cie SO jest u ywane w celu wysy!ania danych z uk!adu pami ci 25C080. Podczas 
cyklu odczytu dane s

wystawiane na to wyj%cie na opadaj ce zbocze sygna!u

zegarowego. 

background image

Wej)cie WP wraz z bitem WPEN rejestru statusu s!u  do blokady zapisu rejestru statusu 
pami ci. Ochron t uzyskuje si , gdy na linii WP wystawiony jest niski poziom, za%
bitowi WPEN przypisana jest jedynka. W przypadku gdy bit WPEN jest ustawiony, to 
pojawienie si niskiego poziomu na linii WP podczas sekwencji zapisu rejestru statusu 
spowoduje przerwanie tej operacji. Je eli za% wewn trzny cykl zapisu zosta! rozpocz ty 
wszelkie zmiany na linii WP nie wp!ywaj na kontynuacj wykonywania operacji zapisu. 
Gdy bit WPEN jest wyzerowany funkcja linii WP jest nieaktywna. Ustawienie bitu 
WPEN odblokowuje funkcj wyprowadzenia WP. 

Wej)cie SI jest u ywane do szeregowego wprowadzania instrukcji, adresów oraz danych 
z urz dzenia nadrz dnego do pami ci. Dane na SI zatrzaskiwane s na narastaj ce zbocze 
sygna!u zegarowego.  

Sygna' wej)ciowy SCK s!u y do synchronizacji komunikacji pomi dzy urz dzeniem 
nadrz dnym, a pami ci . Narastaj ce zbocze zegara zatrzaskuje (próbkuje) dane 
wprowadzane na wej%ciu SI, za% opadaj ce wystawia dane na wyj%ciu SO.  

Wej)cie HOLD s!u y do wstrzymania transmisji do pami ci, bez konieczno%ci 
powtarzania ca!ego cyklu transmisyjnego od nowa. W celu wstrzymania transmisji na 
pinie HOLD powinien by stan niski w momencie, gdy sygna! zegara SCK jest równie w
stanie niskim. W innym przypadku zawieszenie transmisji zostanie wykonane przy 
kolejnym przej%ciu sygna!u SCK z poziomu wysokiego do niskiego. Istotne jest, aby 
uk!ad pami ci pozostawa! aktywny podczas wstrzymywania transmisji. Gdy transmisja 
zostaje zawieszona linie SI, SCK oraz SO przechodz w stan wysokiej impedancji. 
Wymuszenie na linii HOLD wysokiego poziomu podczas niskiego poziomu sygna!u
zegara powoduje wznowienie transmisji. 

 
Uk!ad 25C080 zawiera 8 bitowy rejestr instrukcji. Aby uk!ad by! aktywny i przyjmowa!
rozkazy/dane na linii CS musi panowa stan niski, za% na linii HOLD stan wysoki. Aby mo na
by!o dokonywa operacji zapisu do tablicy pami ci na linii WP powinien by stan wysoki. 
Tabela 12 zawiera list i formaty instrukcji dost pnych dla uk!adu 25C080. We wszystkich 
instrukcjach, adresach czy danych pierwszy jest przesy!any najbardziej znacz cy bit MSB, a jako 
ostatni bit LSB. Wszelkie instrukcje, adresy, czy dane przesy!ane s do pami ci paczkami 8-
bitowymi, co pozwala na bezpo%rednie stosowanie w tym celu interfejsu SPI mk. 
 

Tablela 12. Zestaw instrukcji steruj cych uk adem 25C080

 

background image

Dane s próbkowane na pierwsze narastaj ce zbocze sygna!u zegara SCK po wymuszeniu na linii 
CS niskiego poziomu. W przypadku, gdy sygna! zegara na magistrali SPI jest wspó!dzielony 
przez inne urz dzenia peryferyjne, u ytkownik mo e wprowadzi pami  25C080 w stan 
wstrzymania ‘HOLD’ poprzez wymuszenie niskiego stanu na linii HOLD. Po zmianie poziomu 
sygna!u na tej linii z niskiego na wysoki nast puje kontynuacja wstrzymanej transmisji.

 

Poni ej zestawiono opis rozkazów zawartych w tabeli 12: 

Sekwencja odczytu READ  rozpoczyna si od wyboru pami ci poprzez wymuszenie na 
linii CS stanu niskiego. Nast pnie wysy!ana jest 8-bitowa instrukcja odczytu oraz 16- 
bitowy adres, gdzie sze%  najbardziej znacz cych bitów adresu nie jest brane pod uwag .
Po prawid!owej transmisji instrukcji i adresu, dane umieszczone pod wybranym adresem 
s wystawiane szeregowo na wyj%ciu SO. Po ka dorazowym wys!aniu bajta danych 
wewn trzny wskaGnik adresu jest automatycznie inkrementowany, aby wskazywa na
kolejn dan w pami ci. Kiedy osi gnie adres 03FFH nast puje zmiana jego wskazania na 
adres 0000H. Operacja transmisji sekwencji odczytu jest ko"czona na narastaj cym 
zboczem sygna!u CS.

 

Rys. 13. Przebieg czasowy rozkazu READ

 

Przed jak kolwiek prób zapisu danych do uk!adu rozkazem WRITE, zatrzask zezwolenia 
zapisu musi by ustawiony poprzez wykonanie instrukcji WREN. Sekwencja zapisu tej 
instrukcji sprowadza si do wybrania uk!adu niskim poziomem sygna!u CS oraz wys!ania 
kodu WREN do uk!adu. Po transmisji 8 bitów tej instrukcji, poziom sygna!u na linii CS 
musi zosta ustawiony z powrotem w stan wysoki, co w rezultacie powoduje ustawienie 
zatrzasku zezwolenia zapisu. Próba rozpocz cia transmisji zaraz po wys!aniu instrukcji 
WREN, bez zmiany stanu sygna!u na linii CS pomi dzy tymi operacjami, nie powiedzie 
si ze wzgl du na niew!a%ciwe ustawienia zatrzasku zezwolenia zapisu. W momencie 
prawid!owego ustawienia tego zatrzasku, u ytkownik mo e rozpocz  operacj zapisu 
danych do uk!adu wcze%niej wymusiwszy na pinie CS stan niski. Sekwencja zapisu 
sprowadza si do wys!ania instrukcji zapisu WRITE, 16-bitowego adresu z sze%cioma 
najbardziej znacz cymi bitami nie branymi pod uwag oraz danej przeznaczonej do 
zapisu pod przes!any adres. Przed wymaganym cyklem zapisu do pami ci mo e by
wys!anych 16 bajtów danych. Jedynym ograniczeniem w tym przypadku jest to, i
wszystkie bajty musz mie%ci si w obszarze jednej strony pami ci. Adres strony 
zaczyna si od XXXX XXXX XXXX 0000 i ko"czy na XXXX XXXX XXXX 1111. W 
przypadku kiedy wewn trzny licznik adresu osi gnie warto%  graniczn , wskazuje on z 
powrotem na pierwszy adres strony i nast puje nadpisywanie danych na ju wcze%niej 

background image

zachowane. Aby zako"czy sekwencj zapisu danych do tablicy pami ci sygna! na 
wyprowadzeniu CS powinien zosta ustawiony w stan wysoki tu po otrzymaniu 
ostatniego najmniej znacz cego bitu n-bajtowej danej. W przypadku gdy sygna! CS 
zostanie wcze%niej ustawiony w stan wysoki operacja zapisu nie zostanie skompletowana. 
Podczas trwania sekwencji zapisu rejestr statusu mo e by odczytywany w celu 
sprawdzenia bitów WPEN, WIP, WEL, BP1 oraz BP0. Podczas trwania cyklu zapisu nie 
jest mo liwy odczyt tablicy lokacji pami ci. Po zako"czeniu tego cyklu zatrzask 
zezwolenia zapisu jest zerowany.

 

Rys14. Przebieg czasowy rozkazu WRITE dla zapisu pojedynczego bajta

 

Rys. 15. Przebieg czasowy rozkazu WRITE dla zapisu wielu bajtów

 

Instrukcja WREN (Write Enable) zezwala na zapis do pami ci. Jej przebieg czasowy 
pokazano na rys. 16. 

 

background image

Rys. 5.6. Przebieg czasowy rozkazu WREN 
 

Instrukcja WRDI (Write Disable) blokuje zapis do pami ci. Przebiegi czasowe tej 
instrukcji przedstawiono na rys. 17. 

 

Rys. 17. Przebieg czasowy rozkazu WRDI 
 

Instrukcja RDSR odczytu rejestru statusu (Read Status Register) zapewnia dost p do
rejestru statusu. Rejestr ten mo na odczyta w ka dej chwili, nawet podczas cyklu zapisu. 

 

background image

Rys. 18. Przebieg czasowy rozkazu RDSR 
 

Instrukcja WRSR zapisu rejestru statusu (Write Status Register) pozwala 
u ytkownikowi na wybór jednego z czterech poziomów ochrony tablicy pami ci 
EEPROM. Odbywa si to poprzez zapis bitów BP0 i BP1 w rejestrze statusu. Tablica 
pami ci podzielona jest na cztery segmenty. U ytkownik ma mo liwo%  ochrony zapisu 

adnego, jednego, dwóch lub wszystkich segmentów tablicy. 

 

Rys. 19. Przebieg czasowy rozkazu WRSR

 

Format rejestru statusu jest nast puj cy:

 

7

6

5

4

3

2

1

0

WPEN 

X X X BP1 

BP0 

WEL 

WIP 

gdzie: 

Bit WIP (Write-in-Process – zapis w trakcie) wskazuje czy uk!ad pami ci jest w trakcie 
operacji zapisu, czy nie. WIP =1 – pami  w trakcie operacji zapisu, za% WIP =0 –  adna 
operacja zapisu nie jest przeprowadzana. Bit WIP jest bitem przeznaczonym tylko do 
odczytu.

 

background image

Bit WEL (Write Enable Latch – zatrzask zezwolenia zapisu) wskazuje na status zatrzasku 
zezwolenia zapisu. WEL =1 – zezwolenie zapisu do tablicy, WEL =0 – zakaz zapisu do 
tablicy. Stan tego bitu mo e by zawsze zmieniony poprzez polecenia WREN lub WRDI. 
Bit WEL jest bitem przeznaczonym tylko do odczytu. 

Bity  BP0  BP1  (Block Protection – ochrona bloku) informuj , który blok obecnie jest 
chroniony przed zapisem (patrz tabela 5.3). Stan tych bitów jest nieulotny i mo e by
zmieniany przez u ytkownika poprzez wykonanie instrukcji WRSR.  

Bit  WPEN  (Write Protect Enable – zezwolenie ochrony zapisu) jest nieulotnym bitem 
dost pnym jako bit zezwalaj cy dla wej%cia WP.

 

BP1 

BP0 

Adresy Tablicy Chronione przed Zapisem 

0

0

BRAK 

0

1

wy sza  wiartka 
(0300H-03FFH)

 

1

0

wy sza po!ówka 
(0200H-03FFH)

 

1

1

wszystkie 
(0000H-03FFH)

 

Tabela 13. Znaczenie bitów BP0 i BP1

Wej%cie WP (Write Protect – ochrona zapisu) i bit rejestru statusu WPEN s!u  do 

sprz towej ochrony pami ci przed zapisem. Ochrona ta jest aktywna je%li wyprowadzenie WP 
jest w stanie niskim za% bit WPEN =1. Dotyczy ona ochrony nieulotnych bitów rejestru statusu.

 

Uk!ady pami ci 25C080 zawieraj zatrzask zezwolenia zapisu. Zatrzask musi by

ustawiony przed tym, jak dowolna operacja zapisu zostanie „wewn trznie” zako"czona. 
Instrukcja WREN ustawia ten zatrzask, natomiast instrukcja WRDI go zeruje. Poni ej zosta!a
przedstawiona lista warunków, pod którymi nast pi wyzerowanie zatrzasku: 

w! czenie zasilania, 

wykonanie instrukcji WRDI zako"czone sukcesem, 

wykonanie instrukcji WRSR zako"czone sukcesem, 

wykonanie instrukcji WRITE zako"czone sukcesem. 

Czyli przed ka dym zapisem danych do pami ci nale y ustawi ten zatrzask instrukcj WREN. 
 

Zastosowano nast puj ce  %rodki ochrony tablicy pami ci EEPROM przed 

przypadkowymi wpisami: 

zatrzask zezwolenia zapisu jest zerowany natychmiast po w! czeniu zasilania, 

w celu ustawienia zatrzasku zezwolenia zapisu wymagana jest odpowiednia instrukcja, 

zatrzask zezwolenia zapisu jest zerowany zaraz po zako"czonym cyklu zapisu bajtu, 
strony lub statusu rejestru, 

sygna! na linii CS musi by ustawiony w stan wysoki po odpowiedniej liczbie cykli 
zegara w celu rozpocz cia wewn trznego cyklu zapisu, 

próba dost pu do tablicy podczas wewn trznego cyklu zapisu jest odrzucana, za%
programowanie jest nadal kontynuowane. 

W tabeli 14 zestawiono stan ochrony bloków pami ci i rejestru statusu w zale no%ci od bitów 
WPEN i WEL oraz stanu na linii WP. 

background image

WPEN WP  WEL  BLOKI 

CHRONIONE BLOKI 

NIECHRONIONE

 

REJESTR STATUSU 

X

X

0

chroniony

 

chroniony chroniony 

0

X

1

Chroniony zapisywalne

 

zapisywalne 

1

low 1 

Chroniony 

zapisywalne 

chroniony 

X

high 1 

chroniony 

zapisywalne 

zapisywalne 

Tablica 14. Macierz Funkcjonalno%ci Ochrony Zapisu

 

Uk!ad pami ci 25C080 po w! czeniu zasilania przyjmuje nast puj cy stan: 

uk!ad jest w trybie czuwania, ma!y pobór mocy CS=1, 

zatrzask zezwolenia zapisu jest wyzerowany, 

wyj%cie SO jest w stanie wysokiej impedancji, 

przej%cie ze stanu wysokiego do niskiego na linii CS powoduje wej%cie uk!adu w stan 
aktywny.