You are on page 1of 6

P O D Z E S P O Y

Pamici FRAM
w zastosowaniach
praktycznych, cz
Wspczenie pamici dzielone s na dwie
podstawowe kategorie: nieulotne i ulotne.
Obydwie s nieustannie rozwijane, co
zaowocowao kilka lat temu wprowadzeniem
do sprzeday nieulotnych pamici FRAM o do
niezwykych moliwociach. Przedstawiamy je
w artykule wraz z praktycznymi przykadami
stosowania pamici.
Pamici nieulotne s od
wielu lat uywane s w
aplikacjach w celu zapamitania pewnych staych
lub rzadko zmienianych
informacji. Moe to by

Elektronika Praktyczna 3/2005

program realizowany przez


mikroprocesor czy te - dla
przykadu - wzorce znakw
wywietlanych na ekranie
wywietlacza LCD. Podstawow cech tego rodzaju

pamici jest stao przechowywanych informacji


rwnie, gdy brak jest napicia zasilania. Zazwyczaj
zapis pamici staej (czsto
zwany jej programowaniem),
nawet mimo uycia technologii EEPROM czy te Flash
EEPROM, jest dosy trudny
i zajmuje duo czasu, jeli
odnie to do czasu odczytu teje pamici.
Druga grupa to pamici
ulotne, czyli rne wersje

1
RAM. S one atwe do zapisu i pracuj bardzo szybko, wic ten rodzaj pamici
przechowuje dane, ktre czsto ulegaj zmianie. Przeciwnie do pamici ROM, dane
przechowywane w pamici
RAM gin po odczeniu
napicia zasilajcego i jeli
konieczne jest z jaki wzgldw zachowanie niezmiennego stanu RAM, wymagane
jest stosowania pomocniczych rde zasilania. Jest

43

P O D Z E S P O Y

to swego rodzaju wyzwanie


dla konstruktora ukadu.
Wad wyej opisanych
ukadw nie posiada nowy
rodzaj pamici, ktrej technologia wytwarzania przed
kilkunastu laty opucia laboratoria naukowe. Jest to
pami FRAM. Skrt nazwy
tumaczy si jako Ferroelectric Random Access Memory.
Oznacza on technologi wytwarzania (uwaga!) nieulotnej
pamici RAM, czyli pamici
czcej w sobie szybko
pracy RAM i trwao ROM.
Pamici wytwarzane w
technologii FRAM dostpne
byy ju przed kilku laty
(praktycznie od 1993 roku), ale zarwno cena jak
i dostpny asortyment nie
zachcay do ich stosowania. Jednak w ostatnim czasie technologia ta przeywa
prawdziw eksplozj rozwoju. Firmy oferuj liczne
ukady peryferyjne wyposaone w pamici FRAM a cena
ukadw gwatownie spada.
Moim zdaniem w przyszoci
technologia ta moe zastpi
popularn technologi Flash
EEPROM chyba, e zostanie
opracowany jaki zupenie
nowy rodzaj pamici.

Czym s pamici FRAM?

F RA M j e s t r o d z a j e m
pamici RAM, w ktrej
wykorzystano efekt ferro-

44

elektryczny do zapamitywania bitw sowa danych.


Efekt ten, by moe znany niektrym studentom
politechnik z wicze w
laboratorium fizyki, wystpuje w niektrych materiaach krystalicznych i jest
zdolnoci materiau do
przechowywania polaryzacji elektrycznej rwnie
w przypadku nieobecnoci
pola elektrycznego, ktre
t polaryzacj wywoao.
Komrka pamici tworzona jest poprzez naoenie
materiau ferroelektrycznego w postaci krystalicznej
pomidzy dwa doprowadzenia paskich elektrod
w taki sposb, aby zosta
utworzony kondensator z
materiaem ferroelektrycznym jako dielektrykiem.
Konstrukcja tego kondensatora zbliona jest do typowej konstrukcji komrki
pamici DRAM z tym, e
zamiast przechowywa informacj w postaci naadowanego kondensatora (tak,
jak w typowo robi to komrka pamici DRAM), bit
przechowywany jest w postaci polaryzacji adunkw
w obrbie struktury krystalicznej. W ten sposb
poprzez zmian polaryzacji adunkw przy pomocy pola elektrycznego wewntrz kondensatora, mo-

