21_25.pdf

(995 KB) Pobierz
JuPIC - programator mikrokontrolerów PIC współpracujący z programem MPLAB - AVT-5100
P R O J E K T Y
JuPIC
JuPIC
Programator mikrokontrolerów PIC
wspó³pracuj¹cy z programem MPLAB
AVT-5100
Konstruktorzy s¹ bez
w¹tpienia ludmi 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
bezporedniej wspó³pracy ze
rodowiskiem MPLAB. Idealne
rozwi¹zanie dla
projektantów korzystaj¹cych
z mikrokontrolerów PIC firmy
Microchip.
Od kilku lat jestemy 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¿onoci 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, porednicz¹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¿liwoci 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
32569864.056.png 32569864.067.png
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¿noci 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-
woci 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
32569864.078.png 32569864.089.png 32569864.001.png 32569864.007.png 32569864.008.png 32569864.009.png 32569864.010.png 32569864.011.png 32569864.012.png 32569864.013.png 32569864.014.png 32569864.015.png 32569864.016.png 32569864.017.png 32569864.018.png 32569864.019.png
JuPIC
Rys. 2. Sposób do³¹czenia
mikrokontrolera do z³¹cza ICSP
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 wartoci oznaczaj¹ od-
powiednie napiêcia wyjciowe.
Sposób kodowania zestawiono
tab. 2 .
Po podaniu na wyjcia RA0
i RA1 stanu 0 zatkane zostaj¹
wszystkie tranzystory i na wyjciu
pojawi siê potencja³ V DD (R7 pra-
cuje jako pull-up ). Po podaniu na
wyjcie RA1 stanu 1 zostaje
wysterowany tranzystor T3 i na
wyjciu otrzymujemy poziom V SS ,
niezale¿nie od stanu na wyjciu
RA0. Natomiast po podaniu na
wyjcie RA1 stanu 0, a na
wyjcie RA0 stanu 1 powodu-
jemy zatkanie tranzystora T3 i wy-
sterowanie tranzystorów T1 i T2,
co spowoduje wyst¹pienie na wyj-
ciu napiêcia programuj¹cego V PP .
W ten sposób uzyskujemy mo¿-
liwoæ podawania wszystkich po-
trzebnych napiêæ na wejcie
MCLR mikrokontrolera.
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-
dajnoci 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 wartociach 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-
Rys. 3. Rozmieszczenie elementów na
p³ytce programatora
rys. 2 przedstawiono sposób przy-
³¹czania uk³adu zewnêtrznego.
Funkcje programatora
Programator posiada szereg
funkcji i usprawnieñ rozszerzaj¹-
cych jego mo¿liwoci:
- Uk³ad ma przycisk kasowania,
którym bez pod³¹czania progra-
matora do komputera mo¿na
wyzerowaæ pamiêæ mikrokontro-
lera (tak¿e Code Protection ).
Aby wykasowaæ pamiêæ, nale¿y
nacisn¹æ i przytrzymaæ klawisz
ERASE przez 2 sekundy - dioda
LED zasygnalizuje wyzerowanie
mikrokontrolera.
- Wprowadzono diodê sygnaliza-
cyjn¹ LED, która sygnalizuje
aktualne stany programatora:
- dwa podwójne krótkie b³yski
diody - za³¹czenie zasilania
i inicjacja programatora,
- dioda wieci wiat³em ci¹g³ym
- programator gotowy do pracy,
- dioda pulsuje równomiernie
szybko - nawi¹zywana jest
komunikacja z programem
MPLAB IDE,
Programowanie
w systemie ICSP
Programator zosta³ wyposa¿ony
w dodatkowe z³¹cze s³u¿ace do
programowania zgodne z protoko-
³em ICSP. Otrzymano w ten spo-
sób tzw. okno na wiat, umo¿-
liwiaj¹c przy³¹czanie do progra-
matora JuPIC dowolnie wybranego
zewnêtrznego systemu mikropro-
cesorowego. Jedynym warunkiem
tego przy³¹czenia jest zachowanie
standardu ³¹cza oraz zgodnoæ
protoko³ów programuj¹cych. Na
Tab. 1. Opis wyprowadzeñ z³¹cz komputera i programatora JuPIC
DB-25
DB-9
Sygna³
Kierunek
DB-9
Sygna³
¯eñski
¯eñski
PC <-> JuPIC
Mêski
2
3
TX
->
3
RX
3
2
RX
<-
2
TX
20
4
DTR
->
4
Data Ready
7
5
GND
-
5
GND
6
6
DSR
<-
6
pull up +5V
4
7
RTS
->
7
CTS
Rys. 4. W ten sposób w³¹cza siê
tryb SAFE
5
8
CTS
<-
8
RTS
Elektronika Praktyczna 3/2003
23
32569864.020.png 32569864.021.png 32569864.022.png 32569864.023.png 32569864.024.png 32569864.025.png 32569864.026.png 32569864.027.png 32569864.028.png 32569864.029.png 32569864.030.png 32569864.031.png 32569864.032.png 32569864.033.png 32569864.034.png 32569864.035.png 32569864.036.png 32569864.037.png 32569864.038.png 32569864.039.png 32569864.040.png 32569864.041.png 32569864.042.png 32569864.043.png 32569864.044.png 32569864.045.png 32569864.046.png 32569864.047.png 32569864.048.png
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 ganie - reakcja na
przyciniê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-
niecznoci 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
koniecznoci pod³¹czania prze-
wodów. Do podstawki mo¿na
w³o¿yæ mikrokontrolery, które
maj¹ kompatybilne wyjcia
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 wartoci¹, która ma
byæ do niej wpisana i jeli jest
taka sama, operacja zapisu jest
pomijana.
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 bezporednim
zasilaniem
Uaktywnienie trybu nastêpuje
po za³¹czeniu zworki VCC ( rys.
6 ). Tryb ten pozwala bezporednio
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. Jeli 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-
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. 3. Rozmieszczenie wyprowadzeñ
z³¹cza ICSP zaproponowane przez
firmê Microchip
Styk
Funkcja
Port
Tab. 2. Sposób kodowania napiêcia
programuj¹cego
RA0 RA1
1
MCLR
MCLR
2
VCC
VDD
Napiêcie
Funkcja
3
GND
VSS
00
DD
Praca
4
DATA
RB7
Rys. 6. W ten sposób w³¹cza siê
tryb VCC
-
1
SS
Reset
5
CLOCK
RB6
10
PP
Programowanie
6
LVP
RB3/4
24
Elektronika Praktyczna 3/2003
32569864.049.png 32569864.050.png 32569864.051.png 32569864.052.png 32569864.053.png 32569864.054.png 32569864.055.png 32569864.057.png 32569864.058.png 32569864.059.png 32569864.060.png 32569864.061.png
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 bezporednio 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
W
R2, R3, R4: 2k
W
R5: 100
W
W
R8: 4,7k
W
Kondensatory
C1, C3: 100
F/25V
C2, C4, CB1, CB2: 100nF
C5, C6, C7, C8: 10
m
m
F/25V
Rys. 11. W taki sposób widziany jest
JuPIC przez MPLAB
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. 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
R6: 1k
32569864.062.png 32569864.063.png 32569864.064.png 32569864.065.png 32569864.066.png 32569864.068.png 32569864.069.png 32569864.070.png 32569864.071.png 32569864.072.png 32569864.073.png 32569864.074.png 32569864.075.png 32569864.076.png 32569864.077.png 32569864.079.png 32569864.080.png 32569864.081.png 32569864.082.png 32569864.083.png 32569864.084.png 32569864.085.png 32569864.086.png 32569864.087.png 32569864.088.png 32569864.090.png 32569864.091.png 32569864.092.png 32569864.093.png 32569864.094.png 32569864.095.png 32569864.096.png 32569864.097.png 32569864.098.png 32569864.099.png 32569864.002.png 32569864.003.png 32569864.004.png 32569864.005.png 32569864.006.png
Zgłoś jeśli naruszono regulamin