Co je paměť EEPROM Paměť EEPROM je technologicky velmi podobná paměti EPROM. Rozdíl
mezi nimi je v tom, že EEPROM se maže elektricky s možností smazat pouze určitý
byte (není nutné mazat celý obsah paměti tak jako u EPROM). Možnost smazat pouze
určitý byte je výhoda EEPROM také oproti FLASH EPROM (ty se mažou také
elektricky, ale vždy se maže celý obsah paměti). Může se zdát, že EEPROM už
částěčně nahradí paměti RAM. Oproti nim mají výhodu v tom, že obsah paměti
zůstane zachován i při odpojení od napájení. Jejich nevýhodou je nižší rychlost
(čtení/mazání+zápis/přístupová doba) a malá velikost (kapacita) paměti oproti
pamětem RAM.
Paměti EEPROM mají v porovnání s pamětmi FLASH EPROM a především
EPROM vyšší cenu a také vyšší výkonovou ztrátu.
Z těchto důvodu jsou paměti
EEPROM široce používány v moderních elektronických zařízeních - především pro
uchování různých nastavení (parametrů), krátkých údajů, uložení programu. Např.
v televizoru pro uchování aktuální úrovně hlasitosti, seznamu naladěných kanálů
atd. I po vypnutí televizoru zůstavají nastavení zachována - při dalším zapnutí
je nemusíme znovu provádět. Tím, že měníme nastavení televizoru,
přeprogramováváme tak vlastně obsah EEPROM. Podobně se EEPROM používá v PC
monitorech, motherboardech PC (BIOS), hi-fi věžích, mobilních zařízeních atd.
Dále se popisem pamětí EEPROM zabývat nebudeme, pokud máte zájem o
podrobnější informace o EEPROM nebo i dalších typech pamětí, zkuste se podívat
na jinou stránku.
Co je sériová
EEPROM Paměti EEPROM lze rozdělit dle způsobu připojení k mikroprocesoru
na paralelní a sériové. Paralelní EEPROM mají větší kapacitu paměti (běžně od
2kB do 32kB), jsou tedy vhodné pro uložení programu, z hlediska počtu vývodů
jsou zaměnitelné za paměti EPROM (28-pinové). Pro komunikaci s mikroprocesorem
vyžadují vnější paralelní sběrnici (min. dva porty P0 a P2). Sériové EEPROM mají
kapacitu menší (obvykle do 2kB, vyjímečně až 32kB), jsou tedy vhodné spíše pro
uchování parametrů. Protože ke komunikaci s mikroprocesorem potřebují jen dva až
tři signálové vodiče, bývají vyráběny v pouzdrech s malým počtem vývodů (obvykle
pouze 8). Sériové EEPROM lze velmi výhodně použít u "zredukovaných" verzí 8051,
jako je AT89C2051, které mají malý počet v/v pinů.
U sériových EEPROM se
tedy adresa a data posílají z/do obvodu bit po bitu (tj. sériově), pokud chceme
mikroprocesorem z paměti číst nebo do ní zapisovat, musíme vyslat daný příkaz,
adresu a samotná data obvykle nějakým standardním sér. komunikačním protokolem
(sběrnice MicroWire, I2C, SPI,...). V závislosti na použité sběrnici
může být propojení mikroprocesoru s pamětí dvouvodičové (I2C) nebo
třívodičové (MicroWire). Takováto komunikaci je časově i co do programové
obsluhy náročnější než při použití paralelní EEPROM. Sériové EEPROM jsou ale
oproti paralelním o hodně levnější a zabírají minimální místo na DPS.
Sériové paměti EEPROM vyrábí několik výrobců - mezi nejznámější patří SGS-Thomson,
Atmel, Microchip Technology, ISS a další.
V našem
povídání se budeme zabývat připojením nejpoužívanějších a nejdostupnějších typů
- řady 93Cxx, 24Cxxx a 25xxx. Obvody 93C46 (128B), 93C56 (256B), 93C66 (512B), 93C86 (2kB) mají
sériovou sběrnici MicroWire, obvody 24C01 (128B), 24C02 (256B), 24C04 (512B), 24C08 (1kB), 24C16 (2kB), 24C32 (4kB), 24C64 (8kB), 24C128 (16kB), 24C256 (32kB), 24C512 (64kB) mají
sériovou sběrnici I2C a konečně
obvody 25010
(128B), 25020
(256B), 25040
(512B), 25080
(1kB), 25160 (2kB),
25320 (4kB), 25640 (8kB), 25128 (16kB), 25256 (32kB), 25HP512 (64kB), 25P1024 (128kB)
komunikují přes sériovou sběrnici SPI.
Komunikace mikroprocesoru 8051 se sériovou EEPROM
Řešení komunikace 8051 se sériovými EEPROMkami nám nabízí samotná firma
Atmel - hardwarové
zapojení už snad jednodušší být nemůže.
Následující schémata zapojení
pocházejí z odkazovaných aplikačních poznámek firmy ATMEL.
Dále funkci pamětí
a jejich obsluhy rozebírat nebudeme, vše je velmi srozumitelně popsáno v
datasheetech k jednotlivým pamětem nebo v rámci komentářů přímo v asm programu
(chci se vyhnout známému několikanásobnému přemílání jednoho dobře udělaného
originálu...).
Připojení paměti 93Cxx k
AT89C2051 Může být 3-vodičové nebo 4-vodičové. To, že je na obr.1
připojen pin paměti č.6 (ORG) na zem a na obr.2 na +Vcc může být na první pohled
trochu matoucí - nejde o rozlišení způsobů připojení (3/4 vodičové), ale o volbu
organizace paměti. Pokud je tedy pin ORG připojen na zem, pak je pamět
organizována po 8 bitech, pokud je ORG připojen na +Vcc, je paměť organizována
po 16 bitech.
 Protože piny portu P1 jsou programově měnitelné buď jako