na tworzy i zapamita
dwa stabilne stany. Stany
te umownie mog odpowiada wartociom logicznym bitw, to jest zeru
i jedynce.
Prosta zasada dziaania,
niemale identyczna z t
stosowan w pamiciach
RAM, umoliwia konstrukcj prostych obwodw zapisu i odczytu komrek
pamici. Jak wspomniano
wczeniej, materia ferroelektryczny zachowuje polaryzacj adunkw pomimo
zaniku pola elektrycznego
i w zwizku tym, nie tak
jak w pamiciach RAM,
dane mog by przechowywane w sposb nieulotny.
Zbudowana z jego wykorzystaniem komrka pamici nie wymaga rwnie
okresowego odwieania.

Dziaanie pamici FRAM

Na rys. 1 przedstawiony jest pogldowy model


krysztau ferroelektrycznego o strukturze perowskitu.
Kryszta posiada ruchomy
atom w rodku swojej struktury (oznaczony kolorem
tym). Przyoenie pola
elektrycznego powoduje, e
mobilny atom przesuwa
si w kierunku dziaania si
pola. Odwrcenie polaryzacji
pola powoduje przemieszczanie si atomu w kierunku

przeciwnym. Pozycje atomy


na grze i dole struktury krystalicznej s stabilne.
Atom pozostaje w jednej
z nich w przypadku braku pola elektrycznego. Jako
komrka pamici cyfrowej,
taka struktura jest wrcz
idealna: posiada dwa stany
stabilne, potrzebuje bardzo
maej mocy do zmiany stanu i zachowuje ten stan nawet mimo dziaania rnych
czynnikw zewntrznych.

Odczyt

Mimo, i podstawowym
elementem komrki pamici jest kondensator, to jednak bity nie s zapamitywane jako adunek liniowy. Odczyt takiej komrki
pamici wymaga detekcji
pooenia atomu wewntrz
struktury krystalicznej.
Niestety nie moe ono by
rozpoznane bezporednio i
musi tu by uywany pewien zabieg.
Do kondensatora przykadane jest napicie. Na
skutek tego pomidzy jego
okadzinami pojawia si
pole elektryczne. Ruchomy
atom przesuwa si zgodnie z kierunkiem dziaania pola, lub pozostaje w
spoczynku, jeli jego pooenie jest z nim zgodne. W rodku struktury
krysztau wystpuje stan

Rys. 1.

Elektronika Praktyczna 3/2005

P O D Z E S P O Y

rwnowagi, ktry utrzymuje pozostae atomy w


cile okrelonych pooeniach sieci krystalicznej a
wypadowe pole elektryczne jest rwne 0. Jeli ruchomy atom przemieszcza
si, to powoduje zaburzenie, co skutkuje impulsem
e n e rg e t y c z n y m . I m p u l s
ten dodaje si do adunku zgromadzonego przez
kondensator (pamitajmy,
e opisywane s struktury
o rozmiarach kilkunastu
atomw!). Na skutek tego
jedne kondensatory naadowane bd do wartoci
adunku wymuszonej przez
pole elektryczne a inne
bd posiada adunek bdcy kombinacj oddziaywania pola elektrycznego
i ruchu atomu. Mimo, i
odczyt pamici wymaga
przemieszczenia atomu, to
jednak naley pamita o
tym, e atom przebywa
bardzo krtk drog. Jego
pooenie zmienia si w
czasie 1 nanosekundy (10-9
sekundy) a ca a opera cja odczytu zajmuje okoo
70 nanosekund.
atwo na podstawie
powyszego opisu wywnioskowa, jak bdzie wyglda obwd okrelajcy stan
bitu: bdzie to rodzaj komparatora porwnujcego adunek odebrany z komrki
pamici z pewnym poziomem odniesienia. Dobrze,
a co ze zmian polaryzacji
adunku? Przecie pisaem,

Elektronika Praktyczna 3/2005

e podczas odczytu atom


