Programator pamięci EEPROM z interfejsem szeregowym I2C


Programator pamięci EEPROM z interfejsem O J E K T Y
P R szeregowym I2C
Programator pamięci
EEPROM z interfejsem
szeregowym I2C
kit AVT-466
Czytelnicy, ktÛrzy
przeczytali tekst o sposobach
programowania pamiÍci
EEPROM, zamieszczony
w sierpniowym numerze EP,
mogą traktowaĘ ten projekt
jako uzupeÅ‚nienie tamtego PamiÍci szeregowe EEPROM sÄ… +5V, chociaÅ‚ produkowane sÄ…
zazwyczaj wykorzystywane jako wersje zasilane +3V, a nawet
artykułu.
pamiÍci nieulotne, przechowujÄ…ce +1,8V!) doÅ‚Ä…cza siÍ do 8 wypro-
Zamieszczone w nim
niewielkie iloÅ›ci danych, np. pa- wadzenia, a masÍ do 4. Linia SDA
informacje o sposobie
rametry konfiguracyjne w wielu to nÛÅ‚ka 5, a SCL nÛÅ‚ka 6. Wy-
transmisji danych i pracy
urządzeniach powszechnego ułyt- prowadzenia 1-3 słułą do adre-
ukÅ‚adÛw EEPROM
ku takich jak odbiorniki telewi- sowania i wyboru kostki pamiÍci
z szeregowym interfejsem I2C
zyjne, magnetowidy czy zestawy lub pozostajÄ… nie podÅ‚Ä…czone. NÛÅ‚-
wykorzystano podczas
muzyczne. EEPROM-y szeregowe ka 7 podłączona do plusa mołe
projektowania programatora
mołna takłe spotkaĘ w przemys- blokowaĘ zapis lub producent
i przygotowywania jego
Å‚owych sterownikach, kserokopiar- pozostawia jÄ… nie wykorzystanÄ….
oprogramowania.
kach, termostatach itp. SÄ… czÍsto Generalnie pamiÍci rÛÅ‚niÄ… siÍ po-
i chÍtnie stosowane ze wzglÍdu jemnoÅ›ciÄ… i zwiÄ…zanym z tym spo-
na niewielki koszt i dośĘ prosty sobem transmisji danych magist-
sposÛb zapisu i odczytu informa- ralÄ… I2C. Ze wzglÍdu na sposÛb
cji poprzez powszechnie stosowa- programowania układy mołna po-
ny interfejs I2C. dzieliĘ na trzy grupy: o pojemnoś-
Budując układ wykorzystujący ci 1kb (128B) oznaczane jako
EEPROM-y wygodnie jest mieĘ 24C01, o pojemności 1/2/4/8/16kb
pod rÍkÄ… urzÄ…dzenie, dziÍki ktÛ- (odpowiednio 128, 256, 512, 1024
remu mołna podejrzeĘ zawartośĘ i 2048B) oznaczane symbolami
pamiÍci lub jÄ… zmodyfikowaĘ. 24C01A, 24C02-C16 oraz ukÅ‚ady
Dotyczy to zwłaszcza sytuacji, gdy o pojemności 32 i 64 kb oznacza-
ukÅ‚ad nie dziaÅ‚a prawidÅ‚owo ne, jak Å‚atwo siÍ domyÅ›liĘ, sym-
i chciaÅ‚oby siÍ wiedzieĘ czy dane bolami 24C32-C64. Programator
wpisywane do pamiÍci sÄ… wÅ‚aÅ›- potrafi zapisywaĘ i odczytywaĘ
ciwe. Programator pozwoli takÅ‚e dane z pamiÍci wszystkich wy-
sprawdziĘ, czy uÅ‚ywana kostka mienionych typÛw.
pamiÍci nie jest uszkodzona oraz RÛÅ‚nice w sposobie transmisji
powieliĘ jej zawartośĘ w innych danych pomiÍdzy ukÅ‚adami tych
egzemplarzach. trzech grup pokazuje rys. 1, przed-
UkÅ‚ady pamiÍci EEPROM z in- stawiajÄ…cy schematycznie sposÛb
terfejsem I2C produkowane w obu- zapisu do pamiÍci 1 bajtu danych.
dowach DIP8 majÄ…, bez wzglÍdu RÛÅ‚nice wynikajÄ… gÅ‚Ûwnie ze spo-
na typ, standardowy rozkład wy- sobu adresowania, co z kolei wią-
prowadzeÒ. Dotyczy to zarÛwno Å‚e siÍ z pojemnoÅ›ciÄ… pamiÍci. Po-
produktÛw firmy XICOR, ATMEL, niewaÅ‚ ukÅ‚ad 24C01 moÅ‚e zapa-
jak i SGS-THOMSON. Dodatnie miÍtaĘ tylko 128 bajtÛw i do
napiÍcie zasilajÄ…ce (najczÍÅ›ciej magistrali I2C moÅ‚e byĘ doÅ‚Ä…czony
Elektronika Praktyczna 9/98
47
Programator pamięci EEPROM z interfejsem szeregowym I2C
EEPROM-u (0 -24C01, 1 -
24C01A,24C02/C16, 2 -24C32/
C64), bajt 'c' jest bajtem kontrol-
nym.
S(abc) - ustawienie adresu
EEPROM-u do zapisu lub odczy-
tu. Bajt 'a', to starsza czÍśĘ
adresu, bajt 'b' mÅ‚odsza czÍśĘ,
a 'c' to bajt kontrolny.
W(add...dc) - zapis danych do
EEPROM-u. Bajt 'a' jest liczbÄ…
przesyÅ‚anych bajtÛw do zapisu
plus bajt kontrolny. Litery 'd'
oznaczajÄ… bajty danych, a litera 'c'
cyfrÍ kontrolnÄ….
R(ac) - odczyt danych z EEP-
ROM-u. Litera 'a' oznacza liczbÍ
bajtÛw do odczytu, poczÄ…wszy od
adresu ustalonego wcześniej roz-
kazem ìSî, a 'c' to cyfra kont-
rolna.
Układ sterownika, po odebra-
Rys. 1. Formaty słów zapisu danych do pamięci.
niu rozkazu i jego pomyślnym
wykonaniu, wysyła do komputera
tylko jeden taki ukÅ‚ad, to jego ROM. Schemat sterownika poka- jako potwierdzenie znak ìAî
adresowanie mieÅ›ci siÍ w jednym zano na rys. 2. Kody poleceÒ (skrÛt angielskiego sÅ‚owa ìacknow-
bajcie poprzedzajÄ…cym bajt da- i danych, transmitowane Å‚Ä…czem ledgementî). JeÅ‚eli rozkaz z ja-
nych. Najstarszych 7 bitÛw okreÅ›- RS, docierajÄ… do gniazda P1 kichÅ› przyczyn nie mÛgÅ‚ byĘ
la adres komÛrki, a najmÅ‚odszy bit i przez ukÅ‚ad U4 sÄ… przeksztaÅ‚ca- wykonany, wysyÅ‚any jest znak
decyduje o tym czy informacja ma ne na sygnaÅ‚y o poziomie TTL ìNî (brak potwierdzenia). WyjÄ…tek
byĘ zapisywana do komÛrki pa- i podawane do procesora U1. Pro- stanowi odpowiedü po rozkazie
miÍci (bit = 0) czy teÅ‚ odczyty- gram procesora interpretuje pole- odczytu danych z EEPROM-u. Ste-
wana (bit = 1). PojemnośĘ ukÅ‚a- cenia z PC i sterujÄ…c przekaüni- rownik wysyÅ‚a wtedy znak ìAî,
dÛw z drugiej grupy moÅ‚e siÍgaĘ kiem PK1 doÅ‚Ä…cza zasilanie do bajty 'ddd' w liczbie podanej w
2k i do zaadresowania wszystkich programowanego ukÅ‚adu EEPROM rozkazie odczytu, a na koÒcu bajt
komÛrek sÄ… potrzebne dwa bajty, (osadzonego w podstawce U3), co sumy kontrolnej. JeÅ‚eli odczyt siÍ
a dokÅ‚adniej 11 bitÛw. MÅ‚odsze jest sygnalizowane Å›wieceniem nie powiÛdÅ‚, sterownik odpowia-
bity adresu zawiera bajt nazwany diody D1. MagistralÄ… I2C doÅ‚Ä…czo- da jedynie znakiem ìNî.
WORD ADDRESS, a 3 najstarsze nÄ… do portÛw P1.7 i P1.6 proce- WyjaÅ›nienia moÅ‚e wymagaĘ
bity zostaÅ‚y przeniesione do bajtu sora sÄ… wysyÅ‚ane adresy i dane. wprowadzenie i sposÛb tworzenia
o nazwie DEVICE ADDRESS (ra- W przypadku odczytu, dane prze- bajtu kontrolnego. Poniewał ste-
zem z bitem R/W, określającym kształcane są na sygnały RS-a i tą rownik i komputer porozumiewają
tryb pracy - zapis/odczyt). drogÄ… wysyÅ‚ane do komputera. Po siÍ ze sobÄ… przy pomocy szere-
DuÅ‚a pojemnośĘ EEPROM-Ûw zakoÒczeniu sesji odczytu lub gowego Å‚Ä…cza RS, a kabel poÅ‚Ä…-
z trzeciej grupy wymaga dodania zapisu procesor wyÅ‚Ä…cza przekaü- czeniowy moÅ‚e mieĘ dÅ‚ugośĘ na-
jeszcze jednego bajtu adresowego nik i programowany EEPROM mo- wet kilku metrÛw, w czasie trans-
nazwanego FIRST WORD ADD- Å‚e byĘ wyjÍty z podstawki, a ste- misji mogÄ… zdarzyĘ siÍ zakÅ‚Ûce-
RESS. W tym bajcie 5 najmÅ‚od- rownik czeka na kolejne rozkazy. nia, ktÛre znieksztaÅ‚cÄ… przesyÅ‚ane
szych bitÛw peÅ‚ni rolÍ najstar- Sterownik reaguje na 4 rozkazy dane lub rozkazy. MoÅ‚e to dopro-
szych bitÛw adresujÄ…cych komÛr- przesyÅ‚ane Å‚Ä…czem RS. KaÅ‚dy roz- wadziĘ np. do zafaÅ‚szowania za-
kÍ pamiÍci, a pozostaÅ‚e bity ad- kaz skÅ‚ada siÍ z kodu ASCII duÅ‚ej pisywanych w EEPROM-ie danych
resu zawiera bajt SECOND WORD litery oraz bajtÛw parametrÛw, lub nawet zawieszenia pracy pro-
ADDRESS. W bajcie DEVICE ADD- danych i cyfry kontrolnej, pozwa- gramatora. W celu lepszej kontroli
RESS pozostawiono bit sterujący lającej stwierdziĘ czy transmisja poprawności transmisji, urządze-
trybem pracy i bity adresu ukÅ‚adu. przebiega bez zakÅ‚ÛceÒ. PoniÅ‚ej nie nadawcze oblicza sumÍ kon-
UkÅ‚ad programatora skÅ‚ada siÍ podano zestawienie rozkazÛw i ich trolnÄ… wszystkich transmitowa-
z maÅ‚ego sterownika wspÛÅ‚pracu- strukturÍ (litery w nawiasach nych bajtÛw i doÅ‚Ä…cza jÄ… na koÒcu
jÄ…cego z komputerem PC poprzez oznaczajÄ… poszczegÛlne paramet- wysyÅ‚anego rozkazu. Odbiornik
łącze szeregowe RS-232. Program ry). z drugiej strony złącza RS prze-
w komputerze i operator decydujÄ… P(abc) - ustawienie paramet- prowadza podobnÄ… operacjÍ. Ob-
o sposobie dziaÅ‚ania programato- rÛw pracy sterownika. Bajt 'a' licza sumÍ kontrolnÄ… odbieranych
ra, a procesor sterownika jest od- okreÅ›la szybkośĘ transmisji (0 - bajtÛw (ale oczywiÅ›cie bez bajtu
powiedzialny za bezpoÅ›redniÄ… ob- 1200 bodÛw, 1 -4800 bodÛw), bajt kontrolnego), a nastÍpnie porÛw-
sÅ‚ugÍ programowanej pamiÍci EEP- 'b' wybiera typ programowanego nuje z bajtem sumy obliczonej
Elektronika Praktyczna 9/98
48
Programator pamięci EEPROM z interfejsem szeregowym I2C
Rys. 2. Schemat elektryczny układu.
przez urzÄ…dzenie nadajÄ…ce. JeÅ‚eli zostaÅ‚a napisana w jÍzyku C (dla nego '26' naleÅ‚y wypisaĘ liczbÍ
sumy są identyczne, mołna mieĘ kompilatora BORLAND) jego wer- '1A' i nacisnąĘ klawisz ENTER.
duÅ‚Ä… dozÍ pewnoÅ›ci, Å‚e do prze- sja robocza. Program w trybie zna- JeÅ‚eli odczyt przebiegÅ‚ bezbÅ‚Ídnie,
syÅ‚anych danych nie zakradÅ‚y siÍ kowym dziaÅ‚a w DOS-ie. Brak mu program zaÅ‚Ä…da podania Å›cieÅ‚ki
Å‚adne bÅ‚Ídy. efektownej szaty graficznej i nie i nazwy pliku, w ktÛrym odczyta-
Do kontroli transmisji przy jest zbyt ìinteligentnyî, czyli nie ne dane zostanÄ… zapisane. Zapisy-
pomocy sumy kontrolnej mołna potrafi przewidzieĘ i zareagowaĘ wane dane mołna obejrzeĘ przy
wykorzystaĘ rÛÅ‚ne sposoby jej na niektÛre pomyÅ‚ki operatora, ale pomocy jakiegoÅ› edytora narzÍ-
obliczania. W programatorze został z jego pomocą mołna w pełnym dziowego, poniewał sam program
wykorzystany algorytm jaki firma zakresie zaprogramowaĘ i odczy- jest pozbawiony mołliwości edy-
DALLAS stosuje podczas trans- taĘ wszystkie trzy typy EEPROM- cyjnych.
misji danych miÍdzy ukÅ‚adami Ûw z interfejsem I2C, a takÅ‚e usta- Klawisz [w] inicjuje procedurÍ
iButton magistralą 1-przewodową. wiĘ parametry pracy sterownika. zapisu danych do EEPROM-u.
Algorytm ten pozwala wychwyciĘ Naciskanie klawisza [c] klawia- SposÛb postÍpowania jest podob-
nawet wielokrotne, zÅ‚oÅ›liwe bÅ‚Ídy tury spowoduje, Å‚e do transmisji ny jak podczas odczytu. Najpierw
transmisji, ktÛre sÄ… niewykrywal- bÍdzie wykorzystywany COM 1 program pyta o Å›cieÅ‚kÍ dostÍpu
ne metodÄ… zwykÅ‚ego sumowania. lub 2 w komputerze. WybÛr za- do pliku (binarnego) zawierajÄ…ce-
Stwierdzenie bÅ‚ÍdÛw transmisji leÅ‚y od tego, ktÛre wyjÅ›cie RS jest go dane do zapisu. W przypadku
moÅ‚e spowodowaĘ jej powtÛrzenie w danej chwili do wykorzystania. odnalezienia takiego pliku naleÅ‚y
lub powiadomienie o tym fakcie Klawisz [b] zmienia szybkośĘ okreÅ›liĘ adresy obszaru pamiÍci
operatora. transmisji miÍdzy komputerem (podajÄ…c adresy pierwszej i ostat-
Jak wczeÅ›niej wspomniano, aby a sterownikiem. Klawisz [e] wy- niej komÛrki pamiÍci), do ktÛrego
pamiÍĘ EEPROM mogÅ‚a byĘ od- biera typ EEPROM-u jaki ma byĘ dane z pliku bÍdÄ… zapisywane. Po
czytana lub zapisana, sterownik programowany. WybÛr kaÅ‚dej zapisie zakoÒczonym sukcesem
programatora musi byĘ nadzoro- z opisanych do tej pory funkcji pojawi siÍ odpowiedni komuni-
wany przez program w kompute- spowoduje jednoczesnÄ… zmianÍ kat. Klawisz [q] sÅ‚uÅ‚y do opusz-
rze PC. w linii statusu na ekranie. czenia programu.
Program ten peÅ‚ni rolÍ inter- NaciÅ›niÍcie klawisza [r] uru- Ze wzglÍdu na swojÄ… prostotÍ
fejsu miÍdzy operatorem i sterow- chamia procedurÍ odczytu danych program nie zostaÅ‚ zabezpieczony
nikiem. Wykorzystuje cztery roz- z EEPROM-u. Na dole ekranu wy- przed wszystkimi pomyłkami ope-
kazy, na ktÛre reaguje sterownik. Å›wietlona zostanie linia z pyta- ratora. Dotyczy to w szczegÛlnoÅ›ci
Program mołna oczywiście stwo- niem o adres pierwszej i ostatniej wyboru COM-u, szybkości trans-
rzyĘ samemu korzystajÄ…c z poda- komÛrki do odczytu. Adresy na- misji i okreÅ›lenia zakresu progra-
nego wczeÅ›niej opisu struktury leÅ‚y podaĘ w kodzie heksadecy- mowania pamiÍci. JeÅ‚eli uÅ‚ytkow-
rozkazÛw. Na potrzeby prototypu malnym, np. dla adresu dziesiÍt- nik ustawi szybkośĘ transmisji na
Elektronika Praktyczna 9/98
49
Programator pamięci EEPROM z interfejsem szeregowym I2C
czego zmieniĘ w funk-
WYKAZ ELEMENTÓW
cjonowaniu komputera,
Rezystory
na ktÛrym jest urucha-
R1, R2: 3k&!
miany. Jednak musimy
R3, R4: 470&!
siÍ zastrzec, Å‚e kaÅ‚dy
Kondensatory
ułytkownik programu
Rys. 3. Sposób połączenia programatora
czyni to na wÅ‚asnÄ… od- C1: 47µF/10V
z komputerem PC.
powiedzialnośĘ. C2, C7: 100nF
4800 baudÛw, a nastÍpnie sterow- Ze wzglÍdu na maÅ‚e wymiary
C3, C4, C5, C6: 47µF/16V
nik zostanie wyłączony i ponow- i przeznaczenie układu sterowni-
C8, C9: 27pF
nie włączony, to program w kom- ka został on zaprojektowany
C10: 2,2µF
puterze PC nie bÍdzie mÛgÅ‚ ìdo- z myÅ›lÄ… o stosowaniu go bez obu-
Półprzewodniki
gadaĘ siÍî ze sterownikiem, po- dowy. Podstawka dla programo-
D2, D1: LED
niewaÅ‚ bÍdÄ… pracowaÅ‚y z innÄ… wanych EEPROM-Ûw, najlepiej
U1: 89C2051 (zaprogramowany)
szybkością transmisji. Podobnie precyzyjna, zapewniająca pewny
U2: 78L05
jest z ustawieniem adresÛw komÛ- kontakt nawet po wielokrotnym
U4: MAX232
rek do odczytu lub zapisu. Pro- wyjmowaniu i wkładaniu ukła-
Różne
gram podpowiada wartoÅ›ci mak- dÛw, jest montowana bezpoÅ›red-
PK1: OMRON 5V
symalne, jeÅ›li jednak do pamiÍci nio na pÅ‚ytce drukowanej. Podob-
P1: złącze DB9  żeńskie do druku
o pojemnoÅ›ci np. 256 bajtÛw uÅ‚yt- nie jest montowana dioda LED D2
X1: 11,059MHz
kownik bÍdzie chciaÅ‚ wpisaĘ 300 sygnalizujÄ…ca wÅ‚Ä…czenie napiÍcia
podstawka precyzyjna DIP8
to w czasie procedury zapisu pro- zasilajÄ…cego i D1, ktÛrej Å›wiecenie
dyskietka z programem obsługi
gram zasygnalizuje bÅ‚Ä…d i zakoÒ- informuje, Å‚e w tym czasie EEP-
programatora
czy działanie. W przypadku wy- ROM nie powinien byĘ wyjmowa-
boru COM-u, to wskazanie portu, ny. Standardowe 9-stykowe gniaz-
do ktÛrego podÅ‚Ä…czona jest np. do szufladowe DB9 ìÅ‚eÒskieî, no na wkÅ‚adce wewnÄ…trz numeru,
myszka, spowoduje zmianÍ jego wlutowywane w pÅ‚ytkÍ drukowa- i doÅ‚Ä…czeniu zasilania, trzeba
parametrÛw. Komputer przestanie nÄ… sÅ‚uÅ‚y do doÅ‚Ä…czenia kabla RS. sprawdziĘ czy na wyjÅ›ciu stabi-
widzieĘ myszkÍ i przywrÛcenie Na rys. 3 pokazano poÅ‚Ä…czenia lizatora U2 napiÍcie ma wartośĘ
poprzedniego stanu wiÄ…Å‚e siÍ przewodu z wtykami od strony +5V. NastÍpnie naleÅ‚y poÅ‚Ä…czyĘ
z ponownym uruchomieniem ste- sterownika i komputera. Wałne, sterownik z komputerem przy po-
rownika myszy lub zresetowaniem aby wtyk od strony komputera mocy kabla RS-a. Cały układ
komputera. zwierał ze sobą wyprowadzenia działa sprawnie jełeli po zmianie
W przypadku korzystania z do- 4-6 i 7-8. Wynika to ze specyfiki parametru np. szybkości transmis-
Å‚Ä…czonego do kitu programu, uÅ‚yt- pracy portÛw szeregowych ji lub wyborze innego typu EEP-
kownik moÅ‚e zmieniĘ jego wersjÍ w komputerze. ByÅ‚y one projek- ROM-a, na ekranie komputera
ürÛdÅ‚owÄ… dostosowujÄ…c jÄ… do towane gÅ‚Ûwnie z myÅ›lÄ… o wspÛÅ‚- pojawi siÍ komunikat o sukcesie
swoich potrzeb, a nastÍpnie skom- pracy z peryferiami typu modem, przeprowadzonej operacji. PobÛr
pilowaĘ do postaci pliku wyko- ktÛre przez ustawienie odpowied- prÄ…du przez sterownik zaleÅ‚y od
nywalnego .exe lub .com. W przy- nich poziomÛw logicznych na programowanego EEPROM-a
padku korzystania z innego kom- okreÅ›lonych wyprowadzeniach i wielkoÅ›ci napiÍcia niestabilizo-
pilatora nił BORLAND mołe po- gniazda informowały komputer wanego podanego na wejście JP1.
jawiĘ siÍ koniecznośĘ drobnych o swojej obecnoÅ›ci i gotowoÅ›ci do Zasilacz powinien jednak mieĘ
zmian w skÅ‚adni niektÛrych linii. pracy. wydajnośĘ minimum 100mA przy
OprÛcz opisywanych niedogod- Po zmontowaniu ukÅ‚adu na napiÍciu 8..12V.
noÅ›ci, program nie powinien ni- pÅ‚ytce, ktÛrej widok przedstawio- Ryszard Szymaniak, AVT
Rys. 4. Rozmieszczenie elementów na
płytce drukowanej.
Elektronika Praktyczna 9/98
50


Wyszukiwarka

Podobne podstrony:
Programator szeregowych pamieci EEPROM I2C sterowny z pakietu BASCOM
Program testujący dla wyświetlaczy VFD firmy Noritake z interfejsem szeregowym
Interfejs szeregowy dla programowalnej aparatury pomiarowej
programator pamięci I2C
Pamięci EEPROM w systemach mikroprocesorowych
Różnice w funkcjach zapisu danych w wewnętrznej pamięci EEPROM mikrokontrolerów AT89S8252 i T89C51R
Interface szeregowy MODBUS
#6 INTERFEJSY SZEREGOWE
2 Interfejsy szeregowe
wyświetlacz LCD z interfejsem szeregowym
USB Uniwersalny interfejs szeregowy komusb
Programowanie pamięci FLASH ROM Jak uruchomić programator FLASH
Interfejsy szeregowe
AVT5351 Modul interfejsow szeregowych dla Arduino

więcej podobnych podstron