Usable technology

Peter Kuhar

Objavljeno v reviji Svet elektronike link
Program in firmware dobite tukaj

EMULATOR ISP PROGRAMATORJEV

Množica mikrokontrolerjev, ki so na voljo zahteva tudi množico programatorjev. Zato sem naredil nekakšen emulator programatorjev, ki zna posnemati delovanje drugih programatorjev, s tem da uporablja originalne programe. Zakaj bi imel kup programatorjev, če imam lahko le enega, ki vse te posnema.

Novejši mikrokontrolerji vsi po vrsti podpirajo ti. serial ISP (in system programming), zato so programatorji navadno precej enostavne napravice priklopljene na COM ali LPT vrata. Emulacija le teh je zato precej enostavna z enim mikrokontrolerjem.

Zaenkrat sem se omejil na mikrokontrolerje in programatorje, ki jih sam uporabljam oz. sem jih uporabljal. Je pa seveda možno dodati podporo še za kak drug mikrokontroler  z enostavno nadgradnjo programa v mikrokontrolerju.

Mikrokontroler

Obstoječi programator

Izbira emulacije

AVR

PonyProg2000

link

PonyProg AVR

PIC (16Fxxx)

PonyProg2000

link

PonyProg PIC

MSP430

pyBSL

link

MSP430 bsl

LPC21xx

LPC210x ISP

link

LPC21xx bsl

I2C EEPROM (24Cxx)

PonyProg2000

link

PonyProg I2C

 

OPIS VEZJA

Vezje na Sliki 1 je sestavljeno okoli mikrokontrolerja AT90S2313 (IC1), ki je bil izbran zaradi hitrosti. Napajanje je dobljeno neposredno iz COM vrat iz signalov RTS in DTR preko diod D1 in D2. Ti diodi sta lahko univerzalni 1N4148 ali schotky diodi, kar da nekoliko večjo napetost na C1, ki drži napetost, ko se signala RTS in DTR uporabljata pri krmiljenju signalov.

Programator lahko deluje na 3.3V ali 5V odvisno od izbranega regulatorja IC3. Ob tem moram opozoriti, da programator z 3.3V, ne bo deloval na nekaterih računalnikih, zaradi prenizkih napetostnih nivojev v COM vrata. Katero napetost boste izbrali je odvisno o tega katere mikrokontrolerje imate namen največ uporabljati. 3.3V je namreč dovolj za npr. AVR-je ali MSP430 vendar premalo za PIC-e kot je PIC16F84.

Priporočam, da izberete LDO regulator kot sta REG103UA-3.3 ali REG103UA-5 saj imata majhno lastno porabo in majhen padec napetosti, kar je še posebej pomembno, ker je vezje napajano iz COM vrat. V skrajnem primeru lahko uporabite tudi 78L05 v SO8 ohišju, vendar je večja verjetnost, da vezje ne bo delovalo zaradi premajhnega toka(78L05 ima porabo tudi do 5mA, odvisno od proizvajalca) iz COM vrat. Ti regulatorji imajo nekoliko različen razpored nožic, vendar je vezje narejeno tako, da sprejme oba tipa.

Upori R11, R12, R13 in R14 omejujejo tok v in iz programatorja,  kar je pomembno kadar je napetost programatorja različna od napetosti, na kateri deluje vezje programatorja. V primeru, da te razlike ni lahko upore tudi kratko sklenete ali uporabite male npr. 10Ω upore. Naslednja stvar, ki je pomembna pri teh uporih, je dejstvo da lahko ti upori toliko omejijo tok, da onemogočijo programiranje, v primeru da  ima mikrokontroler, v sistemu, obremenjene pine za programiranje z npr. majhnimi upori.

JP2 je  mostiček, ki izbira med programiranjem/nastavitvijo programatorja in normalnim delovanjem. Kadar je mostiček sklenjen, lahko s programom za nastavitev in nadgradnjo (Prog emulator) sprogramiramo mikrokontroler na programatorju ali izberemo tip emulacije.

Na JP3 lahko damo zunanjih 12V do 14V kadar jo potrebujemo za npr. programiranje PIC mikrokontrolerjev, ki rabijo višjo napetost, ostali mikrokontrolerji teh 12V ne potrebujejo.

ELEMENT

VREDNOST

OPOMBA

IC1

AT90S2313-10SI

Lahko je tudi -4SI

IC3

REG103UA-3.3 ali REG103UA-5

Če teh regulatorjev ne dobite lahko uporabite tudi 78L05 v SO8