przemieszcza si wewntrz
struktury. W zwizku z
przyjt metod odczytu,
kademu cyklowi dostpu
do pamici towarzyszy rodzaj operacji odwieania.
A co w zwizku z tym
z czasem dostpu do pamici? Czy nie jest przez
to odwieanie wyduany?
Niestety tak. Wpyw odwieania na czas odczytu
pamici FRAM jest znaczny, poniewa zajmuje ono
a 50 nanosekund.

Zapis

Operacja zapisu jest


bardzo podobna do opisywanego wczeniej odczytu.
Inaczej ni inne rodzaje pamici staych programowane
elektrycznie, nie wymaga
przyoenia wysokiego napicia czy te dugiego czasu
zapisu. Wewntrzny obwd
przykada napicie do okadzin kondensatora ferroelektrycznego. Powoduje to odpowiednie przemieszczenie
ruchomego atomu i polaryzacj krysztaw. Jeli jest
to potrzebne, nowe dane
po prostu zmieniaj stan
polaryzacji krysztau ferroelektrycznego. Tak, jak w
przypadku odczytu, zmiana
stanu krysztau zajmuje ok.
1 nanosekundy podczas, gdy
caa operacja zapisu okoo
70 nanosekund (7 x 10-8s!).
Nieporwnywalnie krtki
czas, jeli odnie go np.
do pamici Flash.

45

P O D Z E S P O Y
Tab. 1. Ukady peryferyjne do systemw mikroprocesorowych
Nazwa
produktu

VDD

Rodzaj
interfejsu

Wielko
pamici

RTC

Ukady z rodziny 31: pami, RTC, ukad kontroli, peryferia


FM31256
2,7...5,5V
Szer. 2-Wire
256kb
Tak
FM3164
2,7...5,5V
Szer. 2-Wire
64kb
Tak
FM3116
2,7...5,5V
Szer. 2-Wire
16kb
Tak
FM3104
2,7...5,5V
Szer. 2-Wire
4kb
Tak
FM4005
2,7...5,5V
Szer. 2-Wire
NA
Tak
Ukady z serii 32: kompatybilne z seri 31 ale bez RTC
FM32256
2,7...5,5V
Szer. 2-Wire
256kb
Nie
FM3264
2,7...5,5V
Szer. 2-Wire
64kb
Nie
FM3216
2,7...5,5V
Szer. 2-Wire
16kb
Nie
FM3204
2,7...5,5V
Szer. 2-Wire
4kb
Nie
Pami, ukad kontrolny, peryferia.
FM30C256
5V
Szer. 2-Wire
256kb
Tak
32kb
FM3808DK
5V
Rwnolegy
Nie
x 8
32kb
FM3808
5V
Rwnolegy
Tak
x 8

RTC z
funkcj
Alarmu

Monitor
zasilania

Watch
Dog

Sygnalizacja
zaniku
napicia

Numer
seryjny

Przecznik
zasilania

Sygnalizacja
zdarzenia

Rodzaj
obudowy

Nie
Nie
Nie
Nie
Nie

Tak
Tak
Tak
Tak
Tak

Tak
Tak
Tak
Tak
Tak

Tak
Tak
Tak
Tak
Tak

Tak
Tak
Tak
Tak
Tak

Tak
Tak
Tak
Tak
Tak

Licznik
Licznik
Licznik
Licznik
Licznik

SOIC14
SOIC14
SOIC14
SOIC14
SOIC14

Nie
Nie
Nie
Nie

Tak
Tak
Tak
Tak

Tak
Tak
Tak
Tak

Tak
Tak
Tak
Tak

Tak
Tak
Tak
Tak

Tak
Tak
Tak
Tak

Licznik
Licznik
Licznik
Licznik

SOIC14
SOIC14
SOIC14
SOIC14

Nie

Tak

Nie

Nie

Nie

Tak

SOIC20

Nie

No

Nie

Nie

Nie

Nie

Tak

Tak

Tak

Nie

Nie

Tak

Nie

TSOP32

46

VDD

IDD

Z interfejsem szeregowym 2-Wire


