Professional Documents
Culture Documents
Pecel
Big Bang?
Projekty AVT
a moe
Od redakcji:
Tego artykuu nie wolno przeoczy.
To absolutnie najwiksze wydarzenie
na amach EdW w 2001 roku. W roku
2000 uczylimy si BASCOMa,
a w tym roku naturaln tego konse
kwencj jest opracowanie mikrokom
putera, stanowicego samodzielne urz
dzenie wyposaone we wszystkie ele
menty bdce skadnikami "duych"
komputerw. Posiada on monitor, kla
wiatur, wszystkie stosowane w mini
komputerach rodzaje pamici, kilka po
rtw do komunikowania si z otocze
niem (I2C, 1WIRE i RS232) oraz to co
chyba najwaniejsze: moliwo rozbu
dowywania systemu tak, jak to ma
miejsce w komputerach klasy PC.
Oto przedstawiamy taki mikrokom
puter. Od dzi, jeli bdziesz potrzebo
wa wyposay konstruowane przez
Ciebie urzdzenie w tak zwan inteli
gencj masz gotowe rozwizanie. Nie
zrobisz tego lepiej i prociej, ni progra
mujc przy pomocy BASCOMa nasz
minikomputer. Jest to minikomputer
osobisty kadego elektronika, dlatego
nazwalimy go Pecel (Personal Compu
ter for Electronicians). Kto zacz te
w redakcji lansowa nazw "Big
Bang", wyraajc z pewn, przyznaj
my, egzaltacj przekonanie, e ten mi
nikomputer otwiera now epok w kon
strukcjach elektronicznych. Jako trzeba
ten komputer nazwa, wic chwilowo
pozostalimy przy nazwie Pecel, ale za
praszamy wszystkich Czytelnikw EdW
do zgaszania wasnych propozycji
w konkursie na najlepsz nazw tego
minikomputera.
2550
cz 1
Chciabym zaproponowa Czytelnikom Elek
troniki dla Wszystkich budow komputera. No
moe troch przesadziem: nie komputera, ale
mikrokomputera, ktry jednak bdzie posiada
wszystkie elementy waciwe dla duych
maszyn, z komputerami klasy PC wcznie.
Budowanie minikomputerw ma ju na a
mach EdW pewne tradycje. Przebojem wrd
kitw AVT by przez wiele lat i jest nim nadal
synny Komputer Edukacyjny, skonstruowa
ny przez Sawka Surowiskiego. Maszyna ta
umoliwia nam pierwszy kontakt z technik
mikroprocesorow i trudno byoby policzy,
ilu z Was zapoznao si dziki temu ukadowi
z programowaniem procesorw w jzyku
asemblera. Komputer AVT2250 jest ukadem
typowo edukacyjnym i eksperymentalnym,
chocia istnieje take moliwo zastosowa
nia go do celw praktycznych. Natomiast
proponowany przeze mnie ukad ma by
przede wszystkim urzdzeniem o rozlicznych
zastosowaniach praktycznych, a jego walory
edukacyjne wynikaj z samych zaoe kon
strukcyjnych, narzucajcych uytkownikowi
konieczno samodzielnego napisania pro
gramu sterujcego mikrokomputerem.
W odrnieniu od poprzednio budowa
nych minikomputerw i pyt testowych (np.
AVT2500) nasz nowy minikomputer jest
urzdzeniem w peni funkcjonalnym, posia
dajcym wyjtkowo zwart budow, a nawet
polecan mu pyt czoow wyposaon
w stosowne napisy. Elementami decydujcy
mi o wymiarach urzdzenia by wywietlacz
alfanumeryczny i klawiatura, tak wic wy
miary minikomputera niewiele wykraczaj
poza obrys wywietlacza.
13
Projekty AVT
procesorze zrealizowa prawdziwe cuda.
Niestety, nie wszyscy jestemy wykwalifiko
wanymi programistami i taka pojemno pa
mici programu to prawdziwy dar niebios
take dla pocztkujcych. Uwalnia to ich bo
wiem od ustawicznych stresw zwizanych
z przekroczeniem rozmiaru programu prze
znaczonego do umieszczenia w procesorze
z 2, czy nawet 4kB EEPROMem.
Wszystkie procesory AVR, w tym oczy
wicie nasz 8583 mog by programowane
w jzyku MCS BASIC, zaimplementowa
nym w pakiecie BASCOM AVR, bracie bli
niaku znanego nam BASCOMa 8051.
Dialekt MCS BASIC stosowany w pakiecie
BASCOM AVR praktycznie nie rni si od
jzyka stosowanego w BASCOMie 8051.
Rnice wynikaj gwnie z odmiennego na
zewnictwa wyprowadze procesora i znacz
nie bogatszego zestawu funkcji zaszytych
w strukturach procesorw AVR.
Doszlimy w tym momencie do jeszcze
jednego powodu, ktry wpyn na decyzj
o wyborze typu procesora zastosowanego
w naszym minikomputerze. Pakiet BASCOM
AVR sta si ostatnio okrtem flagowym
firmy MCS Electronics, co oczywicie nie
oznacza, e zaprzestano prac nad doskonale
niem BASCOMa 8051. Mona powiedzie,
e Mark doprowadzi do perfekcji swoj ide:
Co tu wymyli, aby inni nie musieli my
le?. Opracowane ostatnio najnowsze pole
cenia jzyka MCS BASIC dla procesorw
AVR sprowadzaj wiele trudnych problemw
programistycznych, nad ktrymi ja sam prze
siedziaem kilka nocy, do wydania jednego
14
Projekty AVT
Wam tylko jeden przykad: na jednym z wy
kadw BC opisywalimy metody odczyty
wania numerw seryjnych i zawartoci reje
strw ukadw 1WIRE produkowanych
przez firm DALLAS. Przerobilimy tylko
proste przykady, a ja sam nie wiedziaem,
jak np. odczyta numery wielu ukadw
1WIRE jednoczenie doczonych do tej sa
mej linii. Wiedziaem tylko, e da si to zro
bi, ale e sprawa jest do skomplikowana
i e ju kilku dobrych programistw poama
o sobie na tym zby. A jak ten problem wy
glda w czerwcu 2001, kiedy pisz ten arty
ku? Mark sprowadzi go do kilku prostych
polece, ktre zastosowa potrafi nawet po
cztkujcy programista:
var = 1WIRECOUNT( ) podaj liczb ukadw 1WIRE
doczonych do magistrali
var = 1WSEARCHFIRST( )
podaj numer
seryjny pierwszego ukadu
var = 1WSEARCHNEXT( )
podaj numery
15
Projekty AVT
Wywietlacz alfanumeryczny LCD. Ele
ment ten jest podstawowym ukadem su
cym przekazywaniu informacji opracowanej
przez komputer i przetumaczonej na ludz
ki jzyk cyfr, liter i znakw specjalnych.
W mikrokomputerze mona zastosowa, za
lenie od potrzeb i moliwoci finansowych
wywietlacz 16*1 lub 16*2 znaki, z podwie
tlaniem lub bez.
Klawiatura szesnastoprzyciskowa. Kla
wiatura ta, zbudowana z tanich i atwych do
nabycia przyciskw, po odpowiednim opro
gramowaniu umoliwia wprowadzanie do
komputera nie tylko liczb, ale take wszyst
kich znakw alfanumerycznych. Programo
wa obsuga klawiatury zostanie szczegowo
omwiona w dalszej czci artykuu, ale ju
teraz mog Wam powiedzie, e sprowadza
si ona do jednego polecenia jzyka MCS
BASIC: GETKBD! Tym Czytelnikom,
ktrym nie wystarczy taka prosta klawiatura
i ktrzy chcieliby wprowadza do minikom
putera dane za pomoc typowej konsoli od
PC, mog ju teraz powiedzie, e docze
nie takiej klawiatury do naszego ukadu jest
spraw banalnie prost, a wprowadzanie
z niej danych odbywa si przy pomocy tylko
jednego polecenia programowego.
Magistrala I2C jest jednym z najwa
niejszych elementw naszego mikrokompu
tera, ktry umoliwia praktycznie nieograni
czon rozbudow systemu. Wikszo uka
dw peryferyjnych opracowanych dla mi
krokomputera sterowana jest poprzez magi
stral I2C, a ponadto do dyspozycji bdziemy
mieli take ogromn ilo moduw I2C spe
niajcych najrniejsze funkcje, ktrych
opisy zostay opublikowane w Elektronice
Praktycznej.
Magistrala 1WIRE obsugujca ukady
opracowane przez firm DALLAS, w tym
termometry cyfrowe, przeczniki i oczywi
cie magiczne tabletki z serii iBUTTON.
Modu odbiornika kodu RC5 lub innego
transmitowanego w podczerwieni, z non
o czstotliwoci zblionej do 36kHz. Modu
ten moe okaza si uyteczny nie tylko do
odbierania informacji z pilota od sprztu
RTV, ale i do komunikowania si z innymi
procesorami lub wspomnianym sprztem. Po
opracowaniu przez MCS Electronics polece
nia SENDRC5 generowanie kodu sterowania
na zakresie podczerwieni stao si naprawd
banalnie proste, podobnie jak generacja kodu
DTMF (DTMFOUT), wykorzystywanego
w telefonii.
Bezporednie sterowanie odbiornikami
prdu staego umoliwia umieszczony na
pycie gwnej mikrokomputera ukad typu
ULN2003, zawierajcy w swojej strukturze
siedem driverw mocy, o maksymalnym pr
dzie do 500mA kady. Z wyj tych driverw
moemy bezporednio sterowa silniczkami
elektrycznymi DC, w tym czterofazowymi
silnikami krokowymi, przekanikami, elek
16
Projekty AVT
komputera, sterowany magistral I2C, za po
moc ktrego moemy zasila:
Dwa silniki krokowe dwufazowe,
Dwa silniki krokowe czterofazowe,
Cztery silniki komutatorowe DC z moliwo
ci zmiany kierunku i prdkoci obrotowej,
Osiem silnikw DC bez moliwoci zmia
ny kierunku obrotw lub osiem dowolnych
urzdze zasilanych prdem staym o napi
ciu do 35V i pobieranym prdzie nie wik
szym ni 500mA.
Jak wiadomo, apetyt ronie w miar je
dzenia. Procesor AT90S8535 to potna jed
nostka, o ogromnych moliwociach i obszer
nej pamici programu. Jednak nie zdziwi
bym si, gdyby bardziej ambitnym Konstruk
torom nawet jego moliwoci pewnego dnia
przestay wystarcza i okazaoby si np., e
napisany skomplikowany program wykracza
swoimi rozmiarami ponad 8kB kodu wyniko
wego. Dla tych Konstruktorw przygotowa
em chyba mi niespodziank: co powiecie
na procesor o pamici programu ... 128kB,
szeciu portach wejciowowyjciowych,
4kB pamici EEPROM i 4kB pamici
SRAM? Procesorem tym jest kolejny produkt
firmy ATMEL: AT MEGA103. Jednak umie
szczenie tego procesora w podstawce na py
cie gwnej naszego mikrokomputera jest ab
solutnie niemoliwe, i to z dwch powodw:
posiada on a 64 wyprowadzenia i produko
wany jest wycznie w obudowie przeznaczo
nej do montau SMD. Jednak nie takie trud
noci ju przezwycialimy: zaprojektowa
em dla Was specjaln kart rozszerzajc,
doczan do podstawki procesora na pycie
gwnej mikrokomputera. Na karcie tej umie
szczony zostanie procesor AT MEGA103
i zcza do dwch dodatkowych portw.
Programowanie
minikomputera
Nasz minikomputer bez sterujcego nim
programu moe by co najwyej niezbyt
efektown ozdob na biurko. Program mo
na napisa w dowolnym jzyku posiadaj
cym kompilator umoliwiajcy utworzenie
kodu binarnego przeznaczonego do umie
szczenia w pamici procesora AVR. Szcze
glnie jednak polecam pakiet BASCOM
AVR, ze wzgldu na atwo programowania
i ogromny komfort pracy. Napisany program
musi oczywicie zosta umieszczony w pa
mici procesora i do tego celu potrzebny b
dzie programator obsugujcy transmisj SPI
i umoliwiajcy zaprogramowanie procesora
bez koniecznoci wyjmowania go z pod
stawki. Na szczcie, w przeciwiestwie do
programatorw rwnolegych taki progra
mator jest urzdzeniem wrcz miesznie
prostym i tanim. Do naszego minikomputera
zosta opracowany specjalny programator
(rysunek 2), zrealizowany z wykorzysta
niem zaledwie jednego ukadu scalonego
z rodziny TTLLS, mieszczcy si w typowej
Jak to dziaa?
Podobnie jak pytka testowa uywana pod
czas kursu BACOM College w ogle nie
dziaa i dziaa bdzie dopiero po zaprogra
mowaniu procesora, czy to programem napi
sanym samodzielnie, czy programem fa
brycznym, zaszytym w procesorze dostar
czonym w kicie. Jednak dziaanie tego pro
gramu omwimy pniej, a na razie zajmie
my si opisem hardware pokazanego na
schemacie. A zatem, zmieniamy tytu tego
fragmentu artykuu na:
Z czego to si skada?
Zanim jednak rozpoczniemy t prac, chcia
bym zwrci si do zupenie pocztkujcych
Czytelnikw i wyjani im pewn spraw.
Bardziej dowiadczeni konstruktorzy prosze
ni s o opuszczenie tego fragmentu artykuu.
Chodzi mi o sposb rysowania schematu,
17
Projekty AVT
zcze penice szczeglnie wan funkcj:
umoliwia ono wielokrotne programowanie
procesora bez koniecznoci wyjmowania go
z podstawki. W dalszej czci artykuu do
wiecie si, jak nieprawdopodobny komfort
pracy zapewnia to mae zcze!
8. CON9 i CON10 s wejciami i wyjciami
bufora mocy ULN2803
9. CON11 zcze alternatywnego zasilania
procesora. Warto tu zwrci uwag na niety
powy sposb zasilania procesora, ktry jest
doczony do szyny zasilajcej VCC o napi
ciu +5VDC za porednictwem diody D2.
W zwizku z tym napicie zasilania proceso
ra jest zmniejszone o ok. 0,6V i wynosi tylko
ok. 4,4VDC. Co spowodowao zastosowanie
tak nietypowego rozwizania? Ot, jest to
caa historia. Podczas uruchamiania kilku
ukadw z procesorem AT90S8535 wykorzy
stujcych wbudowany w jego struktur oscy
lator i generator przerwa RTC napotkaem
na nieoczekiwane i dziwaczne trudnoci.
W niektrych ukadach oscylator nie dziaa
w ogle, a w innych pracowa w niekontrolo
wany sposb, wczajc si i wyczajc
w nieoczekiwanych momentach. Ani spraw
dzania czci hardwareowej ukadu ani kodu
napisanego programu nie dawao rezultatu,
podobnie jak wertowanie karty katalogowej
procesora. Na rozwizanie problemu natkn
em si dopiero podczas lektury erraty do
karty katalogowej, gdzie firma ATMEL
umiecia wrcz kuriozalne stwierdzenie:
When using an external 32 kHz crystal
as asynchronous clock source for Timer2, the
timer may count incorrectly at voltages abo
ve 4.0V. Keep the supply voltage below
4.0V when clocking Timer2 from an external
crystal.
No comments! Nie wnikam, dlaczego
budowa generatora kwarcowego 32768Hz
o napiciu zasilania 5V okazaa si zbyt
trudna dla konstruktorw ATMELa. Wane
jest tylko to, e obnienie napicia
o 0,6V spowodowao natychmiastowe usu
nicie problemw ze sprztowym RTC.
W naszym ukadzie dioda D2 jest elementem
opcjonalnym: jeeli nie bdziecie wykorzy
stywa sprztowego zegara czasu rzeczywi
stego, to mona po pro
stu zastpi j zwor.
10. CON12 peni take
niesychanie
wan
funkcj. Umoliwia ono
poczenie naszego mi
nikomputera z portem
szeregowym komputera
PC lub innego urzdze
nia elektronicznego wy
posaonego w sprzto
wy interfejs RS232.
11. CON13 jest zczem
o szczeglnym charakte
rze. Nie byo go na pyt
ce pierwszego prototypu
18
Monta i uruchomienie
Na rysunku 3 zostaa pokazana pytka ob
wodu drukowanego naszego minikomputera.
Ze wzgldu na znaczn komplikacj po
cze pytka zostaa zaprojektowana na lami
nacie dwustronnym z metalizacj.
Monta minikomputera nie powinien
nastrczy nikomu wikszych trudnoci,
pod warunkiem e bdziecie przestrzega
kilku wskazwek, ktrych za chwil Wam
udziel. Przede wszystkim pamitajcie o
Wykaz elementw
Rezystory:
PR1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1k
R1, R2, R3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4,7k
R4, R7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220
R5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3,3k
R6, R8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1k
R9, R10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10k
Kondensatory:
C1, C2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27pF
C3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220F
C4, C5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100nF
C6, C7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100F
C8, C9, C10, C11 . . . . . . . . . . . . . . . . . . . . . . . .4,7F
C12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220nF
Pprzewodniki:
D1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .~~1N4007
D2, D3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1N4148
D4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LED
IC1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .AT90S8535
IC2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ULN2003
IC3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .DS1813
IC4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7805
IC5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .TFMS5360
IC6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LM385 2,5V
IC7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .MAX232
T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .BC548
Pozostae:
CON1, CON2, CON3, CON4, CON9, CON10
8 x goldpin . . . . . . . . . . . . . . . . . . . .CON5 4 x goldpin
CON6, CON11 . . . . . . . . . . . . . . . . . . . . . .2 x goldpin
CON7 . . . . . . . . . . . . . . . . . . . . . . . . . . .ARK2 (3,5mm)
CON8 . . . . . . . . . . . . . . . . . . . . . . . . . . . .3x2 goldpin
CON12, CON13 . . . . . . . . . . . . . . . . . . . . . .3 x goldpin
DP1 . . . . . . . . . .wywietlacz alfanumeryczny LCD 16x2
Listwa goldpinw 16x1
Q1 . . . . . . . . . . . . . . . . . . . .rezonator kwarcowy 8MHz
Q2 . . . . . . . . . . . . . . . . . .rezonator kwarcowy 32768Hz
S1 ... S16 . . . . . . . . . . . . . . . . . . . .microswitch 10 mm
Projekty AVT
mdrej zasadzie Festina lente
i wszystkie czynnoci podczas
montau komputerka wykonujcie
powoli i z rozmysem. Wyluto
wywanie nieprawidowo zamon
towanych elementw z pytki
dwuwarstwowej nie naley do
przyjemnoci!
No tak, postraszyem Was tro
ch, a tak naprawd to wszystkie
te zastrzeenia dotycz tylko
dwch elementw, na ktre musi
cie zwrci szczegln uwag:
klawiatury i szeregu goldpinw,
do ktrych nastpnie bdziecie
musieli przylutowa wywietlacz alfanume
ryczny. Elementy te zostawmy sobie na sam
koniec pracy, a teraz zamontujmy pozostae.
Ten etap montau wykonujemy po Boe
mu, rozpoczynajc od wlutowania w pytk
rezystorw i podstawek pod ukady scalone,
a koczc na kondensatorach elektrolitycz
nych i stabilizatorze napicia. Bez obaw lutu
jemy take te elementy, ktre znajduj si
w obrbie klawiatury: jej przyciski bd
zamontowane po przeciwnej stronie pytki.
Po wlutowaniu tych elementw odwraca
my pytk na drug stron i lutujemy szereg 16
goldpinw od strony (umownej) cieek, czyli
po przeciwnej stronie co pozostae elementy.
Goldpiny lutujemy do szeregu punktw lutow
niczych oznaczonych na pytce jako DP1.
Pora teraz na najwaniejsz czynno, ja
k musimy wykona przed zamontowaniem
wywietlacza: na kilkukrotne sprawdzenie
poprawnoci montau ju wlutowanych
elementw. Pamitajmy, e po zamontowa
niu wywietlacza utracimy dostp do wielu
punktw lutowniczych i dokonanie jakich
kolwiek poprawek bdzie bardzo, bardzo
trudne!
Jeeli stwierdzilimy ponad wszelk wt
pliwo, e monta zosta przeprowadzony
poprawnie, to moemy teraz przylutowa
wywietlacz. Czynno t musimy przepro
wadzi wyjtkowo starannie, montujc wy
wietlacz jak najbliej powierzchni pytki
i idealnie do niej rwnolegle. Aha, przed
wlutowaniem wywietlacza musimy jeszcze
zagi metalowe apki, mocujce obudow
wywietlacza do jego pytki, tak aby cile
Rys. 3
Rys. 4 Pytka drukowana programatora
Projekty AVT
++
Mikrokomputer PECEL
z procesorem
2550/P
AT90S8535
Cz 2
Nasz minikomputer jest w zasadzie gotowy.
Do wykonania pozostay ju tylko drobiazgi:
banalnie prosty programator, sterowany z pa
kietu BASCOM AVR, ktry bdzie suy do
wprowadzania napisanego programu do pa
mici minikomputera oraz dwa kabelki:
jeden do programatora, a drugi do czenia
PECELa z portem szeregowym komputera.
Zacznijmy od montau programatorka.
Schemat elektryczny ukadu programato
ra AVR zosta pokazany na rysunku 4. Jak
atwo zauway poniewa caa inteligencja
programatora skupiona zostaa w jego czci
softwareowej ukad zosta maksymalnie
uproszczony i zawiera tylko aktywny ele
ment: IC1 74HCT244.
Ukad jest zmodyfikowan wersj pro
gramatora STK200 firmy Kanda, bardzo po
pularnego wrd elektronikw. W Internecie
mona znale sporo oprogramowania obsu
gujcego ten programator, dostpnego jako
shareware. Nic wic dziwnego, e wiedzc
o popularnoci tej tysice razy sprawdzonej
konstrukcji, Mark zapewni jej wsparcie so
ftwareowe z poziomu pakietw BASCOM
AVR i BASCOM 8051. Widoczny na sche
macie ukad programatora nie jest urzdze
niem zwizanym na mier i ycie z naszym
minikomputerem: za jego pomoc moemy
zaprogramowa kady procesor AVR i nie
ktre procesory z rodziny 51 (np.
AT89S8252). Procesory mona programo
wa zarwno w podstawkach wyposaonych
w niezbdny rezonator kwarcowy, jak
i w systemie, za pomoc specjalnego zcza
ISP. Poniewa nie wszystkie ukady bazujce
na procesorach AVR posiadaj takie zcza,
pozwoliem sobie zaprojektowa specjalne
18
Projekty AVT
sb obudowania programatora daje nam du
wygod w posugiwaniu si urzdzeniem,
ktre z pewnoci bdzie do czsto pod
czane i odczane do komputera, na zmian
z kablem drukarkowym.
Pytk montujemy do nietypowo, ponie
wa ze wzgldu na drastyczne ograniczenie
jej wymiarw musimy montowa elementy
po obydwu jej stronach. Monta rozpoczyna
Komentarz:
a wysze bity adresu
b nisze bity adresu
H=0 niszy bajt, H=1 wyszy bajt
o odczyt danych
i zapis danych
x bez znaczenia
A bit zabezpieczajcy 1
B bit zabezpieczajcy 2
Programming Enable
Chip Erase
Bajt 1
1010 1100
1010 1100
Format instrukcji
Bajt 2
Bajt 3
0101 0011
xxxx xxxx
100x xxxx
xxxx xxxx
Bajt 4
xxxx xxxx
xxxx xxxx
0010 H000
xxxx xxaa
bbbb bbbb
oooo oooo
0100 H000
xxxx xxaa
bbbb bbbb
iiii iiii
1010 0000
1100 0000
1010 1100
0011 0000
xxxx xxxx
xxxx xxxx
111x xABx
xxxx xxxx
xbbb bbbb
xbbb bbbb
xxxx xxxx
xxxx xxbb
oooo oooo
iiii iiii
xxxx xxxx
oooo oooo
Instrukcja
Dziaanie
Zezwolenie na programowanie
Kasowanie obu pamici
Odczyt grnej lub dolnej (H)
czci danych spod adresu a:b
Zapis grnej lub dolnej (H)
czci danych spod adresu a:b
Odczyt z pamici danych spod adresu b
Zapis do pamici danych pod adres b
Zapis bitw zabezpieczajcych A i B
Odczyt typu ukadu o spod adresu b
19
Projekty AVT
poapiecie si w tych licznych dygresjach!
Przecie zanim wykonamy pierwsze prby
programowania procesora naszego minikom
putera musimy co zrobi z programem,
ktry jest ju umieszczony w jego pamici.
W kicie AVT2550 dostarczany jest procesor
z umieszczonym w jego pamici EEPROM
programem, ktry dla Was napisaem. Dzia
anie tego programu zostanie opisane w dal
szej czci artykuu i nieskromnie mam
nadziej, e zyska on Wasze uznanie. Pami
procesora nie zostaa w jakikolwiek sposb
zabezpieczona przed kopiowaniem, a listing
programu zosta opublikowany na interneto
wej stronie Elektroniki dla Wszystkich
(www.edw.com). Program stanowi zatem
Wasz niepodzieln wasno, ale co zrobi,
jeeli posiadamy tylko jeden, dostarczony
w kicie procesor AT90S8535? Jakakolwiek
prba programowania procesora spowoduje
nieodwoalne zniszczenie zapisanego w jego
pamici fabrycznego programu. Arcydzie
o sztuki programowania to chyba nie jest,
ale moe warto go zachowa na przyszo?
Na szczcie mamy ju gotowy programa
tor, ktry bynajmniej nie suy tylko do pro
gramowania procesora. Ile uytecznych funk
cji moe on jeszcze spenia, dowiecie si
w najbliszej przyszoci, a na razie, troch
wbrew logice, zajmijmy si nie programowa
niem, ale odczytywaniem programu ju zapi
sanego w pamici EEPROM procesora.
O instalacji i oglnym konfigurowaniu
pakietu BASCOM AVR nie bd pisa, po
niewa praktycznie nie rni si one od ob
sugi znanego ju Wam pakietu BASCOM
8051. Wspomnijmy tylko o konfigurowaniu
programatora, poniewa nie mielimy z tym
jeszcze do czynienia.
Po uruchomieniu BASCOMa AVR kli
kamy na pasek OPTIONS i z rozwinitego
menu wybieramy opcj PROGRAMMER.
Ukae si nam wtedy panel pokazany na ry
sunku 6. W okienku PROGRAMMER wy
bieramy teraz typ programatora, ktrym
musi by STK200/STK300 Programmer.
Nastpnie 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 nastpnie IDENTI
FY. Po tym zabiegu w maym okienku obok
napisu CHIP powinien pokaza si napis in
formujcy o typie zidentyfikowanego proce
sora, czyli w naszym przypadku AT90S8535.
Moe si jednak zdarzy, e programator
nie bdzie w stanie zidentyfikowa typu pro
cesora i na ekranie ukae si mao sympa
tyczny napis widoczny na rysunku 8. Jeeli
jestemy cakowicie pewni, e monta mini
komputera i programatora przeprowadzili
my poprawnie, to zapewne przyczyn jest
nieprawidowe podczenie kabla czcego
programator z minikomputerem. Po spraw
dzeniu tego poczenia i ewentualnym od
20
Projekty AVT
'Listing 1
Config Lcd = 16 * 2
$crystal = 8000000
Cls
Lcd "Pierwszy program"
Lowerline
Lcd "komputer PECEL"
Do
Loop
Rys. 9
Rys. 10
Przed kompilacj
tego programiku mu
simy jeszcze poin
struowa kompilator,
jakiego typu proceso
ra bdziemy uywa.
Otwieramy zatem
okienko OPTIONS,
a nastpnie 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 nacini
ciu napisany przez
nas program zosta
nie tylko skompilo
wany, ale natych
miast umieszczony
w pamici proceso
ra. Procesor zosta
nastpnie zreseto
wany, a efekt dzia
ania pierwszego
programu na PECELa moemy zobaczy
na jego wywietlaczu alfanumerycznym.
Nie musielimy wyjmowa kosztownego
i atwego do uszkodzenia procesora z pod
stawki, wkada go do programatora, a na
stpnie ponownie umieszcza w minikom
Rys. 11
21
Projekty AVT
Do napisanego uprzednio programu dopi
szmy trzy linijki, tak aby cao wygldaa
tak, jak na listingu 2 (dodatkowe linie zazna
czono pogrubionym drukiem). Nie bdziemy
na razie tumaczy sobie znaczenia nowych
polece i wspomn tylko, e dodatkowym za
daniem programu jest teraz zapisanie w we
wntrznej pamici danych EEPROM pod ad
resem 1 wartoci zmiennej X, czyli 214.
'Listing 2
Config Lcd = 16 * 2
$crystal = 8000000
Dim X As Byte
Cls
Lcd "Pierwszy program"
Lowerline
Lcd "komputer PECEL"
X = 214
Writeeeprom X , 1
Do
Loop
22
R E K L A M A
wskazuje, e w obe
cnej chwili aktywny
jest pierwszy z nich,
oznaczony
jako
FLASHROM. Naci
nijmy zatem drugi
z przyciskw, ten, na
ktrym widnieje na
pis EEPROM, su
sznie przypuszcza
jc, e moe on mie
co wsplnego z we
wntrzn nieulotn
pamici
danych
EEPROM.
Rzeczywicie, Rys. 12
wydarzyo si co
nowego: na ekranie Rys. 13
pojawia si nowa ta
belka, tylko e w niej
zapisane s same
wartoci FF(HEX),
czyli dziesitnie 255.
Do czasu! Powtrz
my teraz operacj,
ktr wykonywali
my podczas kopio
wania fabrycznego
programu PECELa,
czyli klikamy na pa
sek CHIP, a nastp
nie wybieramy opcj
READ CHIPCODE
INTO
BUFFER.
Tylko e tym razem do bufora adowana b
dzie nie zwarto pamici programu, ale inte
resujca nas pami danych EEPROM!
Efekt naszych poczyna jest widoczny na
rysunku 13. No i co? Nie mona zobaczy
pamici danych EEPROM? Sprawdmy je
szcze: pod adresem 1 widoczna jest tam war
to D6h, zapisana w formacie heksadecy
malnym. Po przeliczeniu na format dziesit
ny mamy: D6(HEX) = 214(DEC).
Chciabym jeszcze na chwil powrci do
charakterystyk rnych pamici, jakimi dys
ponuje
procesor
.
R E K L A M A
AT90S8535, serce
komputera PECEL.
Zgodnie z danymi
zawartymi w karcie
katalogowej tego
ukadu podaem,
e pami progra
mu moe 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 byby uy
Projekty AVT
Chciabym przy okazji rozwia pewne wtpli
woci, ktre jak wiem z listw emailowych nur
tuj od dawna Czytelnikw EdW i EP. Poniewa
na podobne trudnoci mog natrafi take uyt
kownicy minikomputera PECEL, chciabym do
koca wyjani spraw podwietlanych wywie
tlaczy LCD.
W ofercie handlowej AVT znajduj si
obecnie relatywnie tanie wywietlacze 16*2
i 16*1 z podwietlaniem. Takie wywietlacze
znajdowa si bd take w kicie zawieraj
cym czci do budowy naszego minikompu
tera. Problem, na jaki napotkali Czytelnicy
Zbigniew Raabe
zbigniew.raabe@edw.com.pl
M
23
Projekty AVT
++
Mikrokomputer PECEL
z procesorem
AT90S8535
2550/P
Cz 3
Od dnia dzisiejszego zestaw czci do budowy minikomputera PECEL bdzie dostarczany z zaprogramowanym wstpnie proceso
rem. Pierwsza wersja Beta programu realizuje funkcj najdokadniejszego zegara wiata, pracujcego z precyzj jednej sekundy
na pi milionw lat!
Program PECEL Ver. 1.0.0 Beta jest wspln wasnoci Autora i Czytelnikw Elektroniki dla Wszystkich. Jako taki bdzie pod
dawany staym modyfikacjom i ulepszeniom. Wszystko wskazuje te na to, e w najbliszym czasie mog powsta zupenie nowe
wersje tego programu, rnice si znacznie od pierwowzoru i penice zupenie nowe funkcje. Mogoby to spowodowa sytuacj,
w ktrej nabywcy pierwszej partii kitw mogliby mimowolnie zosta skrzywdzeni, posiadajc pierwotn, najmniej doskona we
rsj programu. Aby unikn takiej sytuacji kody rdowe WSZYSTKICH kolejnych wersji programu PECEL bd zamieszczane
na stronie internetowej Elektroniki dla Wszystkich.
Jednoczenie zapraszam wszystkich Czytelnikw EdW do wsppracy w tworzeniu oprogramowania dla PECELa.
18
Projekty AVT
podczas kursu BASCOM College. Jednak do
szedem do wniosku, e tak waciwie to nie
ma wanych i mniej wanych elementw
jzyka programowania: kady fragment jego
skadni moe okaza si w pewnych sytua
cjach najwaniejszy. Dlatego te przyjem
inny porzdek pisania tego artykuu: mam za
miar zredagowa go tak, abycie jak najszyb
ciej mogli zobaczy pierwsze, efektowne re
zultaty Waszej pracy i ju w najbliszych
chwilach oywi minikomputer. Zacznijmy
wic od tych funkcji BASCOMa, ktre s
niezbdne do realizowania komunikacji mini
komputera z otoczeniem. Za to, e szybko zo
baczycie rezultaty Waszej pracy i e bd one
bardziej efektowne, ni si spodziewacie, r
cz gow, na ktrej mi co nieco zaley!
Obsuga klawiatury
szesnastkowej
komputera PECEL
Jak kady szanujcy si komputer take nasz
PECEL wyposaony jest w klawiatur. Nie
jest to moe klawiatura o moliwociach kon
soli PC, ale do naszych celw bdzie zupenie
wystarczajca. Nie zapominajmy, e w razie
absolutnej koniecznoci bdziemy mogli sko
rzysta take z klawiatury PC, o czym jeszcze
bdziemy mwi w dalszej czci artykuu.
Klawiatura PECELa skada si z szesna
stu klawiszy poczonych w matryc czterech
rzdw i czterech kolumn. Matryca zostaa
doczona do portu B procesora, zajmujc
wszystkie jego 8 pinw. W tym miejscu
chciabym wyjani jedn spraw: to e do
czylimy klawiatur do portu B nie oznacza
bynajmniej, e nie bdziemy mogli wykorzy
stywa jego wyprowadze do innych celw.
W momencie, kiedy klawiatura nie jest skano
wana wszystkie piny portu B wisz w powie
19
Projekty AVT
$regfile = "8535def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Po
rtc.5 , Db6 = Portd.7 , Db7 = Porta.7 , E = Po
rtc.3 , Rs = Portc.2
Config Kbd = Portb
Dim Key As Byte
Cls
Lcd "Test klawiatury"
Lowerline
Lcd " szesnastkowej"
Do
Key = 16
Key = Getkbd()
If Key < 16 Then
Cls
Lcd Key
End If
Loop
4
5
6
7
8
9
10
11
12
13
14
15
20
15
14
13
12
Projekty AVT
teorii: praktyka, praktyka i jeszcze raz prak
tyka! Dlatego te nie bdziemy szczegowo
opisywa budowy UART i zadowolimy si
jedynie pokazaniem na rysunku 16 pogldo
wego schematu, przedstawiajcego jego licz
niki i rejestry. Koledzy pragncy pogbi
swoj wiedz o UART znajd wszelkie po
trzebne dane w karcie katalogowej dowolne
go procesora AVR (www.atmel.com), a my
bdziemy traktowa ten ukad o do skom
plikowanej budowie jako ma czarn
skrzynk, ktra po prostu wykonuje wyda
wane w jzyku MCS BASIC polecenia.
Przekazywanie danych za pomoc cza
szeregowego jest w przypadku procesorw
ATMELa szczeglnie atwa, a przy korzy
staniu z pakietw BASCOM wrcz dziecin
nie prosta. Oczywicie, zanim rozpocznie
my transmitowanie danych musimy przygo
towa odpowiednie rodowisko sprztowe,
a nastpnie poinstruowa kompilator o na
szych zamierzeniach. rodowisko sprzto
we ju posiadamy: minikomputer PECEL,
komputer klasy PC oraz przygotowany
przed chwil przewd, z pomoc ktrego
poczymy ze sob obydwie maszyny. A za
tem, bierzmy si za pisanie pierwszego
programu.
Najwaniejsz spraw, jak musimy zaa
twi przed rozpoczciem pracy nad kadym
programem wykorzystujcym transmisj
RS232 jest prawidowe okrelenie szybkoci
przekazywania danych. Zaniedbanie tej
czynnoci bd przeprowadzenie jej w nie
waciwy sposb zawsze prowadzi do total
nej katastrofy czyli niemonoci nawizania
kontaktu pomidzy komputerami. Z listw
email od Czytelnikw wiem, e wanie nie
prawidowe zadeklarowanie szybkoci trans
misji lub nie podanie jej w ogle jest najcz
stsz przyczyn problemw pojawiajcych
si podczas uruchamiania programw wyko
rzystujcych cze RS232.
Szybko transmisji danych okrelana jest
za pomoc dyrektywy:
Rys. 17
Kwarc
Baudrate
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
1000000Hz
4000000Hz
7372800Hz
0.2%
0,2%
7,5%
7,8%
7,8%
7,8%
22,9%
7,8%
22,9%
84,3%
0,2%
0,2%
0,2%
2,1%
0,2%
3,7%
7,5%
7,8%
7,8%
7,8%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
8000000Hz
0,2%
0,2%
0,2%
0,8%
0,2%
2,1%
0,2%
3,7%
7,5%
7,8%
11059200Hz
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
0,0%
: 19200 Baud
: 8000000 Hz
: 0.16%
21
Projekty AVT
Moemy ju zaprogramowa procesor i... za
miast podziwia rezultaty naszej pracy wzi
si za konfigurowanie rodowiska programo
wego odpowiedzialnego za porozumiewanie
si z PECELem.
Bardzo wane jest prawidowe ustawie
nie szybkoci transmisji w urzdzeniu,
z ktrym procesor ma nawiza czno.
Takim urzdzeniem najczciej bdzie moni
tor interfejsu szeregowego, najlepiej ten, ktry
zosta wbudowany w pakiety BASCOM. Po
raz kolejny moemy teraz przekona si, jak
wspaniaym zestawem narzdzi jest nasz BA
SCOM. W pakiecie tym zaszyte s bowiem
wszystkie funkcje pozwalajce nie tylko na
monitorowanie portu RS232, ale i na dwukie
runkowe przekazywani danych pomidzy PC
a innym urzdzeniem wyposaonym w port
komunikacyjny RS232. Monitor konfiguruje
my po otwarciu okienka OPTIONS\COMMU
NICATION, tak jak pokazano na rysunku 18.
Musimy take zawsze pamita, e po ka
dej zmianie szybkoci transmisji w uka
dzie, ktry ma wsppracowa z kompute
rem musimy zmieni take ustawienia mo
nitora obsugujcego t transmisj. Uwaga
ta dotyczy nie tylko monitora zawartego
w pakiecie BASCOM, ale take wszystkich
Rys. 18
Zbigniew Raabe,
zbigniew.raabe@edw.com.pl
Rys. 19
UWAGA!
BARDZO WANE!
Kilka dni temu stwierdzilimy, e
w czasie procesu produkcyjnego
jednej z serii pytek obwodw
drukowanych do minikomputera
PECEL powstaa przerwa w obwo
dzie masy. Na szczcie wada ta
jest bardzo atwa do naprawienia:
wystarczy poczy za pomoc
odcinaka przewodu dwa punkty:
pin 6 zcza CON8 i pin 2 stabiliza
tora napicia IC4. Sposb wykona
nia dodatkowego poczenia zosta
pokazany na rysunku.
22
Projekty AVT
Mikrokomputer PECEL
z procesorem
AT90S8535
2550/P
Cz 4
Oczywicie, program przedstawiony w po
przednim odcinku ma tylko jedno zastosowa
nie: pokazanie e nawizanie cznoci po
midzy dwoma komputerami jest moliwe
i sprawdzenie poprawnoci konfiguracji uy
wanych do transmisji narzdzi. Poza tym nie
suy on do niczego. Aby jednak mc napisa
bardziej rozbudowany program, musimy
wreszcie zapozna si choby z podstawo
wymi poleceniami programowymi jzyka
MCS BASIC sucymi przekazywaniu in
formacji poprzez cze RS232.
Podstawowymi poleceniami jzyka MCS
BASIC stosowanymi podczas wymiany da
nych poprzez interfejs RS232 s:
PRINT [zmienna, warto, zmienna
tekstowa lub tekst]
pozwalajce wysa do portu szeregowego
komputera dowoln warto, zmienn licz
bow lub tekstow, oraz
INPUT [opcjonalny tekst zachty],
[zmienna liczbowa lub tekstowa]
ktre umoliwi rczne przesanie informa
cji poprzez port szeregowy do systemu mikro
procesorowego. Jeeli polecenie INPUT zo
stanie zastosowane cznie z tekstem zachty
podanym w cudzysowie, to tekst ten zostanie
wywietlony na ekranie terminala komputera.
Czy jednak to drugie polecenie naprawd
dziaa? Aby to sprawdzi, napiszmy sobie
prosty programik:
$crystal = 8000000
$baud = 19200
Dim Name$ As String * 10
Do
Print " Jestem PECEL"
Input "Jak masz na imi? " , Name$
Print "Witaj " ; Name$ ; "!"
Print "Wiem e jeste ";
If Right(name$ , 1) = "a" Then
Print "kobiet"
Else
Print "mczyzn"
End If
Loop
22
Projekty AVT
Mam nadziej, e dysponujecie choby
jednym egzemplarzem popularnego termo
metru cyfrowego typu DS1820? Jeeli nie, to
warto zakupi nawet kilka sztuk tych tanich
i niezwykle uytecznych elementw. Przyda
dz si nam wielokrotnie, nie tylko podczas
nauki programowania PECELa. Jeden taki
termometr podczamy do zcza CON6 mi
nikomputera, dokadnie tak, jak pokazano na
rysunku 22. Nastpnie piszemy kolejny pro
gram, kompilujemy go i programujemy nim
procesor. Programu tego nie bd komento
wa, poniewa procedury odczytu danych
z termometrw DS1820 zostay ju opisane
w ramach kursu BASCOM College.
W tym memencie $crystal = 8000000
musz wspomnie $baud = 19200
o jednej, do wsty Config 1wire = Pind.6
Dim Bd(9) As Byte
dliwej sprawie. Mo Dim Tmp As Byte
je, legendarne ju Dim T As Integer
Dim T1 As Integer
roztargnienie dao je Dim Reg_no(8) As Byte
szcze raz o sobie, Declare Sub Read1820
"Nacinij klawisz
tym razem owocujc Input
ENTER", tmp
przeoczeniem pew " Uwaga! Wydanie
nego
elementu, polecenia INPUT
powoduje wstrzymanie
ktrego umieszcze pracy programu do
nie w konstrukcji momentu nacinicia
klawisza ENTER
PECELa byoby jak Do
1wwrite &HCC
najbardziej wskaza
1wwrite &H44
ne. Mam tu na myli
Wait 1
przycisk sucy do
Read1820
Print T
rcznego resetowa
Loop
nia procesora. W Sub Read1820
1wreset
warunkach normal
1wwrite &HCC
nej eksploatacji taki
1wwrite &HBE
Bd(1) = 1wread(9)
element nie byby
1wreset
specjalnie uyteczny,
Tmp = Bd(1) And 1
ale podczas prowa
If Tmp = 1 Then
dzenia eksperymen DecrTBd(1)
= Makeint(bd(1) ,
tw jego zastosowa Bd(2))
T
= T * 50
nie moe znacznie
T = T 25
usprawni
prac.
T1 = Bd(8) Bd(7)
T1 = T1 * 100
Wyczanie i ponow
T1 = T1 / Bd(8)
ne wczanie zasila
T = T + T1
T = T / 10
nia w celu rozpocz
End Sub
cia pracy programu
jest do uciliwe,
a dodanie przycisku RESET, niekoniecznie
umieszczonego na pycie czoowej bdzie
czynnoci bardzo prost. Jako taki element
moemy wykorzysta zwyky microswitch lub
dowolny inny przycisk monostabilny o niewiel
kich wymiarach, doczony do PECELa zgo
dnie ze schematem pokazanym na rysunku 23.
Otwieramy teraz po raz kolejny okienko
terminala RS232 i albo naciskamy dodany do
ukadu przycisk RESET, albo wyczamy
i ponownie wczamy zasilanie PECELa.
Na ekranie monitora ukae si napis zachca
jcy do nacinicia klawisza ENTER, co te
bez obaw moemy natychmiast uczyni.
Zgodnie z przewidywaniami na ekranie
rozpoczo si cykliczne wywietlanie zmie
rzonej przez DS1820 temperatury. Poniewa
w programie zabrako polece przeliczaj
Rys. 22
Rys. 23
23
Projekty AVT
Dane opisujce barbarzyski eksperyment
z przypiekaniem nieszczsnego czujnika lu
townic przeniosem jako plik ASCII do ar
kusza kalkulacyjnego MS EXCEL. Nastp
nie wyniki pomiarw zostay podzielone
przez 10. Wykonanie z tak przetworzonych
danych wykresu sprowadzio si ju tylko do
kilku klikni myszk, a efekt wszystkich
tych operacji nie trwajcych duej ni minu
t zosta pokazany na rysunku 25. Wyglda
ciekawie, prawda? Na wykresie wida nawet
krtki moment wahania, w ktrym chciaem
da ju spokj drczonemu czujnikowi, ale
ostatecznie postanowiem torturowa go
nadal.
Rys. 25
24
Rys. 26
Rys. 27
Rys. 28