MLAB
PICprogUSB02A
Programátor pro procesory PIC Milan Horkel,Miroslav Janás
Modul USB programátoru procesorů PIC od firmy MICROCHIP. Programátor je kompatibilní s programátorem PICkit 2 od firmy MICROCHIP. Modul nepotřebuje ke své činnoti napájení, je napájen z USB portu. Modul umožňuje měnit napájecí napětí cílové aplikace, lze ho použít jako logický analyzátor, jako omezený převodník RS232 – USB, jako programátor eeprom. Programátorem nelze naprogramovat starší PIC 16F84 (novější 16F84A již ano).
1. Technické parametry Parametr
Hodnota
Poznámka
Napájení
5V
Napájeno z USB rozhraní
Napájení cílového zařízení
2.5 - 5V z USB lze nastavit pomocí SW
Omezeno USB portem Maximálně cca 90mA
Spotřeba
cca 10mA
Bez cílového zařízení
Interface
USB 1.1, USB 2.0
USB kabel A-B
Kompatibilita
PICkit2 PK2CMD
PICKit2 – MS windows PK2CMD – Linux, MS windows
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
1 / 10
MLAB
PICprogUSB02A Rozměry
70x40x20mm
Výška nad nosnou deskou
2. Popis konstrukce 2.1. Úvodem Protože nové počítače a zejména notebooky již nemají oblíbený LPT port ke kterému se připojují různé jednoduché programátory procesorů, naklonovali jsme z dostupných pramenů tento programátor, který se připojuje přes všudypřítomnou USB sběrnici. Konstrukce vychází konktrétně z „PICkit2 User Guide“, dokument „51553E.pdf“, ze stránek Microchipu. V dokumentu je kompletní popis i schéma zapojení. Aby byla konstrukce jednodušší a univerzálnější, byly vynechány paměti eeprom a změněny některé součástky ( typ, pouzdro). Dále byl přidán přepínač, který odpojuje programovací piny při použítí programátoru jako logického analyzátoru a převodníku RS232-USB.
2.2. Zapojení modulu Procesor a napájecí část. Do původního zapojení od microchipu je přídána pojistka F1, konektory J2 a J3. J2 vývod napájení z USB portu, J3 vývod napájení pro cílovou aplikaci. Dále jsou vynechány eeprom paměti. VC C _U SB 1 2 3 4 5 6 7 8 9 10 11 12 13 14
S_M C LR VPP_F B V D D _TG T_F B IS P _ D A TA IS P _ C L K AU X M C LR _TG T
O SC 1
A
O SC 1 O SC 2 LED _BU SY VPP_PU M P TG T_adj
O SC 2
X1
B
PIC
M C L R # /V P P R A 0 /A N 0 R A 1 /A N 1 R A 2 /A N 2 /V R E F R A 3 /A N 3 /V R E F + R A 4 /T 0 C K I R A 5 /A N 4 /S S # /L V D IN G N D O S C 1 /C L K I O S C 2 /C L K O /R A 6 R C 0 /T1 O S O /T1 C K I R C 1 /T 1 O S I/C C P 2 R C 2 /C C P 1 V_U SB
_ P IC 1 8 F 2 5 5 0 _ _ 2 8 _ P IN 2
20M H z
C 3 470nF
2
2
U 1
S_PG D S_PG C TL V D D _TG T_P V D D _TG T_N VPP_O N
U SB_D P U SB_D M
VC C _U SB
C 6 100nF 1
1
1
28 27 26 25 24 23 22 21 20 19 18 17 16 15
2
C 5 22pF 1
C 4 22pF
P G D /R B 7 P G C /R B 6 P G M /R B 5 R B4 C C P 2 /R B 3 IN T 2 /R B 2 IN T 1 /R B 1 IN T 0 /R B 0 VD D G N D D T /R X /R C 7 C K /T X /R C 6 D + /V P /R C 5 D -/V M /R C 4
F1 R XE 075E _S M D
C 1 100nF
C 2 1 0 u F /1 6 V
R 4 2k7
VC C _U SB
VC C _U SB
VD D _TG T
J1 C M P D
1 2 3 4
1 U SB_D M U SB_D P
2
J2 2
VC U SBD U SBD G N
A
M 1 M 2
2
5 6
1 3 5 JU M P 2X3
1
C
JU M P 2X3 1
U SB_B_01
J3 1 3 5
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
2 / 10
MLAB
PICprogUSB02A
LED, tlačítko SW1, programovací konektory. Tlačítko SW1 je použito pro funkci „abort trigger“ při použití programátoru jako logického analyzátoru. D1, červená LED, indikuje činnost programátoru. D2, žlutá LED, nás informuje o tom, že je použito výstupní napětí „tgt power“. D3, zelená LED, znamená přítomnost USB napětí. Self ISP S e lf _ I S P
J4 PG C PG D VD D
LED _BU SY
D 3
Y
G
D 1
R 2 470
T_C LK T_D A TA V D D _TG T
R 3 470
1
C
R
S_PG C S_PG D
5 6
S_M C LR
Target ISP
T_M C LR
1
A1
33
D 2
2C
R 1 470
TL
1 2 3
A
A
2 2
VC C _U SB
2C
1
PU SH 050x050 SW 1 R 32 2 1
VC C _U SB
G N D M C L R # /V P P PIC_ISP
VC C _U SB
V D D _TG T_P
1 2 3 5 6
J5
T a rg e t_ IS P
PG C PG D VD D G N D M C L R # /V P P PIC_ISP
Generátor napětí pro MCLR. Osazuje se pouze jedna cívka. Buď L1 nebo L2. Zapojení je nezměněmo oproti originálu.
L1 680uH
R 17
A C 7 4 7 u F /2 5 V
100k
D 6
Q 6 BC 807SM D
C
T_M C LR 2
2
R 23 10k
R 25 4k7 VPP_O N
M C LR _TG T
1
Q 8 BC 817SM D
2 E
1 1
B
C
R 28 10k C
R 29 2k7
R 27 10k
B
Q 9 BC 817SM D
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
E
2
1
VPP_F B VPP_PU M P
R 26 100
1
Q 7 BC 817SM D
B A T48S M D
2
1k
2 B
1
R 24
E
1
C
2
A
C
B
C
1
1
1
E
C
L2 #
2
2
C 9 1 0 u F /1 6 V
2
A
V C C _TG T
3 / 10
MLAB
PICprogUSB02A
Schéma zapojení pro tvorgu napětí „tgt power“ (VCC_TGT) pro cílovou aplikaci. Oproti původnímu zapojení je použit jiný typ operačního zesilovače.
5
M C P 6 0 0 1 T -I/O T G U 2 2
4
1 G
Q 5 BS250SM D D
A
C 12 100nF
C 13 1 0 u F /1 6 V C
1
R 22 10k 1
1
2
2
R 20 10k
R 21 10k
C 11 100nF
1
1
2
2
C 10 100nF
2 1
V C C _TG T
2
VC C _U SB
1 2
OA
3
R 19 100
2
1
R 18 10k
VC C _U SB
S
VC C _U SB
TG T_adj
Spínač „tgt power“ , převodník napětí a přepínač SW2. Na následujícím schématu, levá část, je tranzistorový spínač napětí „tgt power“ (VCC_TGT). V originálním schématu je použita součástka, která sdružuje v sobě dva fet tranzistory Q1 a Q3. Dostupnější jsou ale tranzistory každý zvlášť. Odpory R33, R34 a R35 jsou použity jako propojky v PCB. Deska je díky nim jednostranná. V pravé části s diodou D5 je jednoduchý převodník napětí, tvořen s tranzistory Q2, Q4 a Q10. Přepínač SW2 přepíná funkci datových signálů buď do programovacího konektoru ISP, nebo do oddělených konektorů J7 a J8. V D D _TG T_F B
V C C _TG T
VD D _TG T
2
VC C _U SB
C 8 100nF
2
S W 2 -1
S
2
1
1
1
2
R 35 0
R 5 10k
1
2
G
R 6
2
1
10
R 7
2
Q 3 BS170S M D
R 10 4k7
B
C
B A T48S M D
1
2 R 34 0
S W 2 -2
D 5 1N 4148SM D IS P _ D A T A
1
2C
S R 14 10k
JU M P 2X1
1
Q 2 B C 807SM D
J7
s w it c h
C
D 4
2
V D D _TG T_N
A
R 12
2
2
10
1
R 30
2
1
s w it c h
J8
JU M P 2X1
R 31 33
2
AU X
1 J6
E
10
T_D A TA 1
1
C
1
Q 4 B C 807SM D
1
6
R 16 4k7
1
B
AU X
4
5
33 E
R 15 820
R 13
2
G
2 R 11 1k
T_C LK 1
A
D
1
3
33
1 R 33 0
D
R 9 2k7
1
2
E
2
R 8 4k7
1
2
1
V D D _TG T_P
Q 1 BS250SM D
IS P _ C L K
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
C
B Q 10 BC 807SM D
4 / 10
PICprogUSB02A
MLAB
2.3. Mechanická konstrukce Modul je navržen jako standardní modul do stavebnice MLAB s upevňovacími sloupky v rozích.
J1
je USB konektor pro připojení k počítači PC
J2
USB power - napájecí napětí z USB portu
J3
tgt power - napájecí napětí pro cílovou aplikaci (2.5V až 5V)
J4
self ISP – konektor pro prvotní naprogramování firmware
J5
je ISP programovací konektor
SW1
abort trigger - tlačítko logického analyzátoru
SW2
přepíná programovací piny mezi ISP konektorem a konektry J6, J7, J8
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
5 / 10
PICprogUSB02A
MLAB
3. Osazení a oživení 3.1. Osazení Modul je navržen na jednostranné desce.Při osatování je potřeba značné dávky trpělivosti a hodně času. I přesto, že jseme chtěli navrhnout jednoduchý a univerzální programátor, má modul 88 součástek a to při osazení, kdy hledáme co kam patří zabere více času. Deska při pohledu ze strany součástek
Deska při pohledu ze strany spojů
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
6 / 10
PICprogUSB02A
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
MLAB
7 / 10
PICprogUSB02A
MLAB
Seznam použitých součástek Quantity 6 3 1 2 1 1 1 1 2 1 1 1 2 1 1 1 2 1 1 4 2 2 2 4 1 3 3 3 8 3 4 4 2 1 1 1 2 3 1 1 1 1 1
Reference Part C1,C6,C8,C10,C11,C12 100nF C2,C9,C13 10uF/16V C3 470nF C4,C5 22pF C7 47uF/25V D1 R D2 Y D3 G D6,D4 BAT48SMD D5 1N4148SMD F1 RXE075E_SMD J1 USB_B_01 J2,J3 JUMP2X3 J4 Self_ISP J5 Target_ISP J6 AUX J7,J8 JUMP2X1 L1 680uH L2 axialni GME 611-035 M1,M2,M3,M4 HOLE_M3 M5,M6 FIDU M7,M8 FIDU_PASTE Q5,Q1 BS250SMD P-FET Q2,Q4,Q6,Q10 BC807SMD PNP Q3 BS170SMD N-FET Q7,Q8,Q9 BC817SMD NPN R1,R2,R3 470 R4,R9,R29 2k7 R5,R14,R20,R21,R22,R23,R27,R28 10k R6,R12,R30 10 R7,R13,R31,R32 33 R8,R10,R16,R25 4k7 R24,R11 1k R15 820 R17 100k R18 10k R26,R19 100 R33,R34,R35 0 SW1 P-B1720 SW2 switch U1 _PIC18F2550__28_PIN U2 MCP6001T-I/OTG X1 20MHz
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
PCB Footprint C0805 ELYTB C0805 C0805 ELYTC LED3 LED3 LED3 MINIMELF SOD87 F1812 USB_B_01 JUMP2X3 PIC_ISP PIC_ISP JUMP2X1 JUMP2X1 L1210_MIJA LL100 HOLE_M3 FIDU FIDU_PASTE SOT23 SOT23 SOT23 SOT23 R0805 R0805 R0805 R0805 R0805 R0805 R0805 R0805 R0805 R1206 R0805 R1206 P-B1720 SW-2XDPDT SO28_300 SOT23-5 XTAL050
8 / 10
PICprogUSB02A
MLAB
3.2. Oživení Pokud je deska dobře osazená, zbývá jen do procesoru nahrát firmware. Potřebujeme externí programátor, který zvládne naprogramovat procesor PIC 18F2550. Nyní je pro programátor firmware 2.32.0. Soubor firmaware, v době psaní tohoto dukumentu, se jmenoval „PK2V023200.hex“. Po naprogramování lze kdykoli provést upgrade firmware, bez nutnosti znovu programovat procesor externím programátorem.
3.2.1. Nahrání procesoru v programátoru Do konektoru Self ISP (J4) zasuneme programovací kabel a nahrajeme do procesru PIC 18F2550 aktuální firmware. (nyní PK2V023200.hex). Před programováním je dobré, si rozmyslet, jak budeme programátor napájet. Pokud externí programátor potřebuje externí napájení, můžeme náš nový modul zasunout do USB kabelu k PC. Napájení se tak bude brát z našeho modulu.
4. Programové vybavení S programátorem můžeme pracovat v Linuxu i v MS windows. Pro windows je program PICkit2. Práce s programátorem je uživatelsky příjemnější. Pro Linux lze použít PK2CMD. Jedná se o ovládání programátoru příkazovým řádkem. Existuje PK2CMD i pro příkazovou řádku pro MS windows. Nelze použít MS DOS. Ten nemá podporu USB.
4.1. Použití programátoru v programu PICkit 2 Náš programátor se po připojení k PC nahlásí jako zařízení USB HID. Nyní spustíme program PICkit 2 a můžeme začít programovat. Pokud je připojen cílový procesor, programátor ho pozná a je připraven s ním komunikovat. Klávesovou zkratkou ctr+I vybereme náš hex soubor a tlačítkem „write“ cílový procesor naprogramujeme. Pokud ladíme cílovou aplikaci a potřebujeme často překládat zdrojový program, použijeme tlačítko „Auto Import HEX + Write Device“. Nyní se po každé změně hex souboru, například přeložením zrojového kodu, automaticky naprogramuje procesor, aniž bychom museli někde něco odkliknout nebo spustit. V programu PICkit 2, můžeme volbou „Tools/UART tool...“ použít náš programátor jako jednoduchý převodník USB – RS232. Dále volbou „Tools/Logic tool...“ lze programátor přepnout do režimu „logic I/O“ nebo „analyzer“. V těchto režimech lze sledovat logické úrovně třeba naší laděné cílové aplikace. Další možnosti jsou popsány v nápovědě a v samotném dokumentu PICkit2 User Guide. Poznamenám, že po nainstalování lze v textovém souboru „PICkit 2 Readme.txt“ rychle najít co lze naprogramovat, jsou tam uvedeny i paměti eeprom a další.
4.2. Použití s programem PK2CMD Jedná se o požití programátoru s příkazovým řádkem. Jak v Linuxu, tak v MS windows. Příkaz PK2CMD /? Zobrazí nápovědu. V linuxu můžeme místo lomítka „/“ použít mínus „-“.
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
9 / 10
PICprogUSB02A
MLAB
Příkaz PK2CMD /PPIC16F88 /FPROGRAM.HEX /M /A3.3 naprogramuje náš zvolený procesor PIC16F88 hex souborem PROGRAM.HEX. /M znamená smazání a naprogramování, /A3.3 nastaví „tgt power“ na 3.3V. Další možnosti jsou uvedeny v dokumentu „Readme For PK2CMD.txt“, nebo právě v nápovědě.
PICPROGUSB02A.doc / / Jakub Kákona / http://www.mlab.cz
10 / 10