PDF verze

Transkript

PDF verze
MLAB
PICICD01B
In Circuit Debugger pro procesory PIC
Milan Horkel
Modul PICICD je jednoduchý programátor a ICD pro procesory PIC
firmy MICROCHIP. Modul je kompatibilní s MPLAB™ ICD firmy
MICROCHIP a je jej také možno použít s překladačem PCW firmy
CCS. Umožňuje programování zapájených procesorů PIC,
krokování programů, nastavování BreakPointu a čtení a zápis z a do
vnitřních pamětí laděného procesoru PIC.
1. Technické údaje
Parametr
Hodnota
Poznámka
Napájení
2.0 až 5.5V
Napájí se z cílového systému
Spotřeba
Max. cca50mA
Interface
RS232 (9600Bd až 115200Bd)
Kabel 1:1 DB9 (prodlužovací)
Kompatibilita
MPLAB™ ICD
MPLAB 5.x (řada PIC16F)
CCS PCW 3.x (řada PIC16F a PIC18F)
Rozměry
65x50x20mm
Výška nad nosnou deskou
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
1 / 11
MLAB
PICICD01B
2. Popis konstrukce
2.1. Úvodem
Konstrukce modulu přímo vychází z MPLAB™ ICD firmy MICROCHIP tak, jak je popsán
v dokumentu DS51184 a s dodatkem v dokumentu ETN#21. Podle informací nalezených na WWW
má původní konstrukce potíže s generováním programovacího napětí, proto byla tato část
modifikována tak, aby bylo zajištěno správné programovací napětí v plném rozmezí dovolených
napájecích napětí modulu.
2.2. Zapojení modulu
Modul ICD je napájen z cílového systému (prostřednictvím ISP konektoru). Napájecí napětí může
být v rozsahu 2V až 5V. Pokud nemá cílové zařízení vlastní zdroj, je možné napájení přivádět
prostřednictvím konektoru J4. Programovací napětí (cca. 12.7V) si ICD vyrábí sám pomocí měniče.
Základem ICD je procesor U1 PIC16LF876, který komunikuje s počítačem PC prostřednictvím
sériové linky a řídí obvody pro programování procesorů prostřednictvím ISP konektoru. Samotný
procesor se poprvé programuje prostřednictvím jeho ISP konektoru J3, další přeprogramování si již
procesor provádí sám. Může se ale stát, že uživatel nahraje do procesoru nesprávný firmware a pak
je třeba použít opět vnějšího programátoru na přeprogramování.
VDD
VDD
2
C1
100nF
2
1
R1
22K
RA0
RA1
RA2
RA3
VDD TEST
VPP TEST
PGC IN
VREF IN
RA5
PGD IN
RC0
RC1
RC2
RC3
PGM
VPP
VPP
PGC
OUT
ON
GEN
OUT
1
U1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PIC
MCLR#/VPP
RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4/SS#
GND
OSC1/CLKIN
OSC2/CLKOUT
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
PGD/RB7
PGC/RB6
RB5
RB4
PGM/RB3
RB2
RB1
INT/RB0
VDD
GND
DT/RX/RC7
CK/TX/RC6
SDO/RC5
SDA/SDI/RC4
28
27
26
25
24
23
22
21
20
19
18
17
16
15
CTS
RTS
RB5
RB4
LED
PGM OUT
RB2
RB1
RX
TX
RC5
RC4
RESET
PGD OUT
1
2
R4
100
1
2
1
C3
22pF
R3
100
VDD
1
2
3
2
C2
22pF
2
R2
100
1
1
X1
3.6864MHz
A
B
2
PIC16LF876-04/SO
5
6
MCLR
8
ICD PROCESSOR
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
J3
PGC
PGD
VDD
GND
MCLR#/VPP
PGM
PIC_ISP_ICD
PIC_ISP_ICD
2 / 11
MLAB
PICICD01B
Komunikace s počítačem PC zajišťuje obvod U2 MAX232, který převádí napěťové úrovně mezi
TTL a RS232. Pokud se provozuje ICD s napájecím napětím menším než asi 4V je třeba ověřit
maximální komunikační rychlost, která ještě bude správně pracovat. Za příznivých podmínek může
fungovat rychlost 115200Bd i při napájecím napětí 2V.
VDD
1
1
VCC
U2
C5
C1+
100nF
3
C6
2
1
100nF
5
11
10
12
9
2
2
C4
100nF
C7
100nF
1
1
C8
100nF
M-
C2+
6
2
REQUIRES RS232
CABLE 1:1
DB9F-DB9M
1
C2-
R5
100
T1IN
T2IN
R1OUT
R2OUT
15
RB5
TX
RX
RB4
4
M+
C1-
GND
2
16
2
T1OUT
T2OUT
R1IN
R2IN
14
7
13
8
1
2
R6
100
1
MAX232SMD
2
R7
100
1
2
R8
100
1
D2
1N4148SMD
C
11
10
DB9F_90
R9
1k
1
2
C
MCLR
A
2
J1
1
6
2
7
3
8
4
9
5
D1
1N4148SMD
A
RS232 INTERFACE
Cílové zařízení se připojuje prostřednictvím ISP konektoru J2. Pokud se použije funkce monitoru
použije se i vývod označený PGM, jinak může zůstat volný. ICD je obvykle napájen z cílového
systému prostřednictvím programovacího konektoru. Zenerova dioda D10 je ochrana před přepětím
a přepólováním.
Zelená LED dioda D8 slouží současně jako indikační a jako zdroj referenčního napětí pro hrubé
měření napájecího napětí. Přesnost je pochybná ale programové vybavení s tímto řešením počítá.
Zdroj programovacího napětí získává napětí v měniči s tranzistorem Q1, který je řízen z PWM
výstupu procesoru U1. Obvod měniče byl modifikován tak, aby poskytoval stabilní napětí +16V na
vstupu stabilizátoru U3 v plném rozmezí napájení ICD. Byla zmenšena indukčnost cívky L1 čímž
byl zvýšen výkon měniče. Byla doplněna zpětná vazba Zenerovou diodou D4/D3 mezi kolektor a
bázi tranzistoru, tím je omezeno generované napětí měniče právě na +16V. Dále byla změněna
vazba báze tranzistoru Q1 s procesorem na střídavou vazbu aby nemohlo dojít k fatálnímu stavu
zaseknutí procesoru U1 v okamžiku, kdy je na PWM výstupu stav H (pak by byl Q1 sepnutý a
zkratoval by napájení a procesor by nebyl schopen provést RESET a mohl by Q1 nebo L1 shořet).
Za měničem následuje standardní lineární stabilizátor s U3 podepřený diodou D7 tak, aby výsledné
napětí za stabilizátorem bylo cca. +12.7V.
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
3 / 11
MLAB
PICICD01B
VDD
JUMP2X3
2
2
VDD
2
2
2
1
RC4
1
2
3
2
5
6
VPP
8
TARGET ISP
R13
330
1
RB2
J2
2
PGC
PGD
VDD
RA3
A
R32
330
R12
100
D8
LED3mm
GND
MCLR#/VPP
C
1
RA5
C
R31
10k
D10
BZV55C5.6SMD
2
1
RC3
C14
47uF/25V
1
R30
330
VDD
C
1
RA2
R29
10k
2
4
6
A
1
RC0
R28
330
1
3
5
A
1
RB1
R27
10k
VDD
J4
PGM
PIC_ISP_ICD
PIC_ISP_ICD
VREF SOURCE
VDD
2
1
1
C10
100nF
L1
100uH
1
+13V
C13
100nF
2
1
C12
100nF
1
2
3
6
7
C
C11
47uF/25V
OUT
GND
GND
GND
GND
IN
2
D5
BAT48SMD
U3
LM78L12M_SO8
8
D7
1N4148SMD
C
A
1
R11
10k
Q1
BC817-25SMD
A
2
C
2 1
D6
1N4148SMD
+16V
C
E
1
D3
BZV55C16SMD
B
2
RC2
R10
1k
C
C9
100nF
A
A
2
D4
1N4148SMD
CC
A
A
POWER SOURCE
Posledním obvodem je obvod pro spínání programovacího napětí a aktivaci signálu RESET.
Tranzistory Q2 a Q3 spínají VPP (cca. +12.7V) a tranzistor Q4 aktivuje RESET. Odpory R18 a R21
jsou ochranné, odpor R22 a dioda D9 zajišťují stav H na vývodu #MCLR cílového systému.
Odporový dělič R23/R24 slouží k měření (kontrole) velikost napětí VPP.
Odporový dělič R25/R26 slouží k měření napájecího napětí.
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
4 / 11
MLAB
PICICD01B
A
VDD
1C
D9
1N4148SMD
2
2
2
1
1
2
R26
10k
1
RA1
RA0
R20
10k
Q4
BC817-25SMD
R23
1k
1
1
1
VPP SWITCH
R25
4k7
1
B
2
C
2
2
RC5
1
E
R15
10k
Q2
BC817-25SMD
2
B
E
2
2
RC1
R19
10k
C
R14
10k
R24
10k
R21
100
1
R16
10k
1
VPP
2
2
1
R17
10k
1
B
+13V
R22
4k7
R18
33
2
Q3
BC807-25SMD
E
C
RESET SWITCH
TEST VOLTAGE
2.3. Mechanická konstrukce
Modul je proveden standardním způsobem. V rozích má šrouby a sloupky pro připevnění na nosnou
desku.
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
5 / 11
MLAB
PICICD01B
3. Osazení a oživení
3.1. Osazení
Zkontrolujte zejména orientaci U1.
Odpory SMD
R18
33
R2, R3, R4, R5,
R6, R7, R8, R12,
R21
100
R13, R28, R30,
R32
330
R9, R10, R23
1k
R22, R25
4k7
R11, R14,R15,
R16, R17, R19,
R20, R24, R26,
R27, R29, R31
10k
R1
22K
Kondenzátory keramické SMD
C2, C3
22pF
C1, C4, C5, C6,
C7, C8, C9, C10,
C12, C13
100nF
Kondenzátory elektrolytické drátové
C11, C14
47uF/25V
Tlumivky axiální
L1
330uH
Krystaly
X1
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
3.6864MHz
6 / 11
MLAB
PICICD01B
Diody SMD
D1, D2, D4, D6,
D7, D9
1N4148SMD
D5
BAT48SMD
D10
BZV55C5.6SMD
D3
BZV55C16SMD
Diody LED
D8
LED3mm zelená
Tranzistory SMD
Q1, Q2, Q4
BC817-25SMD
Q3
BC807-25SMD
Integrované obvody
U1
PIC16LF876-04/SO
U2
MAX232SMD
U3
LM78L12M_SO8
Mechanické součástky
J1
RS232DB9M
J2, J3
JUMP 8
J4
JUMP 2x3
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
7 / 11
PICICD01B
MLAB
3.2. Oživení
Do procesoru U1 je třeba naprogramovat firmware. Vhodnými kandidáty jsou firmwary jednak
firmy MICROCHIP (z balíku MPLAB verze 5.x) a dále firmwary firmy CCS (z balíku překladače
PCW nebo ICS). Je třeba dát pozor na to, který firmware použít. Tento hardware je kompatibilní
s ICD firmy MICROCHIP a má procesor PIC16LF876 a krystal 3.6864MHz.
Kabel RS232 je zapojen 1:1 (tedy odpovídající si piny jsou spojeny, jedná se o prodlužovací kabel).
Zařízení je také možno připojit přímo na USB-RS232 adaptér.
3.2.1. Oživení pro MPLAB firmy MICROCHIP
Do procesoru U1 se externím programátorem naprogramuje firmware ze souboru MPL876.HEX
z instalačního adresáře balíku MICROCHIP MPLAB verze 5.x. Firmware umožňuje komunikaci
jen rychlostí 19200Bd a 57600Bd.
Pokud je v ICD firmware pro PCW může se též použít program ICD do firmy CCS (není pak
potřeba použít externí programátor).
3.2.2. Oživení pro PCW firmy CCS
Nejsnazší je naprogramovat do U1 externím programátorem zavaděč, který se nachází v instalačním
adresáři překladače PCW (stačí i demoverze) v souboru BOOLOAD.HEX. Pak je již ICD funkční a
při prvním použití v programu PCW nám program nabídne provedení aktualizace firmwaru.
K aktualizaci již není potřeba externí programátor. Místo zavaděče může být naprogramován i
firmware pro MPLAB.
Pokud nám program PCW nenabídne aktualizaci firmwaru, lze aktualizaci provést také
samostatným programem pro ovládání ICD, který se jmenuje ICD a lze jej volně stáhnout ze
stránek firmy CCS.
Při aktualizaci firmwaru vybereme variantu MICROCHIP MPLAB ICD a variantu firmwaru pro
programování požadované řady procesorů PIC (PIC16F a PIC18F mají samostatné varianty
firmwaru).
V případě potřeby je možné nahrát do ICD firmware pro MPLAB™ ICD (soubor MPL876.HEX
z instalačního adresáře balíku MPLAB verze 5.x).
Pokud do ICD nahrajeme chybnou verzi firmwaru (například firmware pro jinou frekvenci krystalu)
nezbývá než opět použít externí programátor a přehrát firmware U1 z vnějšku.
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
8 / 11
PICICD01B
MLAB
Po výměně krystalu je možné použít i firmware pro kmitočet 20MHz ale pak ICD nebude pracovat
při sníženém napájecím napětí. V takovém případě nahráváme firmware pro ICD-S pro 20MHz a
ICD nebude možné použít s programem MPLAB.
3.2.3. Kontrola
Po naprogramování firmwaru je vhodné zkontrolovat funkčnost ICD s reálným procesorem a zkusit
krokovat jednoduchou aplikaci v cílovém procesoru. V programu MPLAB je vhodné rovněž
zkontrolovat, zda ICD správně reportuje velikost napájecího a programovacího napětí.
Závěrem je vhodné zkontrolovat, zda měnič vyrábí správné programovací napětí. Kontroluje se
napětí na vodiči +16V zda má +16V (vývod 8 stabilizátoru U3). Toto napětí se negeneruje trvale ale
generuje se například během programování.
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
9 / 11
PICICD01B
MLAB
4. Programové vybavení
Programové vybavení za nás napsaly firmy MICROCHIP a CCS.
4.1. Balík MPLAB firmy MICROCHIP
http://www.microchip.com
Firma MICROCHIP dodává ucelený programový balík MPLAB pro práci s procesory PIC. Jedná se
o integrované prostředí, překladač assembleru, simulátor procesorů PIC a ovládání několika druhů
programátorů a HW debuggerů. Zde popisovaný ICD je podporovaný pouze ve starší verzi MPLAB
5.x. MPLAB je zdarma ke stažení ze stránek výrobce a z mnoha dalších míst.
Aby ICD fungoval s programem MPLAB musí do něho být nahrán firmware pro MPLAB, který je
v souboru MPL876.HEX.
4.2. Balík PCW firmy CCS
http://www.ccsinfo.com
Firma CCS dodává komerční balík PCW, který obsahuje překladač jazyka C pro procesory PIC,
integrované prostředí (Windows nebo Linux) a přímo podporuje ladění programů prostřednictvím
několika druhů ICD. Od balíku PCW je možné si stáhnout demoverzi na vyzkoušení, která je
zdarma a podporuje jen několik procesorů PIC s omezením délky přeloženého programu. Jinak je
demoverze plně funkční a funguje v ní i práce s ICD.
Poměr cena/výkon ostré verze překladače je velmi příznivá, protože tvůrci prostředí odvedli velký
kus práce zejména na podprogramech pro ovládání periferií procesorů PIC. Kvalita generovaného
kódu není sice oslnivá (překladač samotný stojí cca 100$) ale využití paměti RAM je vynikající. To
co by se programovalo v assembleru hodiny se zde programuje minuty až desítky minut.
Kromě integrovaného prostředí je možné ještě stáhnout program ICD, který slouží pouze pro
ovládání ICD a jeho aktualizaci (výměna firmwaru, test komunikace a podobně).
Hardwarová podpora ICD procesorů PIC16F je popsána v dokumentu MICROCHIP DS51241. U
starších procesorů bez této podpory lze ICD použít pouze pro programování jejich obsahu ale ne
pro krokování běhu programu. Podpora ICD je k dispozici u všech novějších procesorů PIC.
HW podpora ICD zahrnuje hardware, který umožňuje provádět tyto ladící zásahy:
•
Krokovat program po instrukcích
•
Spustit program s nastavenou jednou zarážkou (BreakPoint registr je jen 1)
•
Zastavit běžící program
Vše ostatní již zajišťuje kousek programu, který se musí přidat k cílové aplikaci (zabere pár buněk
paměti RAM, řádově dvě stovky instrukcí a jednu úroveň zásobníku). Přidání tohoto obslužného
programu do aplikace zajišťuje překladač sám jakmile zvolíme ladění pomocí ICD. Na první adrese
programu musí být instrukce NOP.
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
10 / 11
PICICD01B
MLAB
Aby ICD fungoval, musí v něm být nahraný firmware. Ovládací programy firmy CCS dovedou
komunikovat jak s původním firmwarem pro MPLAB firmy MICROCHIP tak i s firmwary pro
PCW firmy CCS. Pokud program zjistí, že firmware není správný (různé řady cílových procesorů
vyžadují různé firmwary v ICD) provede jeho aktualizaci.
PICICD01B.doc / 2005-12-28 / miho / http://www.mlab.cz
11 / 11