FM24C256
256kb
8SE
FM24C64
64kb
8S
FM24CL64
64kb
8S
FM24C16A
16kb
8S
8S &
FM24CL16
16kb
DFN
FM24C04A
4kb
8S
FM24CL04
4kb
8S
Z interfejsem szeregowym SPI
8S &
FM25L256
256kb
DFN
FM25W256
256kb
8S
FM25640
64kb
8S
8S &
FM25CL64
64kb
DFN
8S &
FM25L16
16kb
DFN
FM25C160
16kb
8S
FM25CL04
4kb
8S
FM25040
4kb
8S
Z interfejsem rwnolegym
FM18L08
32kb x 8 28S, 28P
FM1808
32kb x 8 28S, 28P
FM1608
8kb x 8
28S, 28P

Aplikacje

Maksymalna
czstotliwo
taktowania

Rodzaj
obudowy

Pojemno

Nazwa
produktu

Tab. 2. Zestawienie najwaniejszych parametrw pamici


FRAM

1MHz
1MHz
1MHz
1MHz

5V
5V
2,7...3,6V
5V

1,2mA
1,2mA
400mA
1,0mA

1MHz

2,7...3,6V

400uA

1MHz
1MHz

5V
2,7...3,6V

1,0mA
300mA

25MHz

2,7...3,6V

6mA

25MHz
5MHz

2,7...5,5V
5V

7mA
3,0mA

20MHz

2,7...3,6V

10mA

20MHz

2,7...3,6V

10mA

5MHz
20MHz
1,8MHz

5V
2,7...3,6V
5V

3mA
3,0mA
2,5mA

70ns
70ns
120ns

3,0...3,6V
5V
5V

15mA
25mA
15mA

Oczywicie, w praktyce, wszystkie opisywane


wyej zjawiska nie bd
obchodzi potencjalnego
uytkownika ukadu. Producenci wyposaajc ukad
peryferyjny w interfejs SPI
zwalniaj konstruktora od
pamitania o fizycznych
cechach pamici. Nieco inaczej jest w przypadku pamici rwnolegych porusz ten temat w dalszej
czci artykuu.
Kiedy po raz pierwszy
przeczytaem o upowszechnieniu si technologii pamici FRAM, przed oczyma od razu miaem szerokie spektrum aplikacji.
Po pierwsze, ze wzgldu
na bardzo du szybko
oraz ogromn liczb cykli zapisu, bardzo zasadne
jest uycie tego rodzaju
pamici jako pamici masowej w komputerach PC,

telefonach komrkowych,
aparatach fotograficznych i
innych urzdzeniach elektronicznych.

Produkty firmy Ramtron

Firm wiodc na rynku p r o d u k t w F RA M i


praktycznie zaoon tylko w celu ich rozwoju
oraz rozpowszechniania
jest Ramtron International
Corporation z siedzib w
Colorado Springs (USA).
Firma zaoona zostaa w
1984 roku i po blisko 10
latach prac badawczych,
w 1993 roku wprowadzia
na rynek pierwszy pro dukt komercyjny. Bya to
pami o pojemnoci 4 kb
(kilobit). Wspczenie firma jest liderem w dziedzinie technologii wytwarzania pamici FRAM, wacicielem wielu patentw
z tej dziedziny i oferuje
szereg rnych ukadw

Elektronika Praktyczna 3/2005

P O D Z E S P O Y

peryferyjnych. Midzy innymi ukady zawierajce


np. zegar czasu rzeczywistego oraz 256 kb pamici
FRAM. Krtkie zestawienie
jej produktw zawieraj
tab. 1 i 2.

Pami szeregowa
FM24C64 (64 kb)

Wykonana w technologii
FRAM pami FM24C64 wyposaona jest w szybki interfejs 2-Wire. Jest ona funkcjonalnym odpowiednikiem
popularnej pamici EEPROM
produkowanej przez wiele firm pod oznaczeniem
24C64 (np. przez firm Atmel Corp. AT24C64). Jako,
e ten rodzaj pamici jest
dobrze znany elektronikom,
tu w skrcie zostan wymienione cechy pamici po
to, aby zaj si praktyczn
realizacj interfejsu programowego umoliwiajcego zapis i odczyt danych:
Bardzo niski pobr
prdu: 150 A przy zasilaniu 5 V, 10 A w
trybie standby.
Organizacja: 8192 x
8 bit.

Elektronika Praktyczna 3/2005