R1, R2, R3, R5, R7

22k

Velikost 1206

R6, R11, R12, R13, R14, R15

1k

Velikost 1206

R9

10k

Velikost 1206

R15

15k

Velikost 1206

C1

100uF/16V

Elektrolit

C2,C3

27pF

Velikost 1206

C4

220nF

Velikost 1206

D1,D2

1N4148

T1,T2

BC847

SOT-23

T3

BC857

SOT-23

LED1,LED2

LED 3mm

Barva po želji; LED1 kaže napajanje

S1

Mikrotipka 5x5mm

Zaenkrat ni v uporabi, lahko jo izpustite

Q2

Quarzt 6MHz

Lahko je od 4MHz do 10MHz, vendar večja frekvenca povzroči večjo porabo

DB9M

DB9 moški 90° za na TIV

JP1

Ženska letvica 7p

JP2

Ženska letvica 2p

JP3

Ženska letvica 2p

KONEKTOR ZA PROGRAMIRANJE

JP1 je ISP konektor preko katerega programiramo. Razpored pinov in povezavo na posamezne mikrokontrolerje si poglejmo v naslednji Tabeli 2.

Številka pina na JP1

Ime pina na JP1

AVR

PIC

MSP430

LPC210x1

I2C EEPROM

1

GND

GND

GND

GND

GND

GND

2

PIN1

SCK

RB6(CLOCK)2

P1.1

TXD0

SCL

3

PIN1

MISO

RB7(DATA)3

P2.2

RXD0

SDA4

4

PIN1

MOSI

/

RST

/

/

5

PIN1

RESET

/

TEST/TCK

/

/

6

Vcc

Vcc

Vcc

Vcc

Vcc

Vcc

7

Vpp

/

MCLR

/

/

/

PROGRAMIRANJE MIKROKONTROLEJA NA PROGRAMATORJU

Ker je delamo programator, bi bilo nesmiselno, če bi potrebovali programator, da ga naredimo. Zato je narejen tako, da se lahko sam sprogramira. Program “Prog emulator” namreč omogoča tudi programiranje. Vse kar moramo narediti, je da sklenemo JP2 in v “Prog emulator”  pritisnemo gumb “Nadgradi firmware”.  Z tem programom tudi izberemo tip emulacije, glede na to kateri mikrokontroler želimo sprogramirati.

IZDELAVA PROGRAMATORJA

Programator je izdelan večinoma v SMD tehniki, kar bo na začetku verjetno marsikoga odvrnilo od izdelave. Vendar kar brez strahu. Vse kar porebujete je pinceta in spajkalnik s primerno konico. Pred spajkanjem celotno vezje pocinimo. Najprej prispajkamo IC1 ter IC3. Čip postavimo točno na mesto in najprej prispajkamo diagonalni nožici, potem pa po vrsti, še vse ostale. Če se nam dve nožici sprimeta je najbolje uporabiti pletenico za odspajkovanje. Pri spajkanju uporov najprej damo cin na en otoček, nanj pritisnemo upor in s spajkalnikom spojimo, nasprotni del upora lahka prispajkamo brez problema saj ga spajka že drži.

ZAKLJUČEK

Zankrat je bil programator preverjen za PIC16F84 (z 13V zunanjo napetostjo na JP3), AT90S2313, MSP430F1132, LPC2106 ter EEPROM-om AT24C04. Če bo zanimanje lahko dodam podporo še za kak mikrokontroler.

Programe dobite na naslovih:

PonyProg2000:

http://www.lancos.com/prog.html

LPC210x ISP:

http://www.semiconductors.philips.com/ markets/mms/products/microcontrollers/ support/software_download/8051/

pyBSL:

http://prdownloads.sourceforge.net/ mspgcc/install-pybsl.exe?download

Avtor: Peter Kuhar

peter@pkuhar.com

1LPC210x je potrebno ročno spraviti v način za programiranje. To storimo tako, da držimo pin P0.14 na nizkem nivoju med resetom. Nazalost program LPC210x ISP tega ne stori programsko.  

2Oznaka pina je odvisna od PIC-a. RB6 velja za PIC16F84. Za druge PIC-e je potrebno pogledati preko katerega pina se programira.

3Oznaka pina je odvisna od PIC-a. RB7 velja za PIC16F84. Za druge PIC-e je potrebno pogledati preko katerega pina se programira. Priporočam pull-up upor 10kΩ.

4Priporočam 10k pull-up upor

http://www.pkuhar.com © 2006 Peter Kuhar peter@pkuhar.com