Podobné dokumenty

PDF verze

PDF verze 2.2.1. Procesor a obvody jeho napájení Srdcem zvonku je procesor U1. Časování je řízeno krystalem X1. Aby bylo možno procesor naprogramovat přímo v zapojení, je zde programovací konektor J6, který ...

Více

Převodníky linek

Převodníky linek na vedení. V praxi však nejsou obvykle používány vysoké rychlosti přenosu (typické jsou 9.6 kBd nebo 19.2 kBd) a ani vedení nebývají správně provedena. Zakončení pak ztrácí smysl a jen snižuje úrov...

Více

hf tramp cw qrp trx hf tramp

hf tramp cw qrp trx hf tramp správnou funkci potřebuje, aby jeho vstup a především výstup byl zatížen reálnou impedancí 50 ohmů, pro kterou byl navržen, a to v širokém rozsahu kmitočtů. Tuto podmínku nám též pomáhá splnit dipl...

Více

Rádio NIVEA II

Rádio NIVEA II Vysílač máme hotový a můžeme se pustit do osazování obvodů přijímače. Osadíme kondenzátor C11a indukčnost L3, která tvoří vstupní pásmovou propust. Dále pak omezovací diody D3 a D4, které omezují p...

Více

do vstupu PA 1kW - OK1AMF

