programator uniwersalny 2.pdf

(263 KB) Pobierz
Programator uniwersalny, część 2
P R O J E K T Y C Z Y T E L N I K Ó W
Dział "Projekty Czytelników" zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze
odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich laboratoryjnie, chociaż
sprawdzamy poprawność konstrukcji.
Prosimy o nadsyłanie własnych projektów z modelami (do zwrotu). Do artykułu należy dołączyć podpisane oświadczenie,
że artykuł jest własnym opracowaniem autora i nie był dotychczas nigdzie publikowany . Honorarium za publikację
w tym dziale wynosi 250,− zł (brutto) za 1 stronę w EP. Przysyłanych tekstów nie zwracamy. Redakcja zastrzega sobie
prawo do dokonywania skrótów.
Programator uniwersalny, część 2
W†drugiej, ostatniej
czÍúci artyku³u konstruktor
programatora opisuje
konstrukcje adapterÛw
umoøliwiaj¹cych
programowanie uk³adÛw
rÛønych rodzin oraz
oprogramowanie steruj¹ce
prac¹ programatora.
Adaptery
Programowane uk³ady s¹
pod³¹czane do programatora
za pomoc¹ adapterÛw. S¹ to
proste uk³ady zawieraj¹ce
podstawki pod uk³ady scalo-
ne i†kilka dodatkowych ele-
mentÛw dopasowuj¹cych.
Takie rozwi¹zanie pozwoli-
³o zmniejszyÊ do minimum
liczbÍ elementÛw prze³¹cza-
j¹cych przez co zwiÍkszono
niezawodnoúÊ programatora
- chodzi tu szczegÛlnie
o†prze³¹czanie wzglÍdnie
wysokiego napiÍcia progra-
muj¹cego.
PIC16x8x, pamiÍci EEPROM
z†interfejsem szeregowym ty-
pu 93Cxx oraz 24Cxx.
Projekt
084
Adapter dla procesorÛw
AVR firmy Atmel
Schemat adaptera przed-
stawiono na rys. 3 . Jest to
prosty uk³ad zawieraj¹cy
1†podstawkÍ 40-nÛøkow¹.
Umoøliwia programowanie
uk³adÛw†ATMEL AVR w†obu-
dowach z†40 wyprowadzenia-
mi (np. AT90S4414,
AT90S8515).
Montaø i†uruchomienie
Przed rozpoczÍciem mon-
taøu naleøy dok³adnie spraw-
dziÊ wszystkie p³ytki druko-
wane, czy przypadkiem nie
ma zwarÊ miÍdzy úcieøkami
lub sprawdziÊ czy nie ma
przerw w†úcieøkach - naleøy
to wykonaÊ omomierzem. Na-
wet szerokie úcieøki, wygl¹-
daj¹ce ìna okoî na sprawne,
mog¹ byÊ przetrawione. Po tej
ømudnej, ale koniecznej czyn-
noúci moøna przyst¹piÊ do
dalszej pracy.
Programator naleøy zmon-
towaÊ na p³ytce drukowanej,
w†ktÛr¹ wczeúniej naleøy
wlutowaÊ podstawki pod
uk³ady scalone. U³atwi to
uruchamianie uk³adu i†jego
pÛüniejsze modyfikacje. Po-
dobnie naleøy post¹piÊ
z†p³ytkami adapterÛw.
Montaø naleøy rozpocz¹Ê
od elementÛw najmniejszych
gabarytowo (rezystory, kon-
densatory, diody, tranzystory).
NastÍpnie naleøy wlutowaÊ
podstawki pod uk³ady scalo-
ne, stabilizatory U1 i†U2,
gniazda J1, J2, J3. Po³¹czenie
g³Ûwnego modu³u programa-
tora z†adapterami jest wyko-
nane za pomoc¹ przewodu ze
z³¹czem 40-szpilkowym (tzw.
ìtaúmaî - takie samo jak
w†twardych dyskach IDE). Na-
leøy zwrÛciÊ uwagÍ na d³u-
goúÊ tego przewodu - obowi¹-
zuje generalna zasada: im
krÛtszy przewÛd tym lepiej.
Naleøy jednak zapewniÊ moø-
liwoúÊ swobodnej wymiany
adapterÛw, dlatego nie naleøy
przesadzaÊ ze zbytnim jego
skracaniem (egzemplarz mo-
delowy posiada³†przewÛd d³u-
goúci ok. 10cm).
Po montaøu nastÍpuje
zawsze najciekawszy mo-
ment: uruchomienie. Przy
wyjÍtych z†podstawek uk³a-
Adapter dla procesorÛw
MCS-51
Schemat adaptera przed-
stawiono na rys. 4 (zawiera 1
podstawkÍ 40-nÛøkow¹). Za je-
go pomoc¹ moøna programo-
waÊ uk³ady MCS-51 w†obudo-
wach 40-nÛøkowych z†pamiÍ-
ci¹ Flash (AT89C51, AT89C52,
AT89C55, AT89S8252). Z†po-
wodu podawania adresu
w†sposÛb rÛwnoleg³y, p³ytkÍ
uzupe³niono o†12-bitowe licz-
niki 4040 (U2, U3), ktÛre spe³-
niaj¹ funkcj͆licznika adresu.
Adapter dla wybranych
mikrokontrolerÛw firm:
Atmel, Microchip i†pamiÍci
EEPROM z†interfejsem
szeregowym
Schemat tego adaptera
przedstawiono na rys. 2 . Jest
to prosty uk³ad zawieraj¹cy
4†podstawki pod uk³ady sca-
lone. Umoøliwia programowa-
nie uk³adÛw ATMEL w†obu-
dowach 20-nÛøkowych (zarÛ-
wno MCS-51 i†AVR),
Rys. 2.
Elektronika Praktyczna 5/2001
95
32189808.017.png 32189808.018.png 32189808.019.png 32189808.020.png 32189808.001.png 32189808.002.png 32189808.003.png 32189808.004.png
P R O J E K T Y C Z Y T E L N I K Ó W
Rys. 3.
matora. Jeúli wszystko zosta-
³o dobrze skonfigurowane
i†pod³¹czone, to w†okienku
terminala powinien siÍ zg³o-
siÊ znak zachÍty nastÍpuj¹cej
postaci: RKProg >. NaciúniÍcie
klawisza ENTER powoduje
kolejne wyúwietlanie znaku
zachÍty. Teraz przysz³a pora
na sprawdzenie napiÍÊ pro-
gramuj¹cych: pod³¹czamy
woltomierz miÍdzy masÍ
a†koÒcÛwk͆40 z³¹cza J2,
w†oknie terminala wydaje-
my komendÍ T1<ENTER> .
W†odpowiedzi powinniúmy
otrzymaÊ napis 5V i takie
napiÍcie powinien wskazy-
waÊ takøe woltomierz. Na-
ciúniÍcie klawisza <ENTER>
powoduje wy³¹czenie napiÍ-
cia programuj¹cego. Wyda-
j¹c komendy od T2 do T5
sprawdzamy napiÍcia od 12
do 25V.
Jeúli powyøsze czynnoúci
zosta³y wykonane prawid³o-
wo i†wszystko dzia³a
poprawnie, moøna przyst¹piÊ
do prÛby generalnej. Zamy-
kamy program terminalowy
(øeby nie blokowa³ portu sze-
regowego komputera PC).
Przy wy³¹czonym zasilaniu
pod³¹czamy adapter uk³adÛw
ATMEL, PIC i†EEPROM. Za-
³¹czamy zasilanie programa-
tora. Na komputerze PC uru-
chamiamy program
RKProg32.exe (Win95, 98, NT
- rys. 5 ) lub RKProg16.exe
(Windows 3.1x). W†przypad-
ku, gdy program powita nas
komunikatem o†braku odpo-
wiedzi z†programatora, nale-
øy wybraÊ z†menu Port pozy-
cjÍ odpowiadaj¹c¹ portowi
szeregowemu, do ktÛrego jest
pod³¹czony programator. Je-
øeli ponownie pojawi siÍ ten
komunikat, naleøy postÍpo-
waÊ zgodnie ze wskazÛwka-
mi zawartymi w†tym oknie.
Po poprawnym zainicjowaniu
komunikacji pomiÍdzy pro-
gramem steruj¹cym a†progra-
matorem naleøy umieúciÊ
w†odpowiedniej podstawce
programowany uk³ad (np. pa-
miÍÊ 24C02) wybraÊ z†menu
Typ wybrany uk³ad (tu Typ
-> EEPROM -> 24Cxx ->
24C02 ). Podpowiedü, gdzie
naleøy umieúciÊ dany uk³ad
jest wyúwietlana przez pro-
gram po wybraniu polecenia
z†menu Pomoc -> Po³oøenie
uk³adu . NastÍpnie moøna
przejúÊ do odczytania zawar-
toúci uk³adu (menu Uk³ad -
> Czytaj ). Pozosta³e polece-
nia obs³uguje siÍ podobnie.
Teraz pozostaje tylko pozna-
nie obs³ugi programu, i†moø-
na wykorzystywaÊ programa-
tor do realizacji dowolnych
projektÛw zawieraj¹cych mik-
rokontrolery czy pamiÍci nie-
ulotne.
dach U3 i†U4 pod³¹czamy za-
silanie (najlepiej o†wartoúci
ok. 26V, ale moøe byÊ niø-
sze). Powyøej 14V nie uzys-
kamy jedynie wyøszych na-
piÍÊ programuj¹cych - obec-
na wersja jeszcze nie pozwa-
la na programowanie uk³a-
dÛw EPROM i†GAL, wiÍc na-
piÍcie 14V w†zupe³noúci wy-
starcza. Dioda D3 powinna
úwieciÊ. Mierzymy napiÍcia
miÍdzy wyprowadzeniami 14
i†7†uk³adu U3 oraz 40 i†20
uk³adu U4 - powinno wyno-
siÊ ok. 5V. Sprawdzamy na-
piÍcie na wyjúciu stabilizato-
ra U1 (koÒcÛwka 3) - tu po-
winno byÊ 12V. Jeúli coú jest
nie tak, naleøy poszukaÊ b³Í-
du. W†przeciwnym przypad-
ku wy³¹czamy zasilanie,
wk³adamy do podstawek
uk³ady U3 i†U4. Pod³¹czamy
programator do dowolnego
portu COM komputera PC za
pomoc¹ przewodu zakoÒczo-
nego z†obu stron wtyczkami
ìøeÒskimiî. Naleøy zwrÛciÊ
uwagÍ na ìskrzyøowanieî
sygna³Ûw RXD i†TXD w†kab-
lu (typowy kabel tzw. ìmo-
dem zerowyî). Na kompute-
rze PC uruchamiamy dowol-
ny program terminalowy np.
HyperTerminal znajduj¹cy siÍ
w†kaødym pakiecie Windows
95, 98 czy NT. W†terminalu
naleøy skonfigurowaÊ port
szeregowy, do ktÛrego jest
pod³¹czony programator
(COM1 do 4) na 19200 bo-
dÛw, 8†bitÛw danych, 1†bit
stopu, bez parzystoúci, sprzÍ-
towe sterowanie przep³ywem.
W³¹czamy zasilanie progra-
Zestaw komend
steruj¹cych
programatorem
Dla osÛb chc¹cych samo-
dzielnie napisaÊ program ste-
ruj¹cy prac¹ programatora za-
mieszczam spis wszystkich
komend:
Rys. 4.
96
Elektronika Praktyczna 5/2001
Elektronika Praktyczna 2/98
32189808.005.png 32189808.006.png 32189808.007.png 32189808.008.png 32189808.009.png 32189808.010.png 32189808.011.png 32189808.012.png 32189808.013.png 32189808.014.png
P R O J E K T Y C Z Y T E L N I K Ó W
sumÍ kontroln¹ - jest ona wy-
liczana wed³ug nastÍpuj¹cego
algorytmu zapisanego w†jÍzy-
ku C:
suma_kontrolna=~suma_kontrol-
na+1;
/* uzupełnienie do 2 */
#define BL_LEN 64;
/* długość bloku danych */
unsigned char BUFFER[BL_LEN+1];
/* bufor z danymi */
suma_kontrolna=0;
/* inicjalizacja sumy
kontrolnej */
unsigned char i;
Jeøeli wyliczona suma
kontrolna zgadza siÍ z†odebra-
n¹, to moøna odczytaÊ nastÍp-
ne dane poprzez wys³anie do
programatora komendy 'N'.
W†odpowiedzi otrzymamy ko-
lejn¹ porcjÍ danych. W†prze-
ciwnym przypadku moøna
wys³aÊ do programatora ko-
mendÍ 'R' - proúbÍ o†powtÛ-
rzenie danych. Proces ten
moøna przerwaÊ wysy³aj¹c ko-
mendÍ 'Q'.
Robert Krysztof
for(i=0; i<BL_LEN; i++)
suma_kontrolna+=BUFFER[i];
/* licz sumę kontrolną */
Rys. 5.
Pierwszy znak - rodzina
uk³adu:
'A' - uk³ady firmy Atmel serii
MCS-51 typu AT89C;
'2' - szeregowe pamiÍci EEP-
ROM z†interfejsem I 2 C typu
24Cxx;
'3' - szeregowe pamiÍci EEP-
ROM z†interfejsem Micro-
wire typu 93Cxx;
'7' - rÛwnoleg³e pamiÍci EP-
ROM typu 27xx;
'G' - uk³ady GAL;
'P' - uk³ady f-my Microchip
serii PIC16x8x;
'V' - uk³ady f-my Atmel serii
AVR typu AT90Sxxxx;
'T' - testowanie uk³adu pro-
gramatora (sprawdzanie na-
piÍÊ programuj¹cych).
Drugi znak - komenda do
wykonania:
'R' - odczyt pamiÍci;
'W' - programowanie pamiÍci;
'E' - kasowanie uk³adu;
'S' - odczyt sygnatury;
'B' - test ìczystoúciî pamiÍci;
'F' - zapis bitÛw konfiguracji
(czasem zabezpieczenia)
uk³adu;
'G' - odczyt bitÛw konfiguracji
(czasem zabezpieczenia)
uk³adu;
'O' - odczyt pamiÍci EEPROM
niektÛrych procesorÛw;
'P' - zapis jw.;
'Q' - przerwanie aktualnie wy-
konywanej czynnoúci.
Trzeci znak (opcjonalnie)-
typ uk³adu w†ramach
rodziny okreúlonej
pierwszym znakiem
polecenia:
- dla pierwszego znaku ' 2 ':
'2' - 24C01A;
'3' - 24C02;
'4' - 24C04;
'5' - 24C08;
'6' - 24C16;
- dla pierwszego znaku ' 3 ':
'1' - 93C06;
'2' - 93C46;
'3' - 93C56;
'4' - 93C57;
'5' - 93C66;
- dla pierwszego znaku ' A ':
'1' - AT89C1051;
'2' - AT89C2051;
'3' - AT89C4051;
'4' - AT89C51;
'5' - AT89C52;
- dla pierwszego znaku ' V ':
'1' - AT90S1200;
'2' - AT90S2313;
- dla pierwszego znaku ' P ':
'1' - PIC16F83;
'2' - PIC16F84;
- dla pierwszego znaku ' 7 ':
'1' - 2716 z†Upp=25V;
'2' - 2732 z†Upp=21V;
'3' - 2732 z†Upp=25V;
'4' - 2764 z†Upp=12V;
'5' - 2764 z†Upp=21V;
'6' - 27128 z†Upp=12V;
'7' - 27128 z†Upp=21V;
'8' - 27256 z†Upp=12V;
'9' - 27256 z†Upp=21V;
'A' - 27512 z†Upp=12V;
'B' - 27010 z†Upp=12V;
'C' - 27020 z†Upp=12V;
'D' - 27040 z†Upp=12V;
'E' - 27080 z†Upp=12V;
- dla pierwszego znaku ' G ':
'1' - GAL16V8;
'2' - GAL20V8;
'3' - GAL18V10;
'4' - GAL22V10.
Komunikaty synchronizu-
j¹ce transmisjÍ danych, wysy-
³ane przez programator i†do
programatora:
'N' - proúba o†nastÍpne dane;
'R' - proúba o†powtÛrzenie da-
nych;
'E' - b³¹d.
Przyk³ad:
Aby odczytaÊ pamiÍÊ pro-
gramu uk³adu AT90S1200 na-
leøy wys³aÊ komendÍ
'VR1'<ENTER> . W†odpowie-
dzi otrzymamy paczkÍ 65 baj-
tÛw (64 bajty danych oraz bajt
sumy kontrolnej). Po ich
otrzymaniu naleøy sprawdziÊ
Elektronika Praktyczna 5/2001
97
32189808.015.png 32189808.016.png
Zgłoś jeśli naruszono regulamin