vstupní nebo výstupní, můžeme klidně použít 3-vodičové zapojení. Ušetřený pin
mikroprocesoru se může vždy hodit. Způsob úpravy programu v případě použití
3-vodičového připojeni je popsán v komentářích programu.
Obr.1 Třívodičové
připojení
Obr.2 Čtyřvodičové připojení
Program pro obsluhu
paměti 93Cxx - při 12MHz krystalu způsob úpravy programu pro 3/4 vodičové
připojení paměti je popsán v komentáři programu (autor firma ATMEL)
Jinou rutinu i s popisem (tato je vyzkoušená a je plně funkční) naleznete také na těchto stránkách.
Je plně v češtině.
Připojení paměti 24Cxxx k AT89C2051
Jak je vidět z obr.3, pamětí řady 24Cxxx lze na jednu sběrnici (tj. 2 v/v
piny mikroprocesoru) připojit několik. Ne všechny typy lze ale takto kaskádovat.
Pokud tedy chceme připojit na sběrnici několik pamětí, musíme je nějakým
způsobem vzájemně odlišit a k tomu slouží adresovací vstupy A0,A1,A2. Počet
adresovacích vstupů nám dává logicky počet max. 8 připojitelných pamětí. Některé
typy lze ale připojit jen do počtu 4 nebo 2 pamětí na jednu sběrnici.
Adresovací vstupy musí být na pevno nadrátovány jak ukazuje obr.3 -
způsob adresování odpovídá BCD kódu, paměť 0 má všechny adresovací vstupy
připojeny na zem, paměť 7 je má připojeny na +Vcc.
Přesnější a vyčerpávající popis těchto pamětí naleznete i s česky komentovanou rutinou
též na mých stránkách.
Obr.3 Dvouvodičové
připojení paměti 24Cxxx
Program pro obsluhu
paměti 24Cxxx - při 12MHz krystalu (autor firma ATMEL)
Připojení paměti 25xxx k AT89C2051 Může být
3-vodičové nebo 4-vodičové. Stejně jako u pamětí 93Cxx není důvod používat
4-vodičové připojení - piny SI (Serial In) a SO (Serial Out) můžeme připojit na
jeden pin mikroprocesoru, protože všechny piny portu P1 jsou vstupně/výstupní a
můžeme programově měnit jejich funkci (v/v).
Obr.4 Třívodičové
připojení
Obr.5 Čtyřvodičové připojení
Program pro obsluhu
paměti 25xxx - při 24MHz krystalu způsob úpravy programu pro 3/4 vodičové
připojení paměti je popsán v komentáři programu (autor firma ATMEL)
|
© DH servis 2002 - |