2001.10 Mikrokomputer PECEL z procesorem AT90S8535, Projekty AVT
[ Pobierz całość w formacie PDF ]
Projekty AVT
++
Mikrokomputer
PECEL
z
procesorem
AT90S8535
2 5 5 0 / P
Część 2
Nasz minikomputer jest w zasadzie gotowy.
Do wykonania pozostały już tylko drobiazgi:
banalnie prosty programator, sterowany z pa−
kietu BASCOM AVR, który będzie służył do
wprowadzania napisanego programu do pa−
mięci minikomputera oraz dwa kabelki:
jeden do programatora, a drugi do łączenia
PECEL−a z portem szeregowym komputera.
Zacznijmy od montażu programatorka.
Schemat elektryczny układu programato−
ra AVR został pokazany na
rysunku 4
. Jak
łatwo zauważyć ponieważ cała inteligencja
programatora skupiona została w jego części
software’owej układ został maksymalnie
uproszczony i zawiera tylko aktywny ele−
ment: IC1 − 74HCT244.
Układ jest zmodyfikowaną wersją pro−
gramatora STK200 firmy Kanda, bardzo po−
pularnego wśród elektroników. W Internecie
można znaleźć sporo oprogramowania obsłu−
gującego ten programator, dostępnego jako
shareware. Nic więc dziwnego, że wiedząc
o popularności tej tysiące razy sprawdzonej
konstrukcji, Mark zapewnił jej wsparcie so−
ftware’owe z poziomu pakietów BASCOM
AVR i BASCOM 8051. Widoczny na sche−
macie układ programatora nie jest urządze−
niem związanym na śmierć i życie z naszym
minikomputerem: za jego pomocą możemy
zaprogramować każdy procesor AVR i nie−
które procesory z rodziny ’51 (np.
AT89S8252). Procesory można programo−
wać zarówno w podstawkach wyposażonych
w niezbędny rezonator kwarcowy, jak
i w systemie, za pomocą specjalnego złącza
ISP. Ponieważ nie wszystkie układy bazujące
na procesorach AVR posiadają takie złącza,
pozwoliłem sobie zaprojektować specjalne
konektory umożliwiające programowanie
w systemie bez konieczności dolutowywania
przewodów, ani dołączania ich za pomocą
chwytaków. Rozmieszczenie wyprowadzeń
tych złączy (CON2 na schemacie programa−
tora i CON8 na schemacie minikomputera)
jest zgodne ze standardem zalecanym przez
firmę ATMEL.
Dla szczególnie dociekliwych Czytelni−
ków podaję teraz uproszczony algorytm pro−
gramowania procesorów AVR. Ci spośród
Was, których zagłębianie się w teoretyczne
podstawy działania procesorów zbytnio nie
interesuje, mogą spokojnie pominąć ten frag−
ment artykułu.
Aby zaprogramować pamięci procesora,
programator musi wykonać następujące
czynności:
1.
Podczas włączania zasilania wymusić stan
niski na wejściach RESET! i SCK procesora.
Nie wszystkie programatory (w tym opisy−
wany) są w stanie wykonać tę czynność
i w taki przypadku konieczne jest, po wymu−
szeniu stanu niskiego na wejściu SCK, poda−
nie na wejście RESET! dodatniego impulsu
o czasie trwania dwóch cykli zegarowych.
2.
Po upływie co najmniej 20 ms programa−
tor musi wysłać do procesora instrukcję ze−
zwolenia na programowanie. Składnia tej i in−
nych instrukcji podana jest w tabeli poniżej.
Rys. 4
18
Elektronika dla Wszystkich
Projekty AVT
Komentarz:
a
− wyższe bity adresu
b
− niższe bity adresu
H=0 − niższy bajt, H=1 − wyższy bajt
o
− odczyt danych
i
− zapis danych
x − bez znaczenia
A
− bit zabezpieczający 1
B
− bit zabezpieczający 2
sób obudowania programatora daje nam dużą
wygodę w posługiwaniu się urządzeniem,
które z pewnością będzie dość często podłą−
czane i odłączane do komputera, na zmianę
z kablem drukarkowym.
Płytkę montujemy dość nietypowo, ponie−
waż ze względu na drastyczne ograniczenie
jej wymiarów musimy montować elementy
po obydwu jej stronach. Montaż rozpoczyna−
kach i w naszym kablu cztery przewody po−
zostaną niewykorzystane.
Na zakończenie umieszczamy płytkę pro−
gramatora wraz z dołączonym do niej kablem
w przeznaczonej dla niej obudowie od wtyku
DB−25 i skręcamy całość śrubkami.
Uwieńczeniem naszej pracy będzie teraz
połączenie programatora z minikomputerem
i komputerem PC, na którym został zainstalo−
wany pakiet BASCOM AVR. Pamiętajcie, że
połączenia te musimy zawsze wykonywać
przy wyłączonym zasilaniu obu urządzeń. Na−
tomiast
przypadkowe, odwrotne połączenie
przewodu prowadzącego od programatora
do złącza ISP na płycie minikomputera nie
grozi żadnymi przykrymi konsekwencjami!
Złącze ISP zostało przez ATMEL−a tak
sprytnie zaprojektowane, że po zmianie kie−
runku jego włączenia nie może dojść do
uszkodzenia ani procesora, ani programato−
ra i jedynym objawem będzie nieprawidło−
we działanie całości
. W praktyce, odwrotne
połączenie tego kabla będzie sygnalizowane
komunikatem o niemożności zidentyfikowania
dołączonego do programatora procesora.
Chciałbym jeszcze wyjaśnić sprawę wi−
docznego na schemacie złącza CON3, o które−
go roli jak dotąd nie wspominaliśmy. Jest to
złącze nie używane podczas pracy programa−
tora z naszym minikomputerem, ponieważ
programator jest tu zasilany z płyty minikom−
putera za pośrednictwem złącza ISP. Mam
jednak nadzieję, że wykorzystacie zbudowany
programator nie tylko do programowania PE−
CEL−a, ale także podczas budowy innych
układów. Może wtedy okazać się korzystne,
aby testowany układ zasilany był z programa−
tora (w każdym razie ja często stosuję tę me−
todę, wygodną podczas pracy nad kilkoma
prototypami naraz). Do złącza CON3 należy
wtedy doprowadzić napięcie o wartości
+5VDC, którego idealnym źródłem może być
np. game port komputera, a w ostateczności
dowolny inny zasilacz o podanym napięciu
i maksymalnym prądzie dostosowanym do
wymagań uruchamianego układu.
Czy wiecie, moi Drodzy, do jakiego etapu
pracy doszliśmy w tym momencie? Prawdę
mówiąc, zakończyliśmy już budowę minikom−
putera PECEL i potrzebnego do jego progra−
mowania hardware! Pozostał nam jeszcze
wprawdzie jeden kabelek do wykonania, ale
możemy odłożyć tę pracę na później, do czasu
kiedy zajmiemy się komunikacją nawiązywa−
ną przez nasz minikomputer z „dużym“ PC−
tem za pośrednictwem portu RS232. Co zatem
teraz zrobimy? Powinniśmy zająć się teraz opi−
sem metod programistycznych służących oży−
wieniu PECEL−a, ale wiem, na co macie bar−
dziej ochotę! Zapewne chcielibyście wypróbo−
wać programator i minikomputer i byłoby
z mojej strony okrucieństwem, gdybym kazał
Wam na to czekać. A zatem, do dzieła!
Wiecie co? Strasznie mi ten artykuł
zaczyna się „rozłazić“ i mam nadzieję, że
Instrukcja
Bajt 1
Bajt 2 Bajt 3 Bajt 4
Programming Enable 1010 1100 0101 0011 xxxx xxxx xxxx xxxx Zezwolenie na programowanie
Chip Erase 1010 1100 100x xxxx xxxx xxxx xxxx xxxx Kasowanie obu pamięci
Read Program Memory 0010 H000 xxxx xx
aa bbbb bbbb oooo oooo
Odczyt górnej lub dolnej (H)
części danych spod adresu
a:b
Write Program Memory 0100 H000 xxxx xx
aa bbbb bbbb iiii iiii
Zapis górnej lub dolnej (H)
części danych spod adresu
a:b
Read EEPROM Memory 1010 0000 xxxx xxxx x
bbb bbbb
oooo oooo Odczyt z pamięci danych spod adresu
b
Write EEPROM Memory 1100 0000 xxxx xxxx x
bbb bbbb iiii iiii
Zapis do pamięci danych pod adres
b
Write Lock Bits 1010 1100 111x x
AB
x xxxx xxxx xxxx xxxx Zapis bitów zabezpieczających A i B
Read Signature Bits 0011 0000 xxxx xxxx xxxx xx
bb
oooo oooo Odczyt typu układu
o
spod adresu
b
Działanie
3.
Kolejną czynnością będzie sprawdzenie po−
prawności transmisji. Po wysłaniu przez pro−
gramator drugiego bajtu instrukcji Program−
ming Enable, procesor powinien odpowiedzieć
„odesłaniem“ do programatora wartości tego
bajtu. Jeżeli tak się stanie, to należy uznać, że
transmisja jest prawidłowa i przystąpić do wy−
konywania kolejnych instrukcji. Jeżeli jednak
programator nie otrzymał „echa“ od procesora,
to należy powtórzyć próby nawiązania trans−
misji. Brak „echa“ po 32 próbie świadczy
o niemożności zsynchronizowania układów.
4.
Po nawiązaniu transmisji programator powi−
nien wysyłać do procesora kolejne instrukcje,
przewidziane dla aktualnie wykonywanego za−
dania. Możliwe jest zaprogramowanie zarówno
pamięci danych, jak i programu, odczyt ich za−
wartości oraz zabezpieczenie pamięci programu
za pomocą dwóch bitów zabezpieczających.
Po zakończeniu programowania ustawie−
nie stanu wysokiego na wejściu RESET pro−
cesora umożliwia jego poprawną pracę.
Jak widać, algorytm programowania po−
przez złącze SPI jest dość skomplikowany.
Na szczęście, nie musimy go znać na pamięć,
ponieważ jest on automatycznie i bez nasze−
go udział realizowany przez „mądrego“ BA−
SCOM−a.
Na
rysunku 5
została pokazana mozaika
ścieżek płytki obwodu drukowanego, wyko−
nanego na laminacie dwustronnym z metali−
zacją. Płytka programatorka została tak zwy−
miarowana, że po zmontowaniu i przyluto−
waniu do złącza DB25M mieści się „lekko na
wcisk“ w typowej obudowie DB25. Taki spo−
my od połączenia płytki ze złączem DB−25.
Na dłuższej krawędzi płytki programato−
ra, po obydwu jej stronach został umieszczo−
ny szereg punktów lutowniczych, rozmie−
szczonych identycznie do wyprowadzeń złą−
cza DB−25. Płytkę wsuwamy „na wcisk“ po−
między końcówki lutownicze złącza tak, aby
wyprowadzenia konektora DB25 pokryły się
dokładnie z punktami lutowniczymi. Podczas
dopasowywania płytki do złącza właściwie
nie można się pomylić, ponieważ na jednej
stronie płytki mamy 12, a na drugiej 13 punk−
tów lutowniczych. Po dokładnym dopasowa−
niu obu elementów do siebie lutujemy wy−
prowadzenia złącza, używając lutownicy
o cienkim grocie.
Kolejną czynnością będzie wlutowanie
w płytkę kondensatorów. Oba te elementy lu−
tujemy od strony druku, oczywiście w przy−
padku płytki dwustronnej jest to strona
umowna. Dla ułatwienia: w płytkach AVT
maska lutownicza na stronie ścieżek jest za−
wsze zabarwiona na czerwonawo. Kondensa−
tory montujemy na płask, równolegle do po−
wierzchni płytki, a po przylutowaniu obcina−
my jak najkrócej ich końcówki.
Układ IC1 montujemy „po bożemu“ na
stronie elementów płytki drukowanej. Odstęp−
stwem od reguł jest rezygnacja ze stosowania
podstawki, której użycie uniemożliwiłoby
umieszczenie płytki w maleńkiej obudowie.
Montaż elektryczny kończymy na przylu−
towaniu do płytki jedynego rezystora i złącza
CON2. Podwójny szereg kątowych goldpi−
nów lutujemy tak, aby jego wolne końcówki
znalazły się jak najbliżej płaszczyzny po−
wierzchni płytki.
A więc, programator mamy już w zasa−
dzie gotowy! Pozostaje tylko wyposażyć go
w kabel łączący go z programowanym proce−
sorem. Kabel ten wykonujemy z odcinka
dziesięciożyłowego przewodu taśmowego
o długości ok. 50 cm, zaciskając na jego koń−
cach dwa wtyki 10−pinowe. Niestety, nie są
produkowane takie wtyki o sześciu końców−
Rys. 5 Płytka drukowana programatora
Elektronika dla Wszystkich
19
Format instrukcji
Projekty AVT
połapiecie się w tych licznych dygresjach!
Przecież zanim wykonamy pierwsze próby
programowania procesora naszego minikom−
putera musimy coś zrobić z programem,
który jest już umieszczony w jego pamięci.
W kicie AVT−2550 dostarczany jest procesor
z umieszczonym w jego pamięci EEPROM
programem, który dla Was napisałem. Dzia−
łanie tego programu zostanie opisane w dal−
szej części artykułu i nieskromnie mam
nadzieję, że zyska on Wasze uznanie. Pamięć
procesora nie została w jakikolwiek sposób
zabezpieczona przed kopiowaniem, a listing
programu został opublikowany na interneto−
wej stronie Elektroniki dla Wszystkich
(www.edw.com). Program stanowi zatem
Waszą niepodzielną własność, ale co zrobić,
jeżeli posiadamy tylko jeden, dostarczony
w kicie procesor AT90S8535? Jakakolwiek
próba programowania procesora spowoduje
nieodwołalne zniszczenie zapisanego w jego
pamięci „fabrycznego“ programu. Arcydzie−
ło sztuki programowania to chyba nie jest,
ale może warto go zachować na przyszłość?
Na szczęście mamy już gotowy programa−
tor, który bynajmniej nie służy tylko do pro−
gramowania procesora. Ile użytecznych funk−
cji może on jeszcze spełniać, dowiecie się
w najbliższej przyszłości, a na razie, trochę
wbrew logice, zajmijmy się nie programowa−
niem, ale odczytywaniem programu już zapi−
sanego w pamięci EEPROM procesora.
O instalacji i ogólnym konfigurowaniu
pakietu BASCOM AVR nie będę pisał, po−
nieważ praktycznie nie różnią się one od ob−
sługi znanego już Wam pakietu BASCOM
8051. Wspomnijmy tylko o konfigurowaniu
programatora, ponieważ nie mieliśmy z tym
jeszcze do czynienia.
Po uruchomieniu BASCOM−a AVR kli−
kamy na pasek OPTIONS i z rozwiniętego
menu wybieramy opcję PROGRAMMER.
Ukaże się nam wtedy panel pokazany na
ry−
sunku 6
. W okienku PROGRAMMER wy−
bieramy teraz
typ programatora, którym
musi być STK200/STK300 Programmer
.
Następnie zamykamy okienko i naciskamy
klawisz F4, co owocuje pojawieniem się
okienka programatora pokazanego na
rysun−
ku 7
. Na wszelki wypadek naciskamy je−
szcze na przycisk CHIP, a następnie IDENTI−
FY. Po tym zabiegu w małym okienku obok
napisu CHIP powinien pokazać się napis in−
formujący o typie zidentyfikowanego proce−
sora, czyli w naszym przypadku AT90S8535.
Może się jednak zdarzyć, że programator
nie będzie w stanie zidentyfikować typu pro−
cesora i na ekranie ukaże się mało sympa−
tyczny napis widoczny na
rysunku 8
. Jeżeli
jesteśmy całkowicie pewni, że montaż mini−
komputera i programatora przeprowadzili−
śmy poprawnie, to zapewne przyczyną jest
nieprawidłowe podłączenie kabla łączącego
programator z minikomputerem. Po spraw−
dzeniu tego połączenia i ewentualnym od−
wróceniu wtyku o 180 stopni wszystko po−
winno zacząć działać normalnie.
Zajmijmy się teraz zachowaniem dla po−
tomności programu zapisanego w EEPROM−
ie dostarczonego w kicie procesora. Po iden−
tyfikacji typu procesora klikamy na pasek
CHIP, a następnie wybieramy opcję READ
CHIPCODE INTO BUFFER (załaduj kod
zawarty w pamięci procesora do bufora).
W tym momencie rozpocznie się proces od−
czytywania zawartości pamięci EEPROM,
który niestety potrwa chwilę, no powiedzmy
dłuższą chwilę. Tak to
już jest: zawsze „coś
za coś“ i za liczne udo−
godnienia związane
z programowaniem
ISP płacimy zwiększo−
nym czasem trwania
szeregowej transmisji
danych. Ręczę jednak,
że to się Wam opłaci!
Mam nadzieję, że
programator uporał się
już z mozolnym odczy−
tywaniem programu
z pamięci procesora.
A zatem, następną
czynnością będzie za−
pisanie tego programu
na dysku, pod dowolną
nazwą i w dowolnym,
wskazanym katalogu.
W tym celu klikamy
na pasek BUFFER,
wybieramy opcję SA−
VE TO FILE i podaje−
my nazwę pliku,
w którym ma być zapi−
sany program w forma−
cie binarnym (
rysunek
9
). Proponuję wykonać
przynajmniej jedną ko−
pię zapasową tego pli−
ku i zapisać ją w innym
katalogu, niż oryginał.
Nadeszła wreszcie
pora, aby sprawdzić
działanie zbudowanego
układu w jego podsta−
wowej, ale nie jedynej
funkcji, jaką jest wpro−
wadzanie programu do
pamięci EEPROM mi−
nikomputera PECEL.
Ponieważ niewiele je−
szcze wiemy o progra−
mowaniu procesora
AT90S8535, wykona−
my tylko proste testy,
wykorzystujące wiedzę
nabytą podczas kursu
BASCOM College.
No, może pokażę Wam
coś więcej...
Zanim napiszemy nasz pierwszy pro−
gram na minikomputer PECEL, musimy je−
szcze dokończyć konfigurowanie programa−
tora. W jego okienku konfiguracyjnym
zaznaczamy dodatkowo opcje AUTO
FLASH i AUTO VERIFY, tak jak pokazano
na
rysunku 10
.
Zacznijmy od czegoś bardzo prostego,
pamiętając że mamy tylko przetestować pro−
gramator, a na naukę programowania PE−
CEL−a przyjdzie czas trochę później. Napi−
szmy zatem:
Rys. 6
Rys. 7
Rys. 8
20
Elektronika dla Wszystkich
Projekty AVT
'Listing 1
Config Lcd = 16 * 2
$crystal = 8000000
Cls
Lcd "Pierwszy program"
Lowerline
Lcd "komputer PECEL"
Do
Loop
puterze. W tym, między innymi, tkwi siła
programowania ISP połączona z fantastycz−
nymi możliwościami BASCOM−a! Fajne,
prawda?
Najwyższy czas, aby rozpocząć systema−
tyczną naukę programowania minikompute−
ra PECEL. Ale nawet mnie samego korci,
aby awansem pokazać Wam jakiś „fajer−
werk“, jakiś spektakularny przykład możli−
wości naszych nowych urządzeń. Wspo−
mniałem uprzednio, że zbudowany przed
chwilą programator może służyć do wielu
celów, często nie bardzo związanych z sa−
mym procesem programowania. Może pa−
miętacie z kursu BASCOM College lub
z własnych doświadczeń, w jaki sposób za−
pisywaliśmy dane w zewnętrznych pamię−
ciach danych EEPROM? Było z tym trochę
problemów, trzeba było napisać kilkanaście
linijek programu, nie mówiąc o konieczno−
ści dodawania do systemu dodatkowego
układu – zewnętrznej pamięci danych EE−
PROM. No to popatrzcie, jak to wygląda
w naszym minikomputerze wspartym siłą
BASCOM−a!
Pisząc ostatnie zdanie zauważyłem, że na−
robiło się trochę bałaganu w stosowanym
w artykule nazewnictwie i że początkujący
Koledzy mogą mieć z tym trochę kłopotu.
Procesor AT90S8535 posiada aż trzy rodzaje
pamięci i musimy dokładnie uprzytomnić so−
bie, do czego każda z nich służy.
1.
Pamięć
programu EEPROM
służy do za−
pisywania treści programu sterującego pracą
procesora. Jej pojemność wynosi 8kB i może
być programowana wyłącznie za pomocą ze−
wnętrznego programatora. Jakiekolwiek zmia−
ny w jej zawartości bez stosowania programa−
tora są niemożliwe. Pamięć programu może
być przeprogramowywana do 1000 razy.
2.
Pamięć
danych EEPROM
służy do zapi−
sywania tych informacji, które nie mogą być
utracone po wyłączeniu zasilania. Pamięć ta
programowana jest przez odpowiednie pole−
cenia obsługującego procesor programu. Ist−
nieje także możliwość zaprogramowania pa−
mięci danych EE−
PROM za pomocą
zbudowanego przed
chwilą programato−
ra, a także odczyta−
nia jej zawartości.
Pamięć danych EE−
PROM może być
przeprogramowy−
wana do 100 000
razy.
3.
Pamięć
danych
RAM
służy do
chwilowego prze−
chowywania da−
nych, a jej zawartość
jest bezpowrotnie
tracona po wyłącze−
niu zasilania.
Rys. 9
Przed kompilacją
tego programiku mu−
simy jeszcze poin−
struować kompilator,
jakiego typu proceso−
ra będziemy używać.
Otwieramy zatem
okienko OPTIONS,
a następnie COMPI−
LER i CHIP (
rysu−
nek 11
) i zaznacza−
my procesor typu
AT90S8535.
Naciskamy teraz
„magiczny“ klawisz
F7. Dlaczego nada−
łem mu taki przydo−
mek? Ano dlatego,
że po jego naciśnię−
ciu napisany przez
nas program został
nie tylko skompilo−
wany, ale natych−
miast umieszczony
w pamięci proceso−
ra. Procesor został
następnie zreseto−
wany, a efekt dzia−
łania pierwszego
programu na PECEL−a możemy zobaczyć
na jego wyświetlaczu alfanumerycznym.
Nie musieliśmy wyjmować kosztownego
i łatwego do uszkodzenia procesora z pod−
stawki, wkładać go do programatora, a na−
stępnie ponownie umieszczać w minikom−
Rys. 10
Wykaz elementów
Programator ISP
Kondensatory
C1 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..100nF
C2 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..100
µ
F/10V
Rezystory
R1 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..100k
Ω
Półprzewodniki
IIC1 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..74LS244
Pozostałe
Wttyk DB15M + obudowa
Odciinek ok.. 50 cm dziiesiięciiożyłłowego przewo−
du ttaśmowego
2 wttykii zaciiskane 10 piin
golldpiin kąttowy 3x2
Rys. 11
Komplet podzespołów z płytką jest
dostępny w sieci handlowej AVT jako
kit szkolny AVT−2550/P
Elektronika dla Wszystkich
21
Projekty AVT
Do napisanego uprzednio programu dopi−
szmy trzy linijki, tak aby całość wyglądała
tak, jak na listingu 2 (dodatkowe linie zazna−
czono pogrubionym drukiem). Nie będziemy
na razie tłumaczyć sobie znaczenia nowych
poleceń i wspomnę tylko, że dodatkowym za−
daniem programu jest teraz zapisanie w we−
wnętrznej pamięci danych EEPROM pod ad−
resem 1 wartości zmiennej X, czyli 214.
wskazuje, że w obe−
cnej chwili aktywny
jest pierwszy z nich,
oznaczony jako
FLASHROM. Naci−
śnijmy zatem drugi
z przycisków, ten, na
którym widnieje na−
pis EEPROM, słu−
sznie przypuszcza−
jąc, że może on mieć
coś wspólnego z we−
wnętrzną nieulotną
pamięcią danych
EEPROM.
Rzeczywiście,
wydarzyło się coś
nowego: na ekranie
pojawiła się nowa ta−
belka, tylko że w niej
zapisane są same
wartości FF(HEX),
czyli dziesiętnie 255.
Do czasu! Powtórz−
my teraz operację,
którą wykonywali−
śmy podczas kopio−
wania „fabrycznego“
programu PECEL−a,
czyli klikamy na pa−
sek CHIP, a następ−
nie wybieramy opcję
READ CHIPCODE
INTO BUFFER.
Tylko że tym razem do bufora ładowana bę−
dzie nie zwartość pamięci programu, ale inte−
resująca nas pamięć danych EEPROM!
Efekt naszych poczynań jest widoczny na
rysunku 13
. No i co? Nie można zobaczyć
pamięci danych EEPROM? Sprawdźmy je−
szcze: pod adresem 1 widoczna jest tam war−
tość D6h, zapisana w formacie heksadecy−
malnym. Po przeliczeniu na format dziesięt−
ny mamy: D6
(HEX)
= 214
(DEC).
Chciałbym jeszcze na chwilę powrócić do
charakterystyk różnych pamięci, jakimi dys−
ponuje procesor
AT90S8535, serce
komputera PECEL.
Zgodnie z danymi
zawartymi w karcie
katalogowej tego
układu podałem,
że pamięć progra−
mu może być zapi−
sywana do 1000
razy, a pamięć da−
nych EEPROM do
100000 razy. Są to
liczby ogromne
i trudno chyba oba−
wiać się ich prze−
kroczenia. Jednak
w przypadku, kiedy
PECEL byłby uży−
'Listing 2
Config Lcd = 16 * 2
$crystal = 8000000
Diim X As Byte
Cls
Lcd "Pierwszy program"
Lowerline
Lcd "komputer PECEL"
X = 214
Wriiteeeprom X , 1
Do
Loop
Rys. 12
Rys. 13
Ponownie naciskamy magiczny klawisz
i... właściwie nic nowego się nie stało. Napis
został wyświetlony, ale czy wartość zmiennej
rzeczywiście znalazła się w pamięci? No, to
popatrzcie teraz, jak wygodne narzędzia do−
staliście do ręki i jak w przyszłości ułatwią
nam one testowanie napisanych programów.
Rzeczywiście, kontrolowanie, czy dane są za−
pisywane i czy lokowane są pod takim adre−
sem, pod jakim byśmy chcieli, nie jest sprawą
prostą. Podczas posługiwania się „normal−
nym“ oprogramowaniem znalezienie ewentu−
alnych błędów może „trochę“ potrwać i ko−
sztować „trochę“ nerwów. Przecież pamięci
danych EEPROM nie można zobaczyć! Nie
można? W BASCOM−ie wszystko można!
Zmieńmy teraz trochę konfigurację BA−
SCOM−a, usuwając zaznaczenie opcji AUTO
FLASH w okienku konfiguracyjnym progra−
matora. Naciśnijmy następnie klawisz F4, co
zaowocuje pojawieniem się na ekranie okien−
ka programatora. No i co w tym nowego? Po−
patrzcie na
rysunek 12
: mniej więcej w jednej
trzeciej wysokości okienka programatora
znajdują się dodatkowe przyciski, a wszystko
wany przez grupę użytkowników, np. na zaję−
ciach w Technikum Elektronicznym, można
obawiać się przekroczenia liczby dozwolonych
programowań pamięci programu. Z doświad−
czenia jednak wiem, że dane podane przez pro−
ducenta zostały obliczone mocno „na wyrost“,
najprawdopodobniej z uwzględnieniem najbar−
dziej krytycznych warunków pracy procesora.
Nie testowałem nigdy, jaką maksymalną
liczbę cykli zapisu może wytrzymać pamięć
programu, ale dokonałem barbarzyńskiego
eksperymentu z pamięcią danych EEPROM.
Napisałem program, którego jedynym zada−
niem było nieustanne zapisywanie całego ob−
szaru tej pamięci coraz to nowymi danymi.
Każda operacja zapisu była zliczana a wynik
przekazywany do komputera. I wicie, co się
zdarzyło? Po 324 567 cyklach zapisu dałem
sobie spokój z dalszym prowadzeniem eks−
perymentu, uznając procesor ATMEL−a za
produkt najwyższej klasy, a dane podawane
przez tę firmę za więcej niż wiarygodne.
Musimy jednak skończyć z tym chaotycz−
nym działaniem i licznymi dygresjami. Rozpo−
czynamy systematyczną naukę programowania
minikomputera PECEL, a tym samym wszyst−
kich procesorów AVR, poszerzając przy okazji
nasze wiadomości o chipach z rodziny ’51.
REKLAMA . REKLAMA . REKLAMA
Zbigniew Raabe
zbigniew.raabe@edw.com.pl
22
Elektronika dla Wszystkich
[ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl charloteee.keep.pl
Projekty AVT
++
Mikrokomputer
PECEL
z
procesorem
AT90S8535
2 5 5 0 / P
Część 2
Nasz minikomputer jest w zasadzie gotowy.
Do wykonania pozostały już tylko drobiazgi:
banalnie prosty programator, sterowany z pa−
kietu BASCOM AVR, który będzie służył do
wprowadzania napisanego programu do pa−
mięci minikomputera oraz dwa kabelki:
jeden do programatora, a drugi do łączenia
PECEL−a z portem szeregowym komputera.
Zacznijmy od montażu programatorka.
Schemat elektryczny układu programato−
ra AVR został pokazany na
rysunku 4
. Jak
łatwo zauważyć ponieważ cała inteligencja
programatora skupiona została w jego części
software’owej układ został maksymalnie
uproszczony i zawiera tylko aktywny ele−
ment: IC1 − 74HCT244.
Układ jest zmodyfikowaną wersją pro−
gramatora STK200 firmy Kanda, bardzo po−
pularnego wśród elektroników. W Internecie
można znaleźć sporo oprogramowania obsłu−
gującego ten programator, dostępnego jako
shareware. Nic więc dziwnego, że wiedząc
o popularności tej tysiące razy sprawdzonej
konstrukcji, Mark zapewnił jej wsparcie so−
ftware’owe z poziomu pakietów BASCOM
AVR i BASCOM 8051. Widoczny na sche−
macie układ programatora nie jest urządze−
niem związanym na śmierć i życie z naszym
minikomputerem: za jego pomocą możemy
zaprogramować każdy procesor AVR i nie−
które procesory z rodziny ’51 (np.
AT89S8252). Procesory można programo−
wać zarówno w podstawkach wyposażonych
w niezbędny rezonator kwarcowy, jak
i w systemie, za pomocą specjalnego złącza
ISP. Ponieważ nie wszystkie układy bazujące
na procesorach AVR posiadają takie złącza,
pozwoliłem sobie zaprojektować specjalne
konektory umożliwiające programowanie
w systemie bez konieczności dolutowywania
przewodów, ani dołączania ich za pomocą
chwytaków. Rozmieszczenie wyprowadzeń
tych złączy (CON2 na schemacie programa−
tora i CON8 na schemacie minikomputera)
jest zgodne ze standardem zalecanym przez
firmę ATMEL.
Dla szczególnie dociekliwych Czytelni−
ków podaję teraz uproszczony algorytm pro−
gramowania procesorów AVR. Ci spośród
Was, których zagłębianie się w teoretyczne
podstawy działania procesorów zbytnio nie
interesuje, mogą spokojnie pominąć ten frag−
ment artykułu.
Aby zaprogramować pamięci procesora,
programator musi wykonać następujące
czynności:
1.
Podczas włączania zasilania wymusić stan
niski na wejściach RESET! i SCK procesora.
Nie wszystkie programatory (w tym opisy−
wany) są w stanie wykonać tę czynność
i w taki przypadku konieczne jest, po wymu−
szeniu stanu niskiego na wejściu SCK, poda−
nie na wejście RESET! dodatniego impulsu
o czasie trwania dwóch cykli zegarowych.
2.
Po upływie co najmniej 20 ms programa−
tor musi wysłać do procesora instrukcję ze−
zwolenia na programowanie. Składnia tej i in−
nych instrukcji podana jest w tabeli poniżej.
Rys. 4
18
Elektronika dla Wszystkich
Projekty AVT
Komentarz:
a
− wyższe bity adresu
b
− niższe bity adresu
H=0 − niższy bajt, H=1 − wyższy bajt
o
− odczyt danych
i
− zapis danych
x − bez znaczenia
A
− bit zabezpieczający 1
B
− bit zabezpieczający 2
sób obudowania programatora daje nam dużą
wygodę w posługiwaniu się urządzeniem,
które z pewnością będzie dość często podłą−
czane i odłączane do komputera, na zmianę
z kablem drukarkowym.
Płytkę montujemy dość nietypowo, ponie−
waż ze względu na drastyczne ograniczenie
jej wymiarów musimy montować elementy
po obydwu jej stronach. Montaż rozpoczyna−
kach i w naszym kablu cztery przewody po−
zostaną niewykorzystane.
Na zakończenie umieszczamy płytkę pro−
gramatora wraz z dołączonym do niej kablem
w przeznaczonej dla niej obudowie od wtyku
DB−25 i skręcamy całość śrubkami.
Uwieńczeniem naszej pracy będzie teraz
połączenie programatora z minikomputerem
i komputerem PC, na którym został zainstalo−
wany pakiet BASCOM AVR. Pamiętajcie, że
połączenia te musimy zawsze wykonywać
przy wyłączonym zasilaniu obu urządzeń. Na−
tomiast
przypadkowe, odwrotne połączenie
przewodu prowadzącego od programatora
do złącza ISP na płycie minikomputera nie
grozi żadnymi przykrymi konsekwencjami!
Złącze ISP zostało przez ATMEL−a tak
sprytnie zaprojektowane, że po zmianie kie−
runku jego włączenia nie może dojść do
uszkodzenia ani procesora, ani programato−
ra i jedynym objawem będzie nieprawidło−
we działanie całości
. W praktyce, odwrotne
połączenie tego kabla będzie sygnalizowane
komunikatem o niemożności zidentyfikowania
dołączonego do programatora procesora.
Chciałbym jeszcze wyjaśnić sprawę wi−
docznego na schemacie złącza CON3, o które−
go roli jak dotąd nie wspominaliśmy. Jest to
złącze nie używane podczas pracy programa−
tora z naszym minikomputerem, ponieważ
programator jest tu zasilany z płyty minikom−
putera za pośrednictwem złącza ISP. Mam
jednak nadzieję, że wykorzystacie zbudowany
programator nie tylko do programowania PE−
CEL−a, ale także podczas budowy innych
układów. Może wtedy okazać się korzystne,
aby testowany układ zasilany był z programa−
tora (w każdym razie ja często stosuję tę me−
todę, wygodną podczas pracy nad kilkoma
prototypami naraz). Do złącza CON3 należy
wtedy doprowadzić napięcie o wartości
+5VDC, którego idealnym źródłem może być
np. game port komputera, a w ostateczności
dowolny inny zasilacz o podanym napięciu
i maksymalnym prądzie dostosowanym do
wymagań uruchamianego układu.
Czy wiecie, moi Drodzy, do jakiego etapu
pracy doszliśmy w tym momencie? Prawdę
mówiąc, zakończyliśmy już budowę minikom−
putera PECEL i potrzebnego do jego progra−
mowania hardware! Pozostał nam jeszcze
wprawdzie jeden kabelek do wykonania, ale
możemy odłożyć tę pracę na później, do czasu
kiedy zajmiemy się komunikacją nawiązywa−
ną przez nasz minikomputer z „dużym“ PC−
tem za pośrednictwem portu RS232. Co zatem
teraz zrobimy? Powinniśmy zająć się teraz opi−
sem metod programistycznych służących oży−
wieniu PECEL−a, ale wiem, na co macie bar−
dziej ochotę! Zapewne chcielibyście wypróbo−
wać programator i minikomputer i byłoby
z mojej strony okrucieństwem, gdybym kazał
Wam na to czekać. A zatem, do dzieła!
Wiecie co? Strasznie mi ten artykuł
zaczyna się „rozłazić“ i mam nadzieję, że
Instrukcja
Bajt 1
Bajt 2 Bajt 3 Bajt 4
Programming Enable 1010 1100 0101 0011 xxxx xxxx xxxx xxxx Zezwolenie na programowanie
Chip Erase 1010 1100 100x xxxx xxxx xxxx xxxx xxxx Kasowanie obu pamięci
Read Program Memory 0010 H000 xxxx xx
aa bbbb bbbb oooo oooo
Odczyt górnej lub dolnej (H)
części danych spod adresu
a:b
Write Program Memory 0100 H000 xxxx xx
aa bbbb bbbb iiii iiii
Zapis górnej lub dolnej (H)
części danych spod adresu
a:b
Read EEPROM Memory 1010 0000 xxxx xxxx x
bbb bbbb
oooo oooo Odczyt z pamięci danych spod adresu
b
Write EEPROM Memory 1100 0000 xxxx xxxx x
bbb bbbb iiii iiii
Zapis do pamięci danych pod adres
b
Write Lock Bits 1010 1100 111x x
AB
x xxxx xxxx xxxx xxxx Zapis bitów zabezpieczających A i B
Read Signature Bits 0011 0000 xxxx xxxx xxxx xx
bb
oooo oooo Odczyt typu układu
o
spod adresu
b
Działanie
3.
Kolejną czynnością będzie sprawdzenie po−
prawności transmisji. Po wysłaniu przez pro−
gramator drugiego bajtu instrukcji Program−
ming Enable, procesor powinien odpowiedzieć
„odesłaniem“ do programatora wartości tego
bajtu. Jeżeli tak się stanie, to należy uznać, że
transmisja jest prawidłowa i przystąpić do wy−
konywania kolejnych instrukcji. Jeżeli jednak
programator nie otrzymał „echa“ od procesora,
to należy powtórzyć próby nawiązania trans−
misji. Brak „echa“ po 32 próbie świadczy
o niemożności zsynchronizowania układów.
4.
Po nawiązaniu transmisji programator powi−
nien wysyłać do procesora kolejne instrukcje,
przewidziane dla aktualnie wykonywanego za−
dania. Możliwe jest zaprogramowanie zarówno
pamięci danych, jak i programu, odczyt ich za−
wartości oraz zabezpieczenie pamięci programu
za pomocą dwóch bitów zabezpieczających.
Po zakończeniu programowania ustawie−
nie stanu wysokiego na wejściu RESET pro−
cesora umożliwia jego poprawną pracę.
Jak widać, algorytm programowania po−
przez złącze SPI jest dość skomplikowany.
Na szczęście, nie musimy go znać na pamięć,
ponieważ jest on automatycznie i bez nasze−
go udział realizowany przez „mądrego“ BA−
SCOM−a.
Na
rysunku 5
została pokazana mozaika
ścieżek płytki obwodu drukowanego, wyko−
nanego na laminacie dwustronnym z metali−
zacją. Płytka programatorka została tak zwy−
miarowana, że po zmontowaniu i przyluto−
waniu do złącza DB25M mieści się „lekko na
wcisk“ w typowej obudowie DB25. Taki spo−
my od połączenia płytki ze złączem DB−25.
Na dłuższej krawędzi płytki programato−
ra, po obydwu jej stronach został umieszczo−
ny szereg punktów lutowniczych, rozmie−
szczonych identycznie do wyprowadzeń złą−
cza DB−25. Płytkę wsuwamy „na wcisk“ po−
między końcówki lutownicze złącza tak, aby
wyprowadzenia konektora DB25 pokryły się
dokładnie z punktami lutowniczymi. Podczas
dopasowywania płytki do złącza właściwie
nie można się pomylić, ponieważ na jednej
stronie płytki mamy 12, a na drugiej 13 punk−
tów lutowniczych. Po dokładnym dopasowa−
niu obu elementów do siebie lutujemy wy−
prowadzenia złącza, używając lutownicy
o cienkim grocie.
Kolejną czynnością będzie wlutowanie
w płytkę kondensatorów. Oba te elementy lu−
tujemy od strony druku, oczywiście w przy−
padku płytki dwustronnej jest to strona
umowna. Dla ułatwienia: w płytkach AVT
maska lutownicza na stronie ścieżek jest za−
wsze zabarwiona na czerwonawo. Kondensa−
tory montujemy na płask, równolegle do po−
wierzchni płytki, a po przylutowaniu obcina−
my jak najkrócej ich końcówki.
Układ IC1 montujemy „po bożemu“ na
stronie elementów płytki drukowanej. Odstęp−
stwem od reguł jest rezygnacja ze stosowania
podstawki, której użycie uniemożliwiłoby
umieszczenie płytki w maleńkiej obudowie.
Montaż elektryczny kończymy na przylu−
towaniu do płytki jedynego rezystora i złącza
CON2. Podwójny szereg kątowych goldpi−
nów lutujemy tak, aby jego wolne końcówki
znalazły się jak najbliżej płaszczyzny po−
wierzchni płytki.
A więc, programator mamy już w zasa−
dzie gotowy! Pozostaje tylko wyposażyć go
w kabel łączący go z programowanym proce−
sorem. Kabel ten wykonujemy z odcinka
dziesięciożyłowego przewodu taśmowego
o długości ok. 50 cm, zaciskając na jego koń−
cach dwa wtyki 10−pinowe. Niestety, nie są
produkowane takie wtyki o sześciu końców−
Rys. 5 Płytka drukowana programatora
Elektronika dla Wszystkich
19
Format instrukcji
Projekty AVT
połapiecie się w tych licznych dygresjach!
Przecież zanim wykonamy pierwsze próby
programowania procesora naszego minikom−
putera musimy coś zrobić z programem,
który jest już umieszczony w jego pamięci.
W kicie AVT−2550 dostarczany jest procesor
z umieszczonym w jego pamięci EEPROM
programem, który dla Was napisałem. Dzia−
łanie tego programu zostanie opisane w dal−
szej części artykułu i nieskromnie mam
nadzieję, że zyska on Wasze uznanie. Pamięć
procesora nie została w jakikolwiek sposób
zabezpieczona przed kopiowaniem, a listing
programu został opublikowany na interneto−
wej stronie Elektroniki dla Wszystkich
(www.edw.com). Program stanowi zatem
Waszą niepodzielną własność, ale co zrobić,
jeżeli posiadamy tylko jeden, dostarczony
w kicie procesor AT90S8535? Jakakolwiek
próba programowania procesora spowoduje
nieodwołalne zniszczenie zapisanego w jego
pamięci „fabrycznego“ programu. Arcydzie−
ło sztuki programowania to chyba nie jest,
ale może warto go zachować na przyszłość?
Na szczęście mamy już gotowy programa−
tor, który bynajmniej nie służy tylko do pro−
gramowania procesora. Ile użytecznych funk−
cji może on jeszcze spełniać, dowiecie się
w najbliższej przyszłości, a na razie, trochę
wbrew logice, zajmijmy się nie programowa−
niem, ale odczytywaniem programu już zapi−
sanego w pamięci EEPROM procesora.
O instalacji i ogólnym konfigurowaniu
pakietu BASCOM AVR nie będę pisał, po−
nieważ praktycznie nie różnią się one od ob−
sługi znanego już Wam pakietu BASCOM
8051. Wspomnijmy tylko o konfigurowaniu
programatora, ponieważ nie mieliśmy z tym
jeszcze do czynienia.
Po uruchomieniu BASCOM−a AVR kli−
kamy na pasek OPTIONS i z rozwiniętego
menu wybieramy opcję PROGRAMMER.
Ukaże się nam wtedy panel pokazany na
ry−
sunku 6
. W okienku PROGRAMMER wy−
bieramy teraz
typ programatora, którym
musi być STK200/STK300 Programmer
.
Następnie zamykamy okienko i naciskamy
klawisz F4, co owocuje pojawieniem się
okienka programatora pokazanego na
rysun−
ku 7
. Na wszelki wypadek naciskamy je−
szcze na przycisk CHIP, a następnie IDENTI−
FY. Po tym zabiegu w małym okienku obok
napisu CHIP powinien pokazać się napis in−
formujący o typie zidentyfikowanego proce−
sora, czyli w naszym przypadku AT90S8535.
Może się jednak zdarzyć, że programator
nie będzie w stanie zidentyfikować typu pro−
cesora i na ekranie ukaże się mało sympa−
tyczny napis widoczny na
rysunku 8
. Jeżeli
jesteśmy całkowicie pewni, że montaż mini−
komputera i programatora przeprowadzili−
śmy poprawnie, to zapewne przyczyną jest
nieprawidłowe podłączenie kabla łączącego
programator z minikomputerem. Po spraw−
dzeniu tego połączenia i ewentualnym od−
wróceniu wtyku o 180 stopni wszystko po−
winno zacząć działać normalnie.
Zajmijmy się teraz zachowaniem dla po−
tomności programu zapisanego w EEPROM−
ie dostarczonego w kicie procesora. Po iden−
tyfikacji typu procesora klikamy na pasek
CHIP, a następnie wybieramy opcję READ
CHIPCODE INTO BUFFER (załaduj kod
zawarty w pamięci procesora do bufora).
W tym momencie rozpocznie się proces od−
czytywania zawartości pamięci EEPROM,
który niestety potrwa chwilę, no powiedzmy
dłuższą chwilę. Tak to
już jest: zawsze „coś
za coś“ i za liczne udo−
godnienia związane
z programowaniem
ISP płacimy zwiększo−
nym czasem trwania
szeregowej transmisji
danych. Ręczę jednak,
że to się Wam opłaci!
Mam nadzieję, że
programator uporał się
już z mozolnym odczy−
tywaniem programu
z pamięci procesora.
A zatem, następną
czynnością będzie za−
pisanie tego programu
na dysku, pod dowolną
nazwą i w dowolnym,
wskazanym katalogu.
W tym celu klikamy
na pasek BUFFER,
wybieramy opcję SA−
VE TO FILE i podaje−
my nazwę pliku,
w którym ma być zapi−
sany program w forma−
cie binarnym (
rysunek
9
). Proponuję wykonać
przynajmniej jedną ko−
pię zapasową tego pli−
ku i zapisać ją w innym
katalogu, niż oryginał.
Nadeszła wreszcie
pora, aby sprawdzić
działanie zbudowanego
układu w jego podsta−
wowej, ale nie jedynej
funkcji, jaką jest wpro−
wadzanie programu do
pamięci EEPROM mi−
nikomputera PECEL.
Ponieważ niewiele je−
szcze wiemy o progra−
mowaniu procesora
AT90S8535, wykona−
my tylko proste testy,
wykorzystujące wiedzę
nabytą podczas kursu
BASCOM College.
No, może pokażę Wam
coś więcej...
Zanim napiszemy nasz pierwszy pro−
gram na minikomputer PECEL, musimy je−
szcze dokończyć konfigurowanie programa−
tora. W jego okienku konfiguracyjnym
zaznaczamy dodatkowo opcje AUTO
FLASH i AUTO VERIFY, tak jak pokazano
na
rysunku 10
.
Zacznijmy od czegoś bardzo prostego,
pamiętając że mamy tylko przetestować pro−
gramator, a na naukę programowania PE−
CEL−a przyjdzie czas trochę później. Napi−
szmy zatem:
Rys. 6
Rys. 7
Rys. 8
20
Elektronika dla Wszystkich
Projekty AVT
'Listing 1
Config Lcd = 16 * 2
$crystal = 8000000
Cls
Lcd "Pierwszy program"
Lowerline
Lcd "komputer PECEL"
Do
Loop
puterze. W tym, między innymi, tkwi siła
programowania ISP połączona z fantastycz−
nymi możliwościami BASCOM−a! Fajne,
prawda?
Najwyższy czas, aby rozpocząć systema−
tyczną naukę programowania minikompute−
ra PECEL. Ale nawet mnie samego korci,
aby awansem pokazać Wam jakiś „fajer−
werk“, jakiś spektakularny przykład możli−
wości naszych nowych urządzeń. Wspo−
mniałem uprzednio, że zbudowany przed
chwilą programator może służyć do wielu
celów, często nie bardzo związanych z sa−
mym procesem programowania. Może pa−
miętacie z kursu BASCOM College lub
z własnych doświadczeń, w jaki sposób za−
pisywaliśmy dane w zewnętrznych pamię−
ciach danych EEPROM? Było z tym trochę
problemów, trzeba było napisać kilkanaście
linijek programu, nie mówiąc o konieczno−
ści dodawania do systemu dodatkowego
układu – zewnętrznej pamięci danych EE−
PROM. No to popatrzcie, jak to wygląda
w naszym minikomputerze wspartym siłą
BASCOM−a!
Pisząc ostatnie zdanie zauważyłem, że na−
robiło się trochę bałaganu w stosowanym
w artykule nazewnictwie i że początkujący
Koledzy mogą mieć z tym trochę kłopotu.
Procesor AT90S8535 posiada aż trzy rodzaje
pamięci i musimy dokładnie uprzytomnić so−
bie, do czego każda z nich służy.
1.
Pamięć
programu EEPROM
służy do za−
pisywania treści programu sterującego pracą
procesora. Jej pojemność wynosi 8kB i może
być programowana wyłącznie za pomocą ze−
wnętrznego programatora. Jakiekolwiek zmia−
ny w jej zawartości bez stosowania programa−
tora są niemożliwe. Pamięć programu może
być przeprogramowywana do 1000 razy.
2.
Pamięć
danych EEPROM
służy do zapi−
sywania tych informacji, które nie mogą być
utracone po wyłączeniu zasilania. Pamięć ta
programowana jest przez odpowiednie pole−
cenia obsługującego procesor programu. Ist−
nieje także możliwość zaprogramowania pa−
mięci danych EE−
PROM za pomocą
zbudowanego przed
chwilą programato−
ra, a także odczyta−
nia jej zawartości.
Pamięć danych EE−
PROM może być
przeprogramowy−
wana do 100 000
razy.
3.
Pamięć
danych
RAM
służy do
chwilowego prze−
chowywania da−
nych, a jej zawartość
jest bezpowrotnie
tracona po wyłącze−
niu zasilania.
Rys. 9
Przed kompilacją
tego programiku mu−
simy jeszcze poin−
struować kompilator,
jakiego typu proceso−
ra będziemy używać.
Otwieramy zatem
okienko OPTIONS,
a następnie COMPI−
LER i CHIP (
rysu−
nek 11
) i zaznacza−
my procesor typu
AT90S8535.
Naciskamy teraz
„magiczny“ klawisz
F7. Dlaczego nada−
łem mu taki przydo−
mek? Ano dlatego,
że po jego naciśnię−
ciu napisany przez
nas program został
nie tylko skompilo−
wany, ale natych−
miast umieszczony
w pamięci proceso−
ra. Procesor został
następnie zreseto−
wany, a efekt dzia−
łania pierwszego
programu na PECEL−a możemy zobaczyć
na jego wyświetlaczu alfanumerycznym.
Nie musieliśmy wyjmować kosztownego
i łatwego do uszkodzenia procesora z pod−
stawki, wkładać go do programatora, a na−
stępnie ponownie umieszczać w minikom−
Rys. 10
Wykaz elementów
Programator ISP
Kondensatory
C1 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..100nF
C2 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..100
µ
F/10V
Rezystory
R1 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..100k
Ω
Półprzewodniki
IIC1 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..74LS244
Pozostałe
Wttyk DB15M + obudowa
Odciinek ok.. 50 cm dziiesiięciiożyłłowego przewo−
du ttaśmowego
2 wttykii zaciiskane 10 piin
golldpiin kąttowy 3x2
Rys. 11
Komplet podzespołów z płytką jest
dostępny w sieci handlowej AVT jako
kit szkolny AVT−2550/P
Elektronika dla Wszystkich
21
Projekty AVT
Do napisanego uprzednio programu dopi−
szmy trzy linijki, tak aby całość wyglądała
tak, jak na listingu 2 (dodatkowe linie zazna−
czono pogrubionym drukiem). Nie będziemy
na razie tłumaczyć sobie znaczenia nowych
poleceń i wspomnę tylko, że dodatkowym za−
daniem programu jest teraz zapisanie w we−
wnętrznej pamięci danych EEPROM pod ad−
resem 1 wartości zmiennej X, czyli 214.
wskazuje, że w obe−
cnej chwili aktywny
jest pierwszy z nich,
oznaczony jako
FLASHROM. Naci−
śnijmy zatem drugi
z przycisków, ten, na
którym widnieje na−
pis EEPROM, słu−
sznie przypuszcza−
jąc, że może on mieć
coś wspólnego z we−
wnętrzną nieulotną
pamięcią danych
EEPROM.
Rzeczywiście,
wydarzyło się coś
nowego: na ekranie
pojawiła się nowa ta−
belka, tylko że w niej
zapisane są same
wartości FF(HEX),
czyli dziesiętnie 255.
Do czasu! Powtórz−
my teraz operację,
którą wykonywali−
śmy podczas kopio−
wania „fabrycznego“
programu PECEL−a,
czyli klikamy na pa−
sek CHIP, a następ−
nie wybieramy opcję
READ CHIPCODE
INTO BUFFER.
Tylko że tym razem do bufora ładowana bę−
dzie nie zwartość pamięci programu, ale inte−
resująca nas pamięć danych EEPROM!
Efekt naszych poczynań jest widoczny na
rysunku 13
. No i co? Nie można zobaczyć
pamięci danych EEPROM? Sprawdźmy je−
szcze: pod adresem 1 widoczna jest tam war−
tość D6h, zapisana w formacie heksadecy−
malnym. Po przeliczeniu na format dziesięt−
ny mamy: D6
(HEX)
= 214
(DEC).
Chciałbym jeszcze na chwilę powrócić do
charakterystyk różnych pamięci, jakimi dys−
ponuje procesor
AT90S8535, serce
komputera PECEL.
Zgodnie z danymi
zawartymi w karcie
katalogowej tego
układu podałem,
że pamięć progra−
mu może być zapi−
sywana do 1000
razy, a pamięć da−
nych EEPROM do
100000 razy. Są to
liczby ogromne
i trudno chyba oba−
wiać się ich prze−
kroczenia. Jednak
w przypadku, kiedy
PECEL byłby uży−
'Listing 2
Config Lcd = 16 * 2
$crystal = 8000000
Diim X As Byte
Cls
Lcd "Pierwszy program"
Lowerline
Lcd "komputer PECEL"
X = 214
Wriiteeeprom X , 1
Do
Loop
Rys. 12
Rys. 13
Ponownie naciskamy magiczny klawisz
i... właściwie nic nowego się nie stało. Napis
został wyświetlony, ale czy wartość zmiennej
rzeczywiście znalazła się w pamięci? No, to
popatrzcie teraz, jak wygodne narzędzia do−
staliście do ręki i jak w przyszłości ułatwią
nam one testowanie napisanych programów.
Rzeczywiście, kontrolowanie, czy dane są za−
pisywane i czy lokowane są pod takim adre−
sem, pod jakim byśmy chcieli, nie jest sprawą
prostą. Podczas posługiwania się „normal−
nym“ oprogramowaniem znalezienie ewentu−
alnych błędów może „trochę“ potrwać i ko−
sztować „trochę“ nerwów. Przecież pamięci
danych EEPROM nie można zobaczyć! Nie
można? W BASCOM−ie wszystko można!
Zmieńmy teraz trochę konfigurację BA−
SCOM−a, usuwając zaznaczenie opcji AUTO
FLASH w okienku konfiguracyjnym progra−
matora. Naciśnijmy następnie klawisz F4, co
zaowocuje pojawieniem się na ekranie okien−
ka programatora. No i co w tym nowego? Po−
patrzcie na
rysunek 12
: mniej więcej w jednej
trzeciej wysokości okienka programatora
znajdują się dodatkowe przyciski, a wszystko
wany przez grupę użytkowników, np. na zaję−
ciach w Technikum Elektronicznym, można
obawiać się przekroczenia liczby dozwolonych
programowań pamięci programu. Z doświad−
czenia jednak wiem, że dane podane przez pro−
ducenta zostały obliczone mocno „na wyrost“,
najprawdopodobniej z uwzględnieniem najbar−
dziej krytycznych warunków pracy procesora.
Nie testowałem nigdy, jaką maksymalną
liczbę cykli zapisu może wytrzymać pamięć
programu, ale dokonałem barbarzyńskiego
eksperymentu z pamięcią danych EEPROM.
Napisałem program, którego jedynym zada−
niem było nieustanne zapisywanie całego ob−
szaru tej pamięci coraz to nowymi danymi.
Każda operacja zapisu była zliczana a wynik
przekazywany do komputera. I wicie, co się
zdarzyło? Po 324 567 cyklach zapisu dałem
sobie spokój z dalszym prowadzeniem eks−
perymentu, uznając procesor ATMEL−a za
produkt najwyższej klasy, a dane podawane
przez tę firmę za więcej niż wiarygodne.
Musimy jednak skończyć z tym chaotycz−
nym działaniem i licznymi dygresjami. Rozpo−
czynamy systematyczną naukę programowania
minikomputera PECEL, a tym samym wszyst−
kich procesorów AVR, poszerzając przy okazji
nasze wiadomości o chipach z rodziny ’51.
REKLAMA . REKLAMA . REKLAMA
Zbigniew Raabe
zbigniew.raabe@edw.com.pl
22
Elektronika dla Wszystkich
[ Pobierz całość w formacie PDF ]