Moliwo wykonania a
1012 cykli zapisu/odczytu!
Gwarancja na podtrzymanie zawartoci przez
10 lat.
Brak czasu oczekiwania
na zapis/odczyt bajtu
(czas dostpu znacznie
krtszy od okresu zegara transmisji interfejsu).
Czstotliwo sygnau
zegarowego interfejsu
do 1 MHz.
Kompatybilna z pamiciami EEPROM typu
24C64.
Interfejs zbliony
funkcjonalnie do I 2 C
(oba tryby: standardowy 100 kHz i szybki
400 kHz).
Jak wspomniano przy
okazji krtkiej charakterystyki cech pamici, jest ona
kompatybilna z popularn
pamici EEPROM 24C64.
Podobnie jest z programem
obsugi: nie wymaga on adnych specjalnych zabiegw.
Najwaniejsza jest rnica
funkcjonalna: pami FRAM
w porwnaniu z EEPROM
wyrnia si ogromn wrcz
szybkoci zapisu. W zwiz-

47

P O D Z E S P O Y
List. 1.

;zapis na stronie pamici zawartoci bufora BUFFER ;wywoanie:


;adres 1-go bajtu w ADDR_HI:
ADDR_LO, dane do zapisu w BUFFER,
;liczba bajtw w COUNT, zmienna
cz adresu ukadu w A
;zwraca CY=1, jeli magistrala
jest zajta lub pami nie odpowiada
;modykuje: A, COUNT, INDEX
write_block:
call
start
;wysanie
polecenie I2C START
jc wb_x8
;przerwa,
jeli magistrala jest zajta
rl A
;zmienna cz
adresu przesuwana jest na poz.
bitw 3:1
orl A,#FIXEDADDR
;dodanie
staej czci adresu
clr ACC.0
;zerowanie
bitu numer 0: zapis danych
call
shout
;wysanie
adresu pamici
jc wb_x7
;jeli ukad
nie odpowiada, to bd i wyjcie
mov A,addr_hi
;wysanie
starszego bajtu adresu sowa w
pamici
call
shout
jc wb_x7
;jeli ukad
nie odpowiada, to bd i wyjcie
mov A,addr_lo
;wysanie
modszego bajtu adresu sowa w
pamici
call
shout
jc wb_x7
;jeli ukad
nie odpowiada, to bd i wyjcie
mov index,#buffer
;zaadowanie do zmiennej INDEX adresu
bufora w RAM
wb_x6:
mov A,@index
;pobierz bajt
call
shout
;wylij do
pamici 24C64
jc wb_x7
;jeli ukad
nie odpowiada, to bd i wyjcie
inc index
;nastpna
pozycja w buforze
djnz
count,wb_x6
;nastpny adres w 24C64
clr C
;zerowanie agi C
- sygnalizacji bdu
wb_x7:
call
stop
;wysanie
polecenie I2C STOP
wb_x8:
ret
;odczyt jednego bajtu do jednej
strony bajtw z pamici 24C64
;wysya polecenie Random Read a
nastpnie Sequential Read
;wywoanie: adres 1-go bajtu w
ADDR_HI:ADDR_LO, dane zwracane
w BUFFER,
;liczba bajtw w COUNT, zmienna
cz adresu ukadu w A
;zwraca CY=1, jeli magistrala
jest zajta lub pami nie odpowiada
;modykuje: A, COUNT, INDEX
read_block:
;tryb zapisu w
celu ustawienia licznika adresw
24C64
call
start
;wysanie
polecenia I2C START
jc rb_x5
;przerwa,
jeli magistrala jest zajta
rl A
;zmienna cz
adresu przesuwana jest na poz.
bitw 3:1
orl A,#FIXEDADDR
;dodanie
staej czci adresu
mov index,A
;zapamitanie kopii adresu urzdzenia
clr ACC.0
;wybr operacji zapisu
call
shout
;wysanie
adresu pamici
jc rb_x4
;wyjcie,
jeli brak potwierdzenia
mov A,addr_hi
;wysanie
starszej czci adresu sowa
call
shout
jc rb_x4
;wyjcie,
jeli brak potwierdzenia
mov A,addr_lo
;wysanie
modszej czci adresu sowa
call
shout
jc rb_x4
;wyjcie,
jeli brak potwierdzenia
;zmiana trybu na
odczyt i odczyt bajtw
call
start
;powtrne
wysanie polecenia I2C START
jc rb_x4
;wyjcie,
jeli brak potwierdzenia
mov A,index
;odtworzenie adresu pamici

