21_25.pdf

(995 KB) Pobierz
P
R
O J
E
K JuPIC
T Y
JuPIC
Programator mikrokontrolerów PIC
współpracujący z programem MPLAB
AVT−5100
Konstruktorzy s¹ bez
w¹tpienia ludümi rÛwnie
leniwymi, jak wszyscy inni.
St¹d pomys³ tworzenia dla
nich, a zw³aszcza dla
programistÛw, zintegrowanych
narzÍdzi projektowych.
W†artykule przedstawiamy
projekt programatora
mikrokontrolerÛw PIC, ktÛry
doskonale ìwtapiaî siÍ
w†úrodowisko MPLAB, dziÍki
czemu przygotowanie
oprogramowania
mikrokontrolerÛw moøna
zrealizowaÊ za pomoc¹
jednego tylko programu.
Rekomendacje:
doskona³e
narzÍdzie przystosowane do
bezpoúredniej wspÛ³pracy ze
úrodowiskiem MPLAB. Idealne
rozwi¹zanie dla
projektantÛw†korzystaj¹cych
z†mikrokontrolerÛw PIC firmy
Microchip.
Od kilku lat jesteúmy úwiad-
kami ogromnego postÍpu w†dzie-
dzinie elektroniki cyfrowej i†nie-
zast¹pionych w†niej mikroproce-
sorÛw i†mikrokontrolerÛw. StopieÒ
z³oøonoúci tych uk³adÛw†wzrasta
w†szybkim tempie, powoduj¹c ko-
niecznoúÊ przyswajania coraz to
nowej wiedzy. Najszybszym spo-
sobem na osi¹gniÍcie tego celu
jest wykorzystanie programÛw in-
teraktywnych, poúrednicz¹cych
miÍdzy uøytkownikiem a†urz¹dze-
niem. Kaøda firma chc¹ca wejúÊ
na rynek ze swoimi mikrokontro-
lerami udostÍpnia zazwyczaj spe-
cjalne oprogramowanie, ktÛre
umoøliwia korzystanie z†oferowa-
nych uk³adÛw. Obserwuj¹c rynek
mikrokontrolerÛw jednouk³ado-
wych, moøna zauwaøyÊ, iø coraz
wiÍksza liczba producentÛw udo-
stÍpnia darmowe oprogramowa-
nie, serwis informacyjny oraz do-
kumentacjÍ techniczn¹, chc¹c
przyci¹gn¹Ê do swoich produktÛw
jak najwiÍksz¹ grupÍ uøytkowni-
kÛw. Jedn¹ z†firm, ktÛra wysz³a
naprzeciw tym wymaganiom, jest
firma Microchip produkuj¹ca mik-
rokontrolery rodziny PICmicro.
Przedstawiony w†niniejszym ar-
tykule programator JuPIC powsta³
jako czÍúÊ pracy dyplomowej wy-
konywanej na Politechnice ål¹s-
kiej i†jest wynikiem wielotygo-
dniowej pracy nad protoko³em
komunikacyjnym. Programator jest
przeznaczony do programowania
mikrokontrolerÛw serii ìFî z†pa-
miÍci¹ typu Flash: PIC16F627,
PIC16F628, PIC16F83, PIC16F84,
PIC16F84A, PIC16F870, PIC16F871,
PIC16F872, PIC16F873, PIC16F874,
PIC16F876, PIC16F877, a†takøe
PIC12F675 i†PIC16F629.
WspÛ³pracuje on ze zintegro-
wanym úrodowiskiem uruchomie-
niowym MPLAB IDE firmy Mic-
rochip i obs³uguje protokÛ³ komu-
nikacyjny zgodny z†protoko³em
oryginalnego programatora PICS-
TART Plus (opracowanego przez
firmÍ Microchip). Tym samym
moøliwe jest wykorzystanie potÍø-
nych moøliwoúci jakie daje oprog-
ramowanie MPLAB pracuj¹ce
w†úrodowisku graficznym Win-
dows. Firma Microchip rozpo-
wszechnia ten program jako
free-
ware
i†moøna go pobraÊ ze strony
internetowej
http://www.micro-
Elektronika Praktyczna 3/2003
21
JuPIC
chip.com/1010/pline/tools/picmic-
ro/devenv/mplabi/index.htm.
Naj-
nowsza wersja oprogramowania
nosi oznaczenie 6.10. MPLAB
i†pozwala na zapisywanie, moni-
torowanie i†optymalizacjÍ aplika-
cji PICmicro. Zawiera wbudowany
edytor tekstu, symulator, kompi-
lator, obs³ugÍ projektÛw†oraz pro-
gramator. Program z†wbudowany-
mi wieloma funkcjami pozwala
m.in. na:
- tworzenie i†edycjÍ plikÛw ürÛd-
³owych,
- grupowanie plikÛw w†projekty,
- wyszukiwanie b³ÍdÛw kodu,
- asemblacjÍ, kompilacjÍ i†linko-
wanie kodu ürÛd³owego,
- wyznaczanie zaleønoúci czaso-
wych,
- podgl¹danie zmiennych w†cza-
sie pracy programu,
- symulacjÍ dzia³ania programu,
- komunikacjÍ z†urz¹dzeniem PIC-
START Plus (JuPIC),
- rozwi¹zywanie problemÛw z†wy-
korzystaniem podrÍcznej pomocy,
- debugowanie za pomoc¹ proto-
ko³u ICD.
Programator JuPIC zbudowany
zosta³ w†oparciu o†mikrokontroler
PIC16F628, ktÛry obecnie zdoby-
wa coraz wiÍksz¹ popularnoúÊ ze
wzglÍdu na swoj¹ funkcjonalnoúÊ.
Programator w†po³¹czeniu z†pro-
gramem MPLAB tworzy niezwykle
sprawne i†profesjonalne narzÍdzie
programisty. FunkcjonalnoúÊ tego
zestawu powoduje, øe moøe byÊ
przeznaczony do ma³ych i†úred-
nich zastosowaÒ, a†polecany jest
zarÛwno dla uøytkownikÛw po-
cz¹tkuj¹cych, jak i†zaawansowa-
nych.
Opis uk³adu
Schemat programatora przed-
stawiono na
rys. 1.
Sk³ada siÍ on
ze: stabilizatora +5V, translatora
poziomÛw MAX232, klucza na-
piÍciowego i†mikrokontrolera
PIC16F628, ktÛry jest taktowany
sygna³em zegarowym o czÍstotli-
woúci ustalonej przez rezonator
kwarcowy 11059200Hz.
Praca mikrokontrolera polega
na obs³udze protoko³u komunika-
cyjnego pomiÍdzy programatorem
a†programem MPLAB oraz na wy-
tworzeniu odpowiedniego prze-
biegu programuj¹cego na wyj-
úciach programuj¹cych (sygna³y
DATA, CLOCK, MCLR, LVP). Pro-
tokÛ³ programuj¹cy nie jest udo-
Rys. 1. Schemat elektryczny uk‡adu
22
Elektronika Praktyczna 3/2003
JuPIC
kim gniazdem DB-9 od strony
programatora i†øeÒskim DB-9 lub
DB-25 od strony komputera. W†tab.
1
przedstawiono wykaz sygna³Ûw
uøywanych przez programator oraz
opis wyprowadzeÒ ³¹cz.
Klucze tranzystorowe (T1...T3)
zapewniaj¹ przy³¹czenie jednego
z†trzech poziomÛw napiÍÊ na wej-
úcie MCLR: V
SS
= 0V, V
DD
= 5V
oraz V
PP
= 12 V, zapewniaj¹c†tym
samym wymagane funkcje proto-
ko³u ICSP. Sygna³ steruj¹cy sk³a-
da siÍ z†dwÛch bitÛw, ktÛrych
kombinacje wartoúci oznaczaj¹ od-
powiednie napiÍcia wyjúciowe.
SposÛb kodowania zestawiono
w†tab.
2.
Po podaniu na wyjúcia RA0
i†RA1 stanu ì0î zatkane zostaj¹
wszystkie tranzystory i†na wyjúciu
pojawi siÍ potencja³ V
DD
(R7 pra-
Rys. 3. Rozmieszczenie element w na
cuje jako
pull-up).
Po podaniu na
p‡ytce programatora
rys. 2
przedstawiono sposÛb przy-
wyjúcie RA1 stanu ì1î zostaje
³¹czania uk³adu zewnÍtrznego.
wysterowany tranzystor T3 i†na
wyjúciu otrzymujemy poziom V
SS
,
niezaleønie od stanu na wyjúciu
Funkcje programatora
RA0. Natomiast po podaniu na
Programator posiada szereg
wyjúcie RA1 stanu ì0î, a†na
funkcji i†usprawnieÒ rozszerzaj¹-
wyjúcie RA0 stanu ì1î powodu-
cych jego moøliwoúci:
jemy zatkanie tranzystora T3 i†wy-
- Uk³ad ma przycisk kasowania,
sterowanie tranzystorÛw T1 i†T2,
ktÛrym bez pod³¹czania progra-
co spowoduje wyst¹pienie na wyj-
matora do komputera moøna
úciu napiÍcia programuj¹cego V
PP
.
wyzerowaÊ pamiÍÊ mikrokontro-
lera (takøe
Code Protection).
W†ten sposÛb uzyskujemy moø-
Aby wykasowaÊ pamiÍÊ, naleøy
liwoúÊ podawania wszystkich po-
nacisn¹Ê i†przytrzymaÊ klawisz
trzebnych napiÍÊ na wejúcie
ERASE
przez 2†sekundy - dioda
MCLR mikrokontrolera.
LED zasygnalizuje wyzerowanie
mikrokontrolera.
Programowanie
- Wprowadzono diodÍ sygnaliza-
w†systemie ICSP
cyjn¹ LED, ktÛra sygnalizuje
Programator zosta³ wyposaøony
aktualne stany programatora:
w†dodatkowe z³¹cze s³uøace do
- dwa podwÛjne krÛtkie b³yski
programowania zgodne z†protoko-
diody - za³¹czenie zasilania
³em ICSP. Otrzymano w†ten spo-
i†inicjacja programatora,
sÛb tzw. ìokno na úwiatî, umoø-
- dioda úwieci úwiat³em ci¹g³ym
liwiaj¹c przy³¹czanie do progra-
- programator gotowy do pracy,
matora JuPIC dowolnie wybranego
- dioda pulsuje rÛwnomiernie
zewnÍtrznego systemu mikropro-
szybko - nawi¹zywana jest
cesorowego. Jedynym warunkiem
komunikacja z†programem
tego przy³¹czenia jest zachowanie
MPLAB IDE,
standardu ³¹cza oraz zgodnoúÊ
protoko³Ûw programuj¹cych. Na
DB−9
Męski
3
2
4
5
6
7
8
Sygnał
RX
TX
Data Ready
GND
pull up +5V
CTS
RTS
Rys. 2. Spos b do‡„czenia
mikrokontrolera do z‡„cza ICSP
stÍpniany w†dokumentacji tech-
nicznej firmy Microchip, a†jego
opis wykracza poza ramy niniej-
szego artyku³u, dlatego nie zosta-
nie tu przedstawiony.
Do zasilania programatora za-
lecane jest zastosowanie zasilacza
stabilizowanego 12...14 V†o†wy-
dajnoúci ok. 250 mA. Zasilacz
zbudowany zosta³ w†oparciu o†sta-
bilizator 7805 (US). Szeregowo
w³¹czona dioda DZ zabezpiecza
przed nieprawid³owym pod³¹cze-
niem zasilacza zewnÍtrznego.
Obs³uga programatora JuPIC
przebiega identycznie jak wspo-
mnianego juø programatora PICS-
TART Plus.
Elementem sprzÍgaj¹cym pro-
gramator z†komputerem jest kon-
werter poziomÛw napiÍÊ MAX232
(U2), co wynika z†faktu, øe porty
mikrokontrolera pracuj¹ w†standar-
dzie TTL. Przetwornik pracuje
z†czterema liniami RS232: TXD,
RXD, RTS, CTS, przez ktÛre uk³ad
moøe nawi¹zaÊ transmisjÍ typu
handshaking.
Wykorzystuj¹c uk³ad
MAX232, otrzymujemy na liniach
napiÍcia o wartoúciach zbliøonych
do standardu RS232. JuPIC ³¹czy
siÍ z†komputerem poprzez szerego-
we ³¹cze RS232C kablem typu
ìmodemî (straight
through),
ktÛry
jest takøe wykorzystywany przy
³¹czeniu oryginalnego programato-
ra PICSTART Plus. Siedmioøy³owy
kabel ³¹cz¹cy jest zakoÒczony mÍs-
DB−25
Żeński
2
3
20
7
6
4
5
DB−9
Żeński
3
2
4
5
6
7
8
Sygnał
TX
RX
DTR
GND
DSR
RTS
CTS
Tab. 1. Opis wyprowadzeń złącz komputera i programatora JuPIC
Kierunek
PC <−> JuPIC
−>
<−
−>
<−
−>
<−
Rys. 4. W ten spos b w‡„cza siŒ
tryb SAFE
Elektronika Praktyczna 3/2003
23
JuPIC
Rys. 5. Spos b do‡„czenia programowanego
mikrokontrolera do programatora pracuj„cego
w trybie SAFE
Rys. 7. Spos b do‡„czenia programowanego mikrokontrole-
ra do programatora pracuj„cego w trybie VCC
-
-
-
-
-
- dioda pulsuje rÛwnomiernie
wolno - programator jest
w†trakcie wymiany danych
z†programem MPLAB IDE (za-
pis/odczyt),
- dioda gaúnie - reakcja na
przyciúniÍcie klawisza,
- 3†krÛtkie b³yski diody - mik-
rokontroler zosta³ wykasowa-
ny,
- dioda okresowo nadaje 3†krÛt-
kie b³yski - zawieszenie pro-
gramatora, naruszenie struktu-
ry programu, konieczna wy-
miana oprogramowania.
Wprowadzono z³¹cze ICSP, czy-
li moøliwoúÊ programowania
w†systemie (na p³ytce) bez ko-
niecznoúci wyjmowania mikro-
kontrolera z†uruchamianego
urz¹dzenia.
Wprowadzono moøliwoúÊ pro-
gramowania mikrokontrolerÛw
w†trybie LVP.
Wyprowadzono podstawkÍ
DIP18, ktÛra umoøliwia progra-
mowanie mikrokontrolera bez
koniecznoúci pod³¹czania prze-
wodÛw. Do podstawki moøna
w³oøyÊ mikrokontrolery, ktÛre
maj¹ kompatybilne wyjúcia
z†uk³adem PIC16F628.
Wyprowadzono zworki konfigu-
racyjne, ktÛre pozwalaj¹ przy-
stosowaÊ programator do w³as-
nych potrzeb.
Procedury programuj¹ce zosta³y
poddane optymalizacji, co po-
woduje przyspieszenie progra-
mowania mikrokontrolerÛw. Za-
wartoúÊ kaødej komÛrki przed
zaprogramowaniem jest porÛw-
nywana z†wartoúci¹, ktÛra ma
byÊ do niej wpisana i†jeúli jest
taka sama, operacja zapisu jest
pomijana.
Montaø i†uruchomienie
Programator zmontowano na
dwustronnej p³ytce drukowanej,
ktÛrej schemat montaøowy przed-
stawiono na
rys. 3.
Montaø prze-
prowadzamy typowo, rozpoczyna-
j¹c od elementÛw najniøszych,
a†koÒcz¹c na wlutowaniu z³¹cza
RS232. Na koÒcu, po zmontowa-
niu p³ytki, naleøy w³oøyÊ uk³ady
scalone do wlutowanych wczeú-
niej podstawek.
Programator po w³¹czeniu za-
silania jest gotowy do pracy i†nie
wymaga uruchamiania, natomiast
wymagane jest zapoznanie siÍ
z†trybami pracy, jakie uk³ad udo-
stÍpnia i†odpowiednie skonfiguro-
wanie zworek.
Konfiguracja programatora
Programowanie moøe odbywaÊ
siÍ dwoma sposobami:
- napiÍciem wysokim HVP (12...14†V)
- zworka ìLVP ONî roz³¹czona,
- napiÍciem niskim LVP (5 V) -
zworka ìLVP ONî zwarta (fun-
kcja ìdzia³aî tylko dla mikro-
kontrolerÛw posiadaj¹cych tryb
LVP).
Moøliwe s¹ rÛwnieø 4†tryby
pracy ze wzglÍdu na zasilanie
uk³adu:
Tab. 2. Sposób kodowania napięcia
programującego
RA0 RA1
Napięcie
V
DD
V
SS
V
PP
Funkcja
Praca
Reset
Programowanie
0
1
0
1
0
1. Tryb SAFE - bezpieczny
Uaktywnienie trybu nastÍpuje
po za³¹czeniu zworki ìSAFEî (rys.
4).
Tryb ten pozwala na progra-
mowanie mikrokontrolera najbez-
pieczniejszym sposobem. NapiÍcie
na wyprowadzenia mikrokontrole-
ra jest podawane przez klucz T4
za³¹czany tylko podczas jego pro-
gramowania (zapis/odczyt), nato-
miast po operacji wymiany da-
nych jest odcinane. Zalecane jest,
aby w†tym trybie nie zasilaÊ ze
z³¹cza ICSP øadnego uk³adu ze-
wnÍtrznego (rys.
5).
2. Tryb VCC - z†bezpoúrednim
zasilaniem
Uaktywnienie trybu nastÍpuje
po za³¹czeniu zworki ìVCCî (rys.
6).
Tryb ten pozwala bezpoúrednio
zasilaÊ programowany mikrokontro-
ler napiÍciem 5†V, podawanym
z†zasilacza umieszczonego na p³yt-
ce (rys.
7).
NapiÍcie jest podawane
ca³y czas na wyprowadzenia mik-
rokontrolera i†dlatego naleøy zacho-
waÊ ostroønoúÊ podczas jego
wk³adania lub wyjmowania z†pod-
stawki. Jeúli mikrokontroler jest
programowany nie w†podstawce,
lecz poprzez z³¹cze zewnÍtrzne
ICSP, napiÍcie podawane jest rÛw-
nieø na przy³¹czony uk³ad. W†ten
sposÛb moøna wykorzystaÊ zasilacz
programatora do zasilania uk³adu
programowanego. Jedynym ograni-
czeniem jest tu wydajnoúÊ pr¹dowa
stabilizatora i†maksymalny pr¹d za-
Tab. 3. Rozmieszczenie wyprowadzeń
złącza ICSP zaproponowane przez
firmę Microchip
Styk
1
2
3
4
5
6
Funkcja
MCLR
VCC
GND
DATA
CLOCK
LVP
Port
MCLR
VDD
VSS
RB7
RB6
RB3/4
Rys. 6. W ten spos b w‡„cza siŒ
tryb VCC
24
Elektronika Praktyczna 3/2003
JuPIC
Rys. 8. W ten spos b w‡„cza siŒ
zale¿ny tryb pracy (bez zasilacza)
bezpieczaj¹cej diody szeregowej,
dlatego naleøy wzi¹Ê ten fakt pod
uwagÍ, aby nie spaliÊ elemen-
tÛw†zasilacza na p³ytce.
3. Tryb zaleøny - bez zasilacza
Uaktywnienie trybu nastÍpuje
po za³¹czeniu zworki ìVCCî i†ìLVP
ONî (rys.
8).
Tryb ten pozwala na
pracÍ programatora bez w³asnego
zasilania. NapiÍcie niezbÍdne do
pracy programatora (5 V) jest po-
dawane bezpoúrednio z†uk³adu pro-
gramowanego przez z³¹cze ICSP
(rys.
9).
W†tej konfiguracji moøliwa
jest tylko praca z†mikrokontrolera-
mi, ktÛre mog¹ byÊ programowane
niskim napiÍciem (LVP). Podczas
pracy w†tym trybie nie wolno
pod³¹czaÊ zasilania do programato-
ra, poniewaø moøe ulec uszkodze-
niu stabilizator.
4. Tryb niezaleøny - z†podwÛj-
nym zasilaniem
Uaktywnienie trybu nastÍpuje
po roz³¹czeniu zworki ìSAFEî
i†ìVCCî (rys.
10).
Tryb ten po-
zwala na podawanie zasilania
z†dwÛch rÛønych ürÛde³. Progra-
mator zasilany jest z†w³asnego
stabilizatora, natomiast programo-
wany mikrokontroler jest zasilany
ze z³¹cza ICSP.
Instalacja programatora prze-
biega nastÍpuj¹co:
- programator umieszczamy na
stabilnym, nieprzewodz¹cym
pod³oøu,
- pod³¹czamy przewÛd RS232 do
komputera i†programatora,
- pod³¹czamy zasilacz do sieci,
a†nastÍpnie przewÛd zasilania
12V do programatora,
Rys. 9. Spos b do‡„czenia programowanego mikrokontrolera do
programatora pracuj„cego w trybie zale¿nym
- umieszczamy programowany
mikrokontroler w†podstawce lub
pod³¹czamy przewÛd programo-
wania ICSP,
- uruchamiamy na komputerze
program MPLAB IDE,
- uaktywniamy programator, wy-
bieraj¹c z†menu PICSTART Plus
funkcjÍ
Enable Programmer
-
w†programie MPLAB IDE pojawi
siÍ okno inicjacji programatora,
po czym otrzymamy aktywny
interfejs uøytkownika; progra-
mator JuPIC przedstawia siÍ
w†wersji 2.30.00 (rys.
11).
Po kompilacji przygotowanego
projektu otrzymujemy kod wyni-
kowy w†postaci pliku typu Intel
HEX, ktÛry moøemy wprowadziÊ
do programowanego mikrokontro-
lera (Program).
Na panelu programatora (rys.
12)
dostÍpne s¹ takøe funkcje
odczytu (Read) i†weryfikacji (Ve-
rify)
kodu, moøna rÛwnieø spraw-
dziÊ, czy pod³¹czony mikrokont-
roler ma skasowan¹ pamiÍÊ pro-
gramu (Blank). Dodatkowo, od
wersji programu MPLAB 5.70
wprowadzono przycisk kasowania
mikrokontrolera (Erase
Flash De-
vice).
Adam Jurkiewicz
Stanis³aw Pietraszek
Wzory p³ytek drukowanych w for-
macie PDF s¹ dostÍpne w Internecie
pod adresem:
http://www.ep.com.pl/
?pdf/marzec03.htm
oraz na p³ycie
CD-EP3/2003B w katalogu
PCB.
WYKAZ ELEMENTÓW
Rezystory
R1, R7, R9, R10: 10kΩ
R2, R3, R4: 2kΩ
R5: 100Ω
R6: 1kΩ
R8: 4,7kΩ
Kondensatory
C1, C3: 100µF/25V
C2, C4, CB1, CB2: 100nF
C5, C6, C7, C8: 10µF/25V
CP1: 220pF
CX1, CX2: 22pF
Półprzewodniki
U1: PIC16F628 (zaprogramowany)
U2: MAX232
US: 7805
D1: 1N4148
DZ: 1N4007
LED czerwona
T1, T3: BC238
T2, T4: BC307
Różne
XTAL: kwarc 11,0592MHz
JZ: z‡„cze zasilania
SW1: microswitch
J1: z‡„cze RS ¿eæskie
J3: podstawka precyzyjna 18 pin
J4: z‡„cze 6 pin do druku
JP1: zworka 2 pin
JP2: zworka 3 pin
Rys. 11. W taki spos b widziany jest
JuPIC przez MPLAB
Rys. 10. W ten spos b w‡„cza siŒ
niezale¿ny tryb pracy
Rys. 12. Widok panelu obs‡ugi
programatora w MPLAB
Elektronika Praktyczna 3/2003
25
Zgłoś jeśli naruszono regulamin