Programator pamięci EEPROM Model M- do Dydaktycznego Systemu Mikroprocesorowego DSM-5 Instrukcja uŝytkowania
Copyright 007 by MicroMade All rights reserved Wszelkie prawa zastrzeŝone MicroMade Gałka i Drożdż sp. j. 6-90 PIŁA, ul. Wieniawskiego 6 Tel./fax: (67) 3.. E-mail: mm@micromade.pl Internet: www.micromade.pl Wszystkie nazwy i znaki towarowe uŝyte w niniejszej publikacji są własnością odpowiednich firm.
M- Programator pamięci EEPROM. Przeznaczenie modelu Model M- jest przystawką do Dydaktycznego Systemu Mikroprocesorowego DSM-5 umoŝliwiającą programowanie szeregowych pamięci EEPROM. Istnieje wiele róŝnych pamięci EEPROM, róŝniących się między sobą interfejsem komunikacyjnym. Wśród nich wyróŝniamy trzy najpopularniejsze: Microwire SPI I²C Wszystkie te interfejsy są obsługiwane przez model M- - jest to więc w pełni funkcjonalny programator pamięci EEPROM. Wykorzystanie tych moŝliwości zaleŝy tylko od napisania odpowiedniego oprogramowania. Uwaga! Model wyposaŝony jest w 3 dodatkowe podstawki, przeznaczone do przechowywania załączonych pamięci EEPROM. Wyjmowanie układów z podstawek powinno być wykonywane za pomocą cienkiego śrubokrętu, aby nie pogiąć nóŝek układów.. Budowa i zasada działania Zaprojektowanie programatora pamięci EEPROM to zupełnie inne zagadnienie niŝ podłączenie jednego, wybranego EEPROMu do mikrokontrolera. Projektując programator często naleŝy pogodzić sprzeczne wymagania. Na przykład, na tym samym pinie jeden EEPROM wymaga dołączenia masy (minus zasilania), podczas, gdy drugi ma w tym samym miejscu transmisję dwukierunkową. Dlatego model M nie jest tylko podłączeniem wejść/wyjść cyfrowych do podstawki. Model M- jest sterowany przez system DSM-5 za pośrednictwem złącza wejść/wyjść cyfrowych. Wyjścia te są dwukierunkowe, ale przestawiane mogą być tylko całymi portami. Programator wymaga natomiast indywidualnej zmiany kierunku poszczególnych pinów. Dlatego wybrano następujące rozwiązanie. Jako port wyjściowy uŝyto port C, poniewaŝ pozwala on na indywidualne sterowanie poszczególnymi pinami. Do sterowania pinów, które dla pewnych pamięci są równieŝ wyjściami, zastosowano tzw. otwarte kolektory. Ustawienie na danym pinie stanu (podawanego faktycznie przez opornik podwieszający) pozwala na jego sterowanie przez programowany EEPROM. W celu odczytu tych pinów dołączono je dodatkowo do portu A, ustawionego jako wejściowy. Konsekwencją sterowania pinu poprzez jeden tranzystor w układzie otwartego kolektora jest zanegowanie stanu z wyjścia portu. Trzeba o tym pamiętać pisząc oprogramowanie. 08/007 MicroMade System DSM-5
M- Programator pamięci EEPROM Dołączenie masy (ujemnego bieguna zasilania układu) jest wykonane w ten sam sposób, poniewaŝ dla róŝnych pamięci EEPROM masa musi być podłączona do róŝnych pinów. Jak z powyŝszego opisu wynika, poszczególne piny pełnią róŝne funkcje, w zaleŝności od typu programowanego układu. W celu ułatwienia pisania oprogramowania, moŝna programator przedstawić w postaci innego schematu blokowego, dla kaŝdego z typów pamięci EEPROM. Programator pamięci microwire PC0 PC6 CS PC7 855 PC PC5=0 PA0 SK DI DO 93C6 PC ORG PC3 Model DSM-5 08/007 MicroMade
M- Programator pamięci EEPROM Programator pamięci SPI PC0 855 PC7=0 PC6 PC PC3 PA CS SCK SI 5C00 SO PC PC WP HOLD PC5 Programator pamięci I²C PC0 855 PA PC3 PC SDA C0A SCL PC PC6 PC7 PC WP A0 A A PC5 08/007 MicroMade System DSM-5 3
M- Programator pamięci EEPROM 3. Oprogramowanie Wraz z modelem M- dostarczane są trzy pamięci EEPROM: 93C6 - Microwire, 8 x 8 bitów (6 x 6 bitów) 5C00 - SPI, 5 x 8 bitów C0A - I²C, 8 x 8 bitów Dostępne są równieŝ trzy przykładowe programy, które potrafią odczytać i zapisać dane do określonego EEPROMu. KaŜdy z tych programów potrafi odczytać 8 pierwszych komórek pamięci EEPROM. Po naciśnięciu klawisza Enter pozwala wybrać adres jednej z nich i wpisać do niej nową wartość. Programy te nie są oczywiście pełnowartościowymi programatorami pamięci EEPROM, ale wykorzystując zawarte w nich procedury odczytu i zapisu, moŝna taki program napisać.. Interfejsy szeregowe Microwire. Interfejs Microwire jest opisany w podręczniku do DSM5. Interfejs stanowią linie. CS - wybór układu SK - zegar transmisji DI - wejście danych DO - wyjście danych EEPROMy Microwire posiadają jedną cechę nie występującą w innych pamięciach. Istnieją pamięci Microwire o organizacji 8 lub 6 bitowej, a niektóre mogą pracować w obu tych trybach. W takim wypadku, do zmiany organizacji pamięci słuŝy linia ORG. Dostarczany z przystawką EEPROM AT93C6 moŝe pracować w obu trybach. Stan 0 na linii ORG powoduje wybór trybu 8-bitowego, a stan trybu 6-bitowego. PoniŜej przedstawiona jest przykładowa sekwencja odczytu: CS SK DI 0 A6 A0 DO 0 D7 D0 Model DSM-5 08/007 MicroMade
SPI M- Programator pamięci EEPROM Interfejs SPI jest bardzo zbliŝony do Microwire. Tu równieŝ występują cztery podstawowe linie interfejsu, w zasadzie o identycznych funkcjach (choć oznaczane innymi skrótami). CS - wybór układu (polaryzacja odwrotna niŝ w Microwire) SCK - zegar transmisji SI - wejście danych SO - wyjście danych W porównaniu do interfejsu Microwire ujednolicono tu długość wszystkich rozkazów i danych - zawsze przesyłana jest wielokrotność 8 bitów. W Microwire długość rozkazu zmienia się wraz z rozmiarem pamięci EEPROM. Stan 0 na linii WP powoduje zabezpieczenie zawartości EEPROMu 5C00 przed modyfikacją. Aby rozkazy zapisu do pamięci działały linia ta musi być w stanie. Linia HOLD pozwala na chwilowe zawieszenie komunikacji z EEPROMem w celu wykonania na szynie SPI innej operacji. W czasie komunikacji z EEPROMem linia ta musi być ustawiona w stan. Przykładowa sekwencja odczytu dla EEPROMu AT5C00 przedstawiona jest na rysunku. CS SCK SI INSTRUKCJA ADRES DANE A8 7 6 0 SO 7 6 0 I²C Interfejs I²C jest juŝ zdecydowanie inny. Z linii pozostawiono tylko dwie: SCL - zegar transmisji SDA - dwukierunkowa linia danych. 08/007 MicroMade System DSM-5 5
M- Programator pamięci EEPROM Początek i koniec transmisji, czyli zbocza linii CS, zostały zastąpione odpowiednią sekwencją zmian na linii SDA w czasie, gdy linia SCL jest w stanie wysokim. SDA SCL START STOP Poza tymi sekwencjami, zmiana na linii danych moŝe następować tylko wtedy, kiedy na linii SCL jest stan niski. Do interfejsu I²C moŝna dołączyć wiele układów, gdyŝ w transmisji jest przesyłany równieŝ adres urządzenia. KaŜde przesłane 8 bitów jest zawsze potwierdzane na dziewiątym bicie przez układ docelowy. Trzy najmłodsze bity adresu EEPROMu C0A są określone przez stany podane na jego linie A,A,A0. Pozwala to na podłączenie do 8 układów C0A do jednej szyny I²C i niezaleŝne komunikowanie się z kaŝdym z nich. W interfejsach MicroWire i SPI takie rozwiązanie wymagałoby wytworzenia i rozprowadzenia niezaleŝnych linii CS dla kaŝdego EEPROMu. Stan na linii WP powoduje zabezpieczenie zawartości EEPROMu przed modyfikacją. Przykład sekwencji odczytu EEPROMu ATC0A przedstawia rysunek. S T A R T ADRES UKŁADU ADRES DANEJ 7 6 0 ADRES UKŁADU DANA 7 6 0 W A A S R N R CK CK D A S T C OA TOP A K R C T K Poszczególne interfejsy zostały przedstawione dość pobieŝnie. Dokładne dane dostarczonych EEPROMów zawarte są w ich kartach katalogowych, umieszczonych w katalogu DSM-5\Modele\M. 6 Model DSM-5 08/007 MicroMade
M- Programator pamięci EEPROM Załączone, przykładowe programy wykorzystują najprostszy sposób obsługi EEPROMów. Odczyt i zapis wykonywane są zawsze po jednym bajcie. Nie jest to metoda zbyt efektywna. EEPROMy często pozwalają na odczyt kolejnych komórek pamięci bez podawania kolejnych adresów (sequential read). Natomiast zapis odbywa się przewaŝnie większymi blokami danych, co znacznie przyspiesza programowanie (czas programowania bajtu i jednego bloku jest przewaŝnie jednakowy). Chcąc jednak wykorzystywać te moŝliwości, trzeba zawsze dokładnie przejrzeć dane katalogowe konkretnego EEPROMu. Zawsze mogą istnieć mniejsze lub większe róŝnice pomiędzy EEPROMami róŝnych firm. 08/007 MicroMade System DSM-5 7
D C B A 3 5 PA7 PA5 PA3 PA PC7 PC5 PC3 PC PB7 PB5 PB3 PB 6 S 0 8 6 0 8 9 7 5 3 6 5 3 9 7 5 3 PA6 PA PA PA0 PC6 PC PC PC0 PB6 PB PB PB0 D00/6GK C 00u/6 PC6 PA PC7 PC PA0 R k R k R6 k R7 R VC k PC5 R9 T BC87 R5 R0 VC T BC87 R3 R8 3 S uw SPI IC IC SPI uw CS CS A0 SK SO A DI WP A DO GD GD PROG_EE VC VC VC VC 8 WP HD NC 7 SC SC OR 6 SD SI GD 5 C 00n T BC87 VC T3 BC857 R3 70 D LED06R R6 R 0k R8 R9 R R k R5 k R7 k PC0 PC PC PA PC3 3 6 S3 DIP8 5 8 7 3 6 S DIP8 5 8 7 3 6 S5 DIP8 5 8 7 Tytuł: DSM-5 Programator pamięci EEPROM Symbol: Model M Nr rys.: REV. DM B Data: Plik: Arkusz: 9-May-007 D:\MM\MM_PROT\DSM\M\DM_B.SCH z 3 5 D C B A