48

List. 1. cd

setb
ACC.0
;kasowanie
bitu 0 adresu - odczyt
call
shout
;wysanie
adresu na magistral I2C
jc rb_x4
;wyjcie,
jeli brak potwierdzenia
mov index,#buffer
;do zmiennej INDEX wskazanie do bufora
rb_x1:
call
shin
;odbir
bajtu od pamici
mov @index,A
;zapamitanie
ich w RAM mikrokontrolera
cjne
count,#1,rb_x2
;skok, jeli to nie ostatni bajt
call
NAK
;nie wysyaj
potwierdzenia, ostatni bajt
jmp rb_x3
;wyjcie
rb_x2:
call
ACK
;wylij potwierdzenie
inc index
;nastpna
pozycja w buforze
djnz
count,rb_x1
;nastpny bajt w pamici 24C64
rb_x3:
clr C
; clear error ag
rb_x4:
call
stop
;wysanie
rozkazu I2C STOP
rb_x5:
ret
;zapis bajtu do pamici 24C64;
wywoanie: adres 1-go bajtu w
;ADDR_HI:ADDR_LO, dane do zapisu
w ZDATA, zmienna cz adresu
;ukadu pamici w A, zwraca CY=1,
jeli magistrala jest zajta lub
;pami nie odpowiada, modykuje A
write_byte:
call
start
;wysanie
rozkazu I2C START
jc wb_y9
;wyjcie,
jeli brak potwierdzenia
rl A
;zmienna cz
adresu przesuwana jest na poz.
bitw 3:1
orl A,#FIXEDADDR
;dodanie
staej czci adresu
clr ACC.0
;operacja
zapisu (b0=0)
call
shout
;wysanie
adresu pamici
jc wb_y8
;wyjcie,
jeli brak potwierdzenia
mov A,addr_hi
;wysanie
starszego bajtu adresu sowa
call
shout
jc wb_y8
;wyjcie,
jeli brak potwierdzenia
mov A,addr_lo
;wysanie
modszego bajtu adresu sowa
call
shout
jc wb_y8
;wyjcie,
jeli brak potwierdzenia
mov A,zdata
;pobranie
danych z ZDATA do ACC
call
shout
;wysanie
danych do pamici 24C64
jc wb_y8
;wyjcie,
jeli brak potwierdzenia
clr C
;kasowanie znacznika bdu
wb_y8:
call
stop
;wysanie
rozkazu I2C STOP
wb_y9:
ret
;odczyt bajtu spod biecego adresu w pamici 24C64
;wywoywana ze zmienn czci
adresu w A, zwraca bajt w A
;zwraca CY=1, jeli magistrala
jest zajta lub pami nie
;odpowiada, modykuje A
read_current:
call
start
;wysanie
rozkazu I2C START
jc rc_x5
;wyjcie,
jeli brak potwierdzenia
rl A
;zmienna cz
adresu przesuwana jest na poz.
bitw 3:1
orl A,#FIXEDADDR
;dodanie
staej czci adresu
setb
ACC.0
;operacja
odczytu (b0=1)
call
shout
;wysanie
adresu pamici
jc rc_x4
;wyjcie,
jeli brak potwierdzenia
call
shin
;odbir
bajtu danych
call
NAK
;nie wysyaj
potwierdzenia, koniec operacji
clr C
;kasowanie agi
sygnalizacji bdu
rc_x4:

List. 1. cd

call
stop
;wysanie
rozkazu I2C STOP
rc_x5:
ret
;wywoanie funkcji Read Random
(odczyt swobodny)
;wywoywana ze zmienn czci
adresu w A, adresem bajtu w
;ADDR_HI:ADDR_LO; bajt zwracany
w akumulatorze
;zwraca CY=1, jeli magistrala
jest zajta lub pami nie
;odpowiada
read_random:
push
B
;zapamitanie
stanu rejestru B na stosie
mov B,A
;zapamitanie
kopii zmiennej czci adresu
;tryb zapisu w
celu ustawienia licznika adresw
24C64
call
start
;wysanie
rozkazu I2C START
jc rr_x7
;wyjcie,
jeli brak potwierdzenia
rl A
;zmienna cz
adresu przesuwana jest na poz.
bitw 3:1
orl A,#FIXEDADDR
;dodanie
staej czci adresu
clr ACC.0
;operacja
zapisu (b0=0)
call
shout
;wysanie
adresu pamici
jc rr_x6
;wyjcie,
jeli brak potwierdzenia
mov A,addr_hi
;wysanie
starszego bajtu adresu sowa
call
shout
jc rr_x6
;wyjcie,
jeli brak potwierdzenia
mov a,addr_lo
;wysanie
modszego bajtu adresu sowa
call
shout
jc rr_x6
;wyjcie,
jeli brak potwierdzenia
;wywoanie funkcji Call Current Address Read
mov A,B
;odtwrz zmienn
cz adresu
call
read_current
jmp rr_x7
;wyjcie
rr_x6:
call
stop
;wysanie
rozkazu I2C STOP
rr_x7:
pop B
;odtworzenie
stanu rejestru B
ret

ku z tym, e interfejs I 2C
jest znany z szeregu aplikacji, opis pamici ogranicz
do krtkiej charakterystyki
funkcjonalnej.
Podobnie jak I 2C, kompatybilny z nim interfejs
2-Wire wymaga rezysto rw zasilajcych (pull-up) o
wartoci minimalnej okoo
1,8 kV. Warto rezystorw
zaley od pojemnoci pocze. Przy bardzo krtkich
poczeniach wystarczajce
mog by rezystory wbudowane w struktur np. mikrokontrolera, ale nie polecam rozwizania tego typu.
Linie interfejsu s dwukierunkowe, transmisja zawsze
nadzorowana jest przez
ukad zarzdzajcy (master),
podczas gdy pami jest
zawsze ukadem nadzorowanym (slave). Podobnie jak w
I2C linie nosz nazw SDA
(danych) i SCL (zegarowa).
Od I2C przejto rwnie sy-

gnalizacj stanw (potwierdzenie odbioru danych czy


komendy - ACK) oraz polecenia START, STOP.
Po otrzymaniu polecenia START interfejs pamici oczekuje na 7-bitowy
adres oraz bit kierunku
transmisji (zapis/odczyt). W
8-bitowym sowie adresu,
bity 7 do 4 identyfikuj
rodzaj ukadu i s predefiniowane przez producenta. Bity 3 do 1 mog
by ustawiane przez uytkownika poprzez zwieranie
odpowiednich wyprowadze do potencjaw 1
lub 0. Najmodszy bit 0
okrela kierunek transmisji
(0 zapis, 1 odczyt).
Na list. 1 umieszczono
najwaniejsze funkcje programu do zapisu i odczytu
danych, ktry ze wzgldu
na du objto nie zmieci si w ramach artykuu.
Cay program mona znale
na pycie CD doczonej do
tego wydania EP. Program
w asemblerze 8051 napisany zosta na podstawie noty
aplikacyjnej firmy Atmel
przeznaczonej dla pamici AT24C64 (dla EEPROM).
Jak wspomniaem wczeniej,
oprcz bardzo duej szybkoci dziaania, pami FRAM
nie rni si niczym w
obsudze od swojego odpowiednika EEPROM. Przykadowy program zapisuje dane
do pamici FRAM, odczytuje
i weryfikuje odczytan zawarto. W przypadku niezgodnoci linia ERROROUT
(w przykadzie jest to P1.4)
przyjmuje stan wysoki. Program rdowy zawiera duo
komentarzy i nie jest zbyt
trudny do analizy. Wymagana jest jedynie elementarna
znajomo asemblera mikrokontrolera 8051.
Jacek Bogusz, EP
jacek.bogusz@ep.com.pl
Dodatkowe informacje
CIT International PL Sp. z o.o.
53-015 Wrocaw,
al. Karkonoska 8
tel. (71) 793 05 00
e-mail: info@citworld.com,
http://www.citworld.com

Elektronika Praktyczna 3/2005

You might also like