FRAM - pamięć szeregowa FM24C64.pdf

(403 KB) Pobierz
305451277 UNPDF
http://www.easy-soft.tsnet.pl/
PAMIĘCI FRAM W ZASTOSOWANIACH
PRAKTYCZNYCH. PAMIĘĆ SZEREGOWA FM24C64
Wprowadzenie.
Współcześnie pamięci dzielone są na dwie kategorie. Pierwszą z nich są pamięci nieulotne. Od wielu lat używane
są w aplikacjach w celu zapamiętania pewnych stałych, niezmiennych informacji. Może to być program
realizowany przez mikroprocesor, czy też dla przykładu wzorce znaków wyświetlanych na ekranie wyświetlacza
LCD. Podstawową cechą tego rodzaju pamięci jest stałość przechowywanych informacji również, gdy brak jest
napięcia zasilania. Zazwyczaj zapis pamięci stałej (często zwany jej programowaniem), nawet mimo użycia
technologii EEPROM czy też FLASH EEPROM, jest dosyć trudny i zajmuje dużo czasu, jeśli odnieść to do czasu
odczytu tejże pamięci.
Druga grupa to pamięci ulotne, tak zwane RAM. Są one łatwe do zapisu i pracują bardzo szybko, więc ten rodzaj
pamięci przechowuje dane, które często ulegają zmianie. Przeciwnie do pamięci ROM, dane przechowywane w
pamięci RAM giną po odłączeniu napięcia zasilającego i jeśli konieczne jest z jakiś względów zachowanie
niezmiennego stanu RAM, wymagane jest stosowania pomocniczych źródeł zasilania. Jest to swego rodzaju
wyzwanie dla konstruktora układu.
Wad wyżej opisanych układów nie posiada nowy rodzaj pamięci, której technologia wytwarzania przed
kilkunastu laty opuściła laboratoria naukowe. Jest to pamięć FRAM. Skrót nazwy tłumaczy się jako Ferroelectric
Random Access Memory. Oznacza on technologię wytwarzania (uwaga!) nieulotnej pamięci RAM, czyli pamięci
łączącej w sobie szybkość pracy RAM i trwałość ROM.
Pamięci wytwarzane w technologii FRAM dostępne były już przed kilku laty (praktycznie od 1993 roku), ale
zarówno cena jak i dostępny asortyment nie zachęcały do ich stosowania. Jednak w ostatnim czasie technologia
ta przeżywa prawdziwą eksplozję rozwoju. Firmy oferują liczne układy peryferyjne wyposażone w pamięci FRAM
a cena układów gwałtownie spada. Moim zdaniem w przyszłości technologia ta może zastąpić popularną
technologię FLASH EEPROM chyba, że zostanie opracowany jakiś zupełnie nowy rodzaj pamięci.
Czym są pamięci FRAM?
FRAM jest rodzajem pamięci RAM, w której wykorzystano efekt ferroelektryczny do zapamiętywania bitów słowa
danych. Efekt ten, być może znany niektórym studentom politechnik z ćwiczeń w laboratorium fizyki, występuje
w niektórych materiałach krystalicznych i jest zdolnością materiału do przechowywania polaryzacji elektrycznej
również w przypadku nieobecności pola elektrycznego, które tę polaryzację wywołało. Komórka pamięci
tworzona jest poprzez nałożenie materiału ferroelektrycznego w postaci krystalicznej pomiędzy dwa
doprowadzenia płaskich elektrod w taki sposób, aby został utworzony kondensator z materiałem
ferroelektrycznym jako dielektrykiem. Konstrukcja tego kondensatora zbliżona jest do typowej konstrukcji
komórki pamięci DRAM z tym, że zamiast przechowywać informację w postaci naładowanego kondensatora (tak,
jak w typowo robi to komórka pamięci DRAM), bit przechowywany jest w postaci polaryzacji ładunków w
obrębie struktury krystalicznej. W ten sposób – poprzez zmianę polaryzacji ładunków przy pomocy pola
elektrycznego wewnątrz kondensatora, można tworzyć i zapamiętać dwa stabilne stany. Stany te umownie
mogą odpowiadać wartościom logicznym bitów, to jest „zeru” i „jedynce”.
Prosta zasada działania, niemalże identyczna z tą stosowaną w pamięciach RAM, umożliwia konstrukcję prostych
obwodów zapisu i odczytu komórek pamięci. Jak wspomniano wcześniej, materiał ferroelektryczny zachowuje
polaryzację ładunków pomimo zaniku pola elektrycznego i w związku tym, nie tak jak w pamięciach RAM, dane
mogą być przechowywane w sposób nieulotny. Zbudowana z jego wykorzystaniem komórka pamięci nie
wymaga również okresowego odświeżania.
Pamięć FRAM jest odporna na działania zewnętrznego pola
magnetycznego. Jej zasada działania, nie ma nic wspólnego z
ferromagnetyzmem. Podobny jest jedynie opis zjawiska
fizycznego: w przypadku materiałów ferroelektrycznych
polaryzacji ulegają ładunki, natomiast w przypadku materiałów
ferromagnetycznych – domeny magnetyczne.
Rys.1. Budowa kryształu ferro-
elektrycznego - perowskitu.
J.Bogusz „Pamięci FRAM w zastosowaniach”
STRONA 1/12
305451277.020.png
http://www.easy-soft.tsnet.pl/
Praca pamięci FRAM.
Na rysunku 1 przedstawiony jest poglądowy model kryształu ferroelektrycznego o strukturze perowskitu.
Kryształ posiada ruchomy atom w środku swojej struktury (oznaczony kolorem żółtym). Przyłożenie pola
elektrycznego powoduje, że „mobilny” atom przesuwa się w kierunku działania sił pola. Odwrócenie polaryzacji
pola powoduje przemieszczanie się atomu w kierunku przeciwnym. Pozycje atomy na „górze” i „dole” struktury
krystalicznej są stabilne. Atom pozostaje w jednej z nich w przypadku braku pola elektrycznego. Jako komórka
pamięci cyfrowej, taka struktura jest wręcz idealna: posiada dwa stany stabilne, potrzebuje bardzo małej mocy
do zmiany stanu i zachowuje ten stan nawet mimo działania różnych czynników zewnętrznych.
Odczyt.
Mimo, iż podstawowym elementem komórki
pamięci jest kondensator, to jednak bity nie
są zapamiętywane jako ładunek liniowy.
Odczyt takiej komórki pamięci wymaga
detekcji położenia atomu wewnątrz struktury
krystalicznej. Niestety nie może ono być
rozpoznane bezpośrednio i musi tu być
używany pewien „zabieg”.
Do kondensatora przykładane jest napięcie.
Na skutek tego pomiędzy jego okładzinami
pojawia się pole elektryczne. Ruchomy atom
przesuwa się zgodnie z kierunkiem działania
pola, lub pozostaje w spoczynku, jeśli jego
położenie jest z nim zgodne. W środku
struktury kryształu występuje stan
równowagi, który utrzymuje pozostałe
atomy w ściśle określonych położeniach sieci
krystalicznej a wypadowe pole elektryczne
jest równe 0. Jeśli ruchomy atom
przemieszcza się, to powoduje zaburzenie,
co skutkuje impulsem energetycznym.
Impuls ten dodaje się do ładunku
zgromadzonego przez kondensator
(pamiętajmy, że opisywane są struktury o
rozmiarach kilkunastu atomów!). Na skutek
tego jedne kondensatory naładowane będą
do wartości ładunku wymuszonej przez pole
elektryczne a inne będą posiadać ładunek
będący kombinacją oddziaływania pola
elektrycznego i ruchu atomu. Mimo, iż
odczyt pamięci wymaga przemieszczenia
atomu, to jednak należy pamiętać o tym, że
atom przebywa bardzo krótką drogę. Jego
położenie zmienia się w czasie 1
nanosekundy (10 -9 sekundy) a cała operacja
odczytu zajmuje około 70 nanosekund.
Łatwo na podstawie powyższego opisu
wywnioskować, jak będzie wyglądać obwód
określający stan bitu: będzie to rodzaj
komparatora porównującego ładunek
odebrany z komórki pamięci z pewnym
poziomem odniesienia. Dobrze, a co ze
zmianą polaryzacji ładunku? Przecież
pisałem, że podczas odczytu atom
przemieszcza się wewnątrz struktury. W
związku z przyjętą metodą odczytu,
każdemu cyklowi dostępu do pamięci
towarzyszy rodzaj operacji odświeżania. A co
w związku z tym z czasem dostępu do
pamięci? Czy nie jest przez to odświeżanie
wydłużany? Niestety tak. Wpływ odświeżania
na czas odczytu pamięci FRAM jest znaczny,
ponieważ zajmuje ono aż 50 nanosekund.
Zapis.
Operacja zapisu jest bardzo podobna do
opisywanego wcześniej odczytu. Inaczej niż
inne rodzaje pamięci stałych programowane
Rysunki pochodzące ze strony internetowej firmy RAMTRON.
(http://www.ramtron.com). Od góry:
·
zasada działania komórki pamięci,
·
struktura komórki pamięci FRAM,
·
rozwój technologii produkcji układów.
J.Bogusz „Pamięci FRAM w zastosowaniach”
STRONA 2/12
305451277.021.png 305451277.022.png 305451277.023.png 305451277.001.png 305451277.002.png
http://www.easy-soft.tsnet.pl/
elektrycznie, nie wymaga przyłożenia wysokiego napięcia czy też długiego czasu zapisu. Wewnętrzny obwód
przykłada napięcie do okładzin kondensatora ferroelektrycznego. Powoduje to odpowiednie przemieszczenie
ruchomego atomu i polaryzację kryształów. Jeśli jest to potrzebne, nowe dane po prostu zmieniają stan
polaryzacji kryształu ferroelektrycznego. Tak, jak w przypadku odczytu, zmiana stanu kryształu zajmuje ok. 1
nanosekundy podczas, gdy cała operacja zapisu około 70 nanosekund (7 x 10 -8 s!). Nieporównywalnie krótki
czas, jeśli odnieść go np. do pamięci FLASH.
Aplikacje.
Oczywiście, w praktyce, wszystkie opisywane wyżej zjawiska nie będą
obchodzić potencjalnego użytkownika układu. Producenci wyposażając
układ peryferyjny w interfejs SPI zwalniają konstruktora od pamiętania o
fizycznych cechach pamięci. Nieco inaczej jest w przypadku pamięci
równoległych – poruszę ten temat w dalszej części artykułu.
Kiedy po raz pierwszy przeczytałem o upowszechnieniu się technologii
pamięci FRAM, przed oczyma od razu miałem szerokie spektrum aplikacji.
Po pierwsze, ze względu na bardzo dużą szybkość oraz ogromną liczbę
cykli zapisu, bardzo zasadne jest użycie tego rodzaju pamięci jako
pamięci masowej w komputerach PC, telefonach komórkowych, aparatach
fotograficznych i innych urządzeniach elektronicznych. Moim zdaniem
pamięci tego rodzaju mogą z powodzeniem zastąpić pamięć FLASH w
mikrokontrolerach tworząc wspólny obszar pamięci dla danych oraz
programu. Rzec by można, że im mniejszy będzie kod programu
użytkownika, tym więcej pamięci RAM będzie miało do dyspozycji CPU
mikrokontrolera. To nie wszystko: programy będą mogły dynamicznie
modyfikować swój stan podczas pracy mikroprocesora. Moim zdaniem
zupełnie zmieni to podejście do programowania oraz sposób tworzenia
aplikacji. To jest przyszłość. Niestety istnieją jeszcze pewne ograniczenie technologiczne i póki co pamięci FRAM
dzielą się na dwie podstawowe kategorie.
Pierwsza to typowe aplikacje do przechowywania danych. W nich pamięci FRAM służą do zapamiętywania
danych przechowywanych poza systemem. Drugi rodzaj aplikacji jest związany z konstrukcją i opracowywaniem
urządzeń związanych z mikrokontrolerami i mikroprocesorami. Dzięki bardzo dużej szybkości zapisu, pamięci te
mogą być wielokrotnie błyskawicznie zapisywane, znacznie skracając czas potrzebny na testowanie aplikacji
podczas jej uruchamiania. Innym aspektem jest programowanie w czasie produkcji – znaczne skrócenie czasu
zapisu programu obniża koszty wytwarzania urządzenia. Nie jest również konieczne wyposażanie linii
produkcyjnej w specjalne układy programatorów.
Cykl zapisu i cykl odczytu zajmują
tyle samo czasu.
·
Można przeprowadzić ogromną ilość
operacji zapisu i odczytu, ponieważ
pamięć praktycznie nie zużywa się
(gwarantowane jest 10 9 cykli zapisu!).
·
Do zasilania wymagana jest bardzo
mała moc. Odczyt i zapis pamięci
wymaga jej dokładnie tak samo mało.
·
W związku z brakiem dodatkowych
napięć zasilających i konieczności
stosowania dodatkowego źródła
zasilania pamięci RAM w celu
podtrzymania zawartości pamięci,
aplikacja ulega znacznemu
uproszczeniu.
Produkty firmy RAMTRON.
Firmą wiodącą na rynku produktów FRAM i praktycznie założoną tylko w celu ich rozwoju oraz
rozpowszechniania jest Ramtron International Corporation z siedzibą w Colorado Springs (USA). Firma założona
została w 1984 roku i po blisko 10 latach prac badawczych, w 1993 roku wprowadziła na rynek pierwszy
produkt komercyjny. Była to pamięć o pojemności 4 kb (kilo - bit). Współcześnie firma jest liderem w dziedzinie
technologii wytwarzania pamięci FRAM, właścicielem wielu patentów z tej dziedziny i oferuje szereg różnych
układów peryferyjnych. Między innymi układy zawierające np. zegar czasu rzeczywistego oraz 256 kb pamięci
FRAM. Krótkie zestawienie jej produktów zawierają tabele 1 i 2.
Nazwa
produktu
V DD
Rodzaj
interfejsu
Wielkość
pamięci
RTC
RTC z
funkcją
Alarmu
Monitor
zasilania
Watch
Dog
Sygnali-
zacja
zaniku
napięcia
Numer
seryjny
Przełącznik
zasilania
Sygnali-
zacja
zdarzenia
Rodzaj
obudowy
Układy z rodziny 31: pamięć, RTC, układ kontroli, peryferia
FM31256 2.7-5.5V Szer. 2-Wire 256Kb Tak Nie Tak
Tak Tak
Tak Tak
Licznik SOIC14
FM3164 2.7-5.5V Szer. 2-Wire 64Kb Tak Nie Tak
Tak Tak
Tak Tak
Licznik SOIC14
FM3116 2.7-5.5V Szer. 2-Wire 16Kb Tak Nie Tak
Tak Tak
Tak Tak
Licznik SOIC14
FM3104 2.7-5.5V Szer. 2-Wire 4Kb
Tak Nie Tak
Tak Tak
Tak Tak
Licznik SOIC14
FM4005 2.7-5.5V Szer. 2-Wire NA
Tak Nie Tak
Tak Tak
Tak Tak
Licznik SOIC14
Układy z serii 32: kompatybilne z serią 31 ale bez RTC
FM32256 2.7-5.5V Szer. 2-Wire 256Kb Nie Nie Tak
Tak Tak
Tak Tak
Licznik SOIC14
FM3264 2.7-5.5V Szer. 2-Wire 64Kb Nie Nie Tak
Tak Tak
Tak Tak
Licznik SOIC14
FM3216 2.7-5.5V Szer. 2-Wire 16Kb Nie Nie Tak
Tak Tak
Tak Tak
Licznik SOIC14
FM3204 2.7-5.5V Szer. 2-Wire 4Kb
Nie Nie Tak
Tak Tak
Tak Tak
Licznik SOIC14
Pamięć, układ kontrolny, peryferia.
FM30C256 5V
Szer. 2-Wire 256Kb Tak Nie Tak
Nie Nie
Nie Tak
-
SOIC20
FM3808DK 5V
Równoległy 32Kb x 8 Nie Nie No
Nie Nie
Nie Nie
-
-
FM3808 5V
Równoległy 32Kb x 8 Tak Tak Tak
Tak Nie
Nie Tak
Nie
TSOP32
Tabela 1. Układy peryferyjne do systemów z mikroprocesorem.
J.Bogusz „Pamięci FRAM w zastosowaniach”
STRONA 3/12
Główne zalety stosowania pamięci FRAM:
·
305451277.003.png 305451277.004.png 305451277.005.png 305451277.006.png 305451277.007.png 305451277.008.png 305451277.009.png 305451277.010.png 305451277.011.png 305451277.012.png 305451277.013.png 305451277.014.png 305451277.015.png 305451277.016.png
http://www.easy-soft.tsnet.pl/
Nazwa
produktu
Pojemność
Rodzaj
obudowy
Maksymalna
szybkość
V DD
I DD
Z interfejsem szeregowym 2-Wire
FM24C256 256Kb
8SE
1MHz
5V
1.2mA
FM24C64 64Kb
8S
1MHz
5V
1.2mA
FM24CL64 64Kb
8S
1MHz
2.7-3.6V 400uA
FM24C16A 16Kb
8S
1MHz
5V
1.0mA
FM24CL16 16Kb
8S & DFN 1MHz
2.7-3.6V 400uA
FM24C04A 4Kb
8S
1MHz
5V
1.0mA
FM24CL04 4Kb
8S
1MHz
2.7-3.6V 300uA
Z interfejsem szeregowym SPI
FM25L256 256Kb
8S & DFN 25MHz
2.7-3.6V 6mA
FM25W256 256Kb
8S
25MHz
2.7-5.5V 7mA
FM25640 64Kb
8S
5MHz
5V
3.0mA
FM25CL64 64Kb
8S & DFN 20MHz
2.7-3.6V 10mA
FM25L16 16Kb
8S & DFN 20 MHz 2.7-3.6V 10mA
FM25C160 16Kb
8S
5MHz
5V
3mA
FM25CL04 4Kb
8S
20MHz
2.7V-3.6V 3.0mA
FM25040 4Kb
8S
1.8MHz 5V
2.5mA
Z interfejsem równoległym
FM18L08 32Kb x 8 28S, 28P 70ns
3.0-3.6V 15mA
FM1808 32Kb x 8 28S, 28P 70ns
5V
25mA
Dystrybutorem RAMTRON w Polsce jest firma:
CIT International z Wrocławia
(http://www.citworld.com/, info@citworld.com)
FM1608 8Kb x 8 28S, 28P 120ns
5V
15mA
Tabela 2. Układy pamięci FRAM.
Czas przejść do pokazania praktycznych zastosowań FRAM. Ten rodzaj pamięci mimo dostępności układów oraz
niewątpliwych ich zalet, nie jest jeszcze w naszym kraju zbyt popularny. Wiele z układów FRAM umożliwia
zastąpienie wprost pamięci EEPROM, inne wymagają specjalnych aplikacji a jeszcze inne są całkowicie
unikatowe. Proponuję aby na początek zająć się typową pamięcią szeregową z interfejsem 2-Wire
(kompatybilny z I 2 C) o pojemności 64 kbit.
Pamięć szeregowa FM24C64 (64 kbit).
Wykonana w technologii FRAM pamięć FM24C64 wyposażona jest w szybki interfejs 2-Wire. Jest ona
funkcjonalnym odpowiednikiem popularnej pamięci EEPROM produkowanej przez wiele firm pod oznaczeniem
24C64 (np. przez firmę Atmel Corp. AT24C64). Jako, że ten rodzaj pamięci jest dobrze znany elektronikom, tu
w skrócie zostaną wymienione cechy pamięci po to, aby zająć się praktyczną realizacją interfejsu
programowego umożliwiającego zapis i odczyt danych:
· Bardzo niski pobór prądu: 150 μA przy zasilaniu 5V, 10 μA w trybie standby.
· Organizacja: 8192 x 8 bit.
· Możliwość wykonania aż 10 12 cykli zapisu / odczytu!
· Gwarancja na podtrzymanie zawartości przez 10 lat.
· Brak czasu oczekiwania na zapis / odczyt bajtu (czas dostępu znacznie krótszy od okresu zegara
transmisji interfejsu).
· Częstotliwość sygnału zegarowego interfejsu do 1MHz.
· Kompatybilna z pamięciami EEPROM typu 24C64.
· Interfejs zbliżony funkcjonalnie do I 2 C (oba tryby: standardowy 100kHz i szybki 400kHz).
Jak wspomniano przy okazji krótkiej charakterystyki cech pamięci, jest ona kompatybilna z popularną pamięcią
EEPROM 24C64. Podobnie jest z programem obsługi: nie wymaga on żadnych specjalnych zabiegów.
Najważniejsza jest różnica funkcjonalna: pamięć FRAM w porównaniu z EEPROM wyróżnia się ogromną wręcz
szybkością zapisu. W związku z tym, że interfejs I 2 C jest znany z szeregu aplikacji, opis pamięci ograniczę do
krótkiej charakterystyki funkcjonalnej.
Podobnie jak I 2 C, kompatybilny z nim interfejs 2-Wire wymaga rezystorów zasilających (pull-up) o wartości
minimalnej około 1,8kΩ. Wartość rezystorów zależy od pojemności połączeń. Przy bardzo krótkich połączeniach
wystarczające mogą być rezystory wbudowane w strukturę np. mikrokontrolera, ale nie polecam rozwiązania
tego typu. Linie interfejsu są dwukierunkowe, transmisja zawsze nadzorowana jest przez układ zarządzający
( master ), podczas gdy pamięć jest zawsze układem nadzorowanym ( slave ). Podobnie jak w I 2 C linie noszą
nazwę SDA (danych) i SCL (zegarowa). Od I 2 C przejęto również sygnalizację stanów (potwierdzenie odbioru
danych czy komendy - ACK) oraz polecenia START, STOP.
Po otrzymaniu polecenia START interfejs pamięci oczekuje na 7-bitowy adres oraz bit kierunku transmisji (zapis
/ odczyt). W 8-bitowym słowie adresu, bity 7 do 4 identyfikują rodzaj układu i są predefiniowane przez
J.Bogusz „Pamięci FRAM w zastosowaniach”
STRONA 4/12
305451277.017.png 305451277.018.png
http://www.easy-soft.tsnet.pl/
producenta. Bity 3 do 1 mogą być ustawiane przez użytkownika poprzez zwieranie odpowiednich wyprowadzeń
do potencjałów „1” lub „0”. Najmłodszy bit 0 określa kierunek transmisji (0 – zapis, 1 – odczyt).
Na listingu 1 umieściłem funkcje obsługi zapisu i odczytu danych. Program w asemblerze 8051 napisany został
na podstawie noty aplikacyjnej firmy Atmel przeznaczonej dla pamięci AT24C64 (dla EEPROM). Jak
wspomniałem wcześniej, oprócz bardzo dużej szybkości działania, pamięć FRAM nie różni się niczym w obsłudze
od swojego odpowiednika EEPROM. Przykładowy program zapisuje dane do pamięci FRAM, odczytuje i
weryfikuje odczytaną zawartość. W przypadku niezgodności linia ERROROUT (w przykładzie jest to P1.4)
przyjmuje stan wysoki. Program źródłowy zawiera dużo komentarzy i nie jest zbyt trudny do analizy.
Wymagana jest jedynie elementarna znajomość asemblera mikrokontrolera 8051.
Jacek Bogusz
jacek.bogusz@easy-soft.tsnet.pl
J.Bogusz „Pamięci FRAM w zastosowaniach”
STRONA 5/12
305451277.019.png
Zgłoś jeśli naruszono regulamin