do vstupu PA 1kW - OK1AMF pálenky) z předem vyleštěného Cu drátu průměru 2,5mm (drát průměru 3mm jsem neměl a v Kovohutích Čelákovice byla nejslabší trubička prům. 4mm). Jednotlivé závity jsem roztáhl tak, aby se při zavěše...

Více

Modul pro práci s procesory ARM rady STM32

Modul pro práci s procesory ARM rady STM32 Modul pro práci s procesory ARM řady STM32 Jakub Kákona, Miroslav Janás, [email protected] 3. července 2013 Abstrakt

Více

součástky

součástky 2N3904, 2N3906, 4069, 74ABT, 74ACT, 74ALB, 74ALVC, 74ALVT, 74AUC, 74AVC, 74C, 74HC, 74HC132, 74HC164, 74HCT, 74HCU, 74HLL, 74LCX, 74LV, 74LVC, 74LVQ, 74LVT, 74LVX, 7660, 7805, 7815, 78L05, 78T05, 7...

Více

Elektronické hodiny - SPŠ sdělovací techniky

Elektronické hodiny - SPŠ sdělovací techniky RA0/AN0 RA1/AN1 RA2/AN2/Vref RA3/AN3/CMP1 RA4/TOCKI/CMP2 RA5/MCLR/THV RA6/OSC2/_CLKOUT RA7/OSC1/CLKIN

Více

Osmibitové mikrořadiče Microchip

Osmibitové mikrořadiče Microchip Do zásobníku je ukládán obsah čítače programu PC jako návratová adresa při instrukci call, obsahem zásobníku je naplněn čítač programu při instrukcích return , retfie a retlw. Do zásobníku je možno...

Více