Mikroprocesorová
jednotka P84-CPU
Copyright
(c) 2000 Ing. Miroslav Němeček
Gemtree Software,
s.r.o.
www.gemtree.eu
Charakteristika
Mikroprocesorová jednotka P84-CPU
je hlavním modulem stavebnice P84. Srdcem
modulu je jednočipový mikrořadič (neboli procesor) PIC16F84
nebo pinově kompatibilní (PIC16F83, PIC16C84,
PIC16F627, PIC16F628).
Nejdůležitějšími charakterovými rysy modulu jsou: nízká
cena, snadná obsluha, všestrannost. Modul umožňuje snadné a
rychlé programování procesoru "na dálku" bez
nutnosti manipulace s modulem. Počet přeprogramování je
prakticky neomezen. Modul je po naprogramování schopen ihned
pracovat s periferií, která je k němu připojena pomocí
univerzálního konektoru CANNON DB-15. Snadná a rychlá je i
výměna periferie. Modul může být napájen z externího
zdroje stejnosměrného či střídavého napětí 9 V (možný
rozsah 4.5 až 20 V), při použití periferií s malým odběrem
proudu postačí interní napájení přímo z portu počítače
COM. Pro všechny tyto své vlastnosti je modul velmi vhodný jak
pro školy k výuce a v laboratorních cvičeních, tak i pro
amatéry k seznámení se s technikou jednočipových
počítačů. Dobře využitelný je i k profesionálnímu
použití při vývoji jednočipových aplikací.
Schéma
Napájení procesorové jednotky i periferií je zajištěno
stabilizátorem IC1 (L7805). Napájecí proud je
do stabilizátoru přiváděn buď z externího zdroje přes
diodový můstek D1 až D4 nebo
z COM portu počítače diodou D5. Kondenzátory
C2 a C3 jsou blokovací. Při
malých odběrech proudu periferiemi (řádově jednotky mA) lze
vystačit s napájením z COM portu počítače. Při větších
odběrech proudu může být jednotka napájena z externího
zdroje stejnosměrného nebo střídavého napětí 9 V.
Většina procesorů pracuje dobře ještě při napájecím
napěti asi 4.5V (na procesoru je kolem 2.2V). Horní hranice
napájecího napětí je asi 20V. Bude-li použito vyšší
napětí než 9V, je potřeba zkontrolovat, zda při větších
odběrech proudu periferiemi nedochází k přehřívání
stabilizátoru. Procesorovou jednotku je možné napájet též z
konektoru portů, např. má-li některá periferní jednotka
vlastní napájení.
Proud z výstupních portů procesoru je omezen odpory R10 až R22. K výstupním portům je možné přímo připojit svítivé diody LED (bez nutnosti používat omezovací odpory) a to jak proti napětí +5V, tak i proti zemi (port A4 pouze proti +5V). Porty B6 a B7 jsou současně využívány jako programovací vstupy procesoru. Během programování by neměly být zatíženy zátěží menší než 100 kiloohmů. Periferie zatěžující tyto signály by měly být během programování odpojovány.
Signál DTR z konektoru COMx aktivuje mód programování procesoru. Spolu se signálem RTS určují 3 stavy procesoru: RESET (oba signály jsou vypnuty), běžný provoz (DTR je vypnut, RTS zapnut) a programování (DTR i RTS jsou zapnuty). Odpor R3 zajišťuje běžný provoz procesoru v případě, že modul je odpojen od počítače. Signálem TxD jsou během programování zapisována data do procesoru. Od signálu jsou přes kondenzátor C7 odvozovány hodinové impulsy. Tranzistory T2 a T3 zajišťují převod výstupního signálu z procesoru na úrovně RS-232. Při normálním provozu je možné pomocí signálů TxD, RxD a RB7 komunikovat mezi procesorem a počítačem v poloduplexním režimu. Upozornění: Modul nelze používat s COM porty, jejichž výstupní napětí je menší než 11.5 V (některé notebooky používají 9V nebo i méně).
Plošný
spoj
Na dalším obrázku vidíte zmenšený obraz plošného spoje.
Plošný spoj s plným rozlišením je dostupný zde na tomto odkazu (formát BMP, sbaleno ZIP na 35 KB) nebo
kliknete-li na obrázek (formát GIF). Plošný spoj je možné
vytisknout s rozlišením 600 DPI na inkoustové
nebo laserové tiskárně na průhlednou fólii a použít jako
fotopředlohu pro osvícení desky s fotocitlivou vrstvou
(horským sluncem 8 minut ze vzdálenosti 30 cm, vyvolání 1%
roztokem hydroxidu draselného KOH - "louh draselný",
leptání v roztoku chloridu železitého - "zahlubovač na
měď").
Všechny díry vyvrtejte nejdříve vrtákem 0.8 mm. Poté převrtejte díry s větším průměrem podle následujícího obrázku. Po vyvrtání děr začistěte otřepy děr větším vrtákem (lehkým otáčením v ruce). Ořežte lupénkovou pilkou spoj na správnou velikost a okraje zarovnejte pilníkem. Omyjte z desky fotocitlivou vrstvu (lihem nebo benzinem), měděné plochy očistěte měkkou gumou a nalakujte plošný spoj pájecím lakem (roztok kalafuny v lihu).
Osazení
K osazení desky potřebujete tyto součástky a konstrukční
prvky:
1 x stabilizátor 7805
(pozitivní, pouzdro TO220)
1 x procesor PIC16F84-04/P (nebo PIC16F628-04/P)
1 x krystal 4MHz nízký U4
4 x dioda 1N4007
5 x dioda 1N4148
1 x LED dioda L934LSRD
2 x tranzistor BC548
1 x tranzistor BC558
1 x elektrolytický kondenzátor 100µF/25V
2 x keramický kondenzátor 100nF (rozteč 5 mm)
2 x keramický kondenzátor 560pF (rozteč 5 mm)
2 x keramický kondenzátor 22pF (rozteč 5 mm)
1 x svitkový kondenzátor 1 nF (typ TC351)
13 x odpor 330
1 x odpor 2k7
1 x odpor 5k6
1 x odpor 6k8
2 x odpor 10k
3 x odpor 22k
2 x odpor 56k
1 x odpor 150k
1 x odpor 470k
1 x patice 18 DIL (standardní)
1 x konektor CANNON 9 pinů zásuvka 90 (do
plošného spoje)
1 x konektor CANNON 15 pinů zásuvka 90 (do
plošného spoje)
1 x napájecí konektor 2.1 mm vidlice do
plošného spoje K375A (NAZ2.1 V P)
1 x chladič DO2 (13x19x9 23K/W TO-220)
1 x šroubek M3x8
1 x matka M3
2 x podložka M3
1 x krabička U-SEB4 (dvoudílná plastová,
vnější rozměry 90 x 60 x 27)
Osazování začněte konektory. Nejchoulostivější součástkou je napájecí konektor. Jeho vývody jsou poniklované a je proto nutno k pájení použít přípravek k pájení niklu nebo kontakty před pájením obrousit a pocínovat. Pozor - konektor je z lehce tavitelné umělé hmoty a je proto nutno pájet krátce. Jako další osaďte konektory CANNON. Důkladně je zamáčkněte do spoje a přiletujte nejdříve zemnící vodiče a až potom všechny ostatní piny. Dále připevněte stabilizátor s chladičem, před montáží pocínujte plošný spoj v okolí díry pro šroubek jako dosedací místo podložky pod matkou. Nyní můžete osazovat ostatní součástky. Pozor na správnou polaritu elektrolytického kondenzátoru (kladný pól má delší vodič a jeho záporný pól je na pouzdru označen proužkem) a diod (katoda je označena proužkem na pouzdru). Při montáži tranzistorů použijte orientaci podle obrázku. LED diodu ponechejte asi 10 mm nad povrchem spoje. Anoda LED diody (kladný pól) je označena delším vývodem. Pro procesor osaďte pouze patici, samotný procesor vložte do patice až po kompletním osazení celé jednotky. Pozor na správnou orientaci patice i procesoru (značka je na straně vývodů 1 a 18). U součástek, u kterých nezáleží na orientaci, dodržujte orientaci tak, aby jejich popisy byly čitelné při pohledu zdola nebo zleva. Odpory při osazování kontrolujte ohmetrem. Barevné proužky nemusí být dobře rozpoznatelné a mohlo by tak dojít snadno k záměně odporů. Nebezpečí záměny hrozí především u odporů 5k6 a 56k. Krystalu ponechejte delší vývody a pájejte jej krátce, při přehřátí by mohlo dojít k jeho poškození.
Tabulka barevného značení odporů:
barva | 1. číslice | 2. číslice | 3. číslice | počet nul | |
---|---|---|---|---|---|
černá | 0 | 0 | 0 | 0 (x 1) | |
hnědá | 1 | 1 | 1 | 1 (x 10) | |
červená | 2 | 2 | 2 | 2 (x 100) | |
oranžová | 3 | 3 | 3 | 3 (x 1k) | |
žlutá | 4 | 4 | 4 | 4 (x 10k) | |
zelená | 5 | 5 | 5 | 5 (x 100k) | |
modrá | 6 | 6 | 6 | 6 (x 1M) | |
fialová | 7 | 7 | 7 | 7 (x 10M) | |
šedá | 8 | 8 | 8 | 8 (x 100M) | |
bílá | 9 | 9 | 9 | 9 (x 1G) |
Oživení
Jednotku není potřeba nijak nastavovat a měla by při
správném osazení pracovat na první zapojení. Připojte k
jednotce univerzální periferní modul P84-UNI nebo připojte LED diodu mezi vývody A0
(katoda) a +5V (anoda) konektoru portů. Jednotku připojte
prodlužovacím kabelem CANNON 9 pinů (tzv. pin-to-pin) k portu
COM počítače a spusťte program PICDEV. Kabel musí propojovat
všech použitých 7 signálů (pozor - na rozdíl od
komunikačních kabelů se v prodlužovacím kabelu žádné
signály nekříží), při vlastní výrobě postačí kabel pro
5 signálů, signály DSR+RxD a CTS+TxD je možné propojit v
konektoru u počítače. Při zapnutí automatické detekce by
měla být jednotka nalezena na některém z portů, po
otevření a odeslání demonstračního programu
"DEMO.ASM" by se měla LED dioda rozblikat.
config | WDT | ; je zapnut časovač WDT | |
clrw | ; W <- 0 | ||
tris | 5 | ; nastavení portu A jako výstup | |
tris | 6 | ; nastavení portu B jako výstup | |
movlw | 8+2 | ; předdělička k WDT, dělicí poměr 1/4 | |
option | ; nastavení registru OPTION | ||
Loop | sleep | ; čekání na impuls WDT | |
incf | 5,1 | ; inkrementace portu A | |
decf | 6,1 | ; dekrementace portu B | |
goto | Loop | ; další čekání |
V případě problémů zkontrolujte ještě jednou součástky a pájená místa (zda není zkrat mezi sousedními pájecími body; plošný spoj nejdříve omyjte lihem). Dále zkuste postupovat podle následujících bodů.
Port není
automaticky detekován:
Automatická detekce probíhá na základě propojení
signálů TxD a CTS. Zkontrolujte, zda propojovací kabel opravdu
přenáší oba signály (či zda jsou signály propojeny,
jedná-li se o kabel vlastní výroby). Při hledání závady
můžete využít program TERMINAL. Zvolte požadovaný port a
nejmenší přenosovou rychlost (110 Baud). Náhodně tiskněte
různé klávesy nebo podržte některou znakovou klávesu (pro
rychlé generování znaků), kontrolka CTS by měla poblikávat.
Důvodem potíží může být také časové zatížení
počítače jinými programy (ukončete všechny ostatní
aplikace). Někdy může být port nepřístupný po použití
jiným programem - zkuste resetovat počítač.
Při programování
hlášeno "Chyba verifikace zapisovaných dat"
Jako první krok při problémech by mělo být ukončení všech
ostatních spuštěných aplikací. Program PicDev zkuste
ukončit a spustit znovu (při svém spuštění detekuje
rychlost počítače, vlivem náhodných dějů v počítači by
mohla být detekce provedena mylně). Účinné může být též
resetování počítače.
Programovaná data jsou během programování průběžně kontrolována. K tomu slouží přepínač "Verifikace", který je vhodné ponechat trvale zapnutý. Při hlášení chyby verifikace zkuste programovat s vypnutou verifikací. Rozeběhne-li se program v procesoru správně, je zřejmé, že je problém pouze ve zpětné kontrole dat. Spusťte program TERMINAL, nastavte správný port, nejmenší přenosovou rychlost (110 Baud) a zapněte signál RTS. Držíte-li některou znakovou klávesu, musí kontrolka DSR poblikávat stejně jako CTS. Není-li tomu tak, zkuste nejdříve v jednotce propojit signály DSR+CTS (RxD+TxD), čímž ověříte, zda není problém v kabelu. Dále zkontrolujte voltmetrem napětí signálu RTS (mělo by být alespoň +11.5V) a pokračujte kontrolou tranzistorů T2 a T3. Přitom je vhodné vyjmout procesor z objímky, mohl by blokovat signál RB7.
Problikává-li kontrolka DSR shodně s CTS (a i při vyšší přenosové rychlosti se zapisované znaky přenáší správně zpět, tj. znaky se zdvojují), zkontrolujte napětí na vývodu 4 procesoru v závislosti na signálech RTS a DTR (opět s pomocí programu TERMINAL). Je-li signál DTR zapnut, musí být na vývodu 11 až 12V. Je-li napětí menší než 11 V, jedná se o port neumožňující programování (některé notebooky). Je-li RTS zapnut a DTR vypnut, musí být na vývodu 4 napětí 4 až 6 V. Při nízkém napětí zkuste použít externí zdroj. Jsou-li oba signály vypnuté, musí být na vývodu 4 asi -0.5V. Zkontrolujte též napětí na procesoru (mezi vývody 5 a 14), které by mělo být 4 až 6 V a nemělo by pod dolní hranici klesat ani během pokusu o programování.
Při dalším hledání závady vyjměte procesor z patice a proměřte v patici ohmetrem vývody RB6 a RB7, zda nejsou zkratovány či přerušeny. Proměřte součástky v obvodu generování hodinových impulsů (R8, R9, D7, D8, ...). Zdá-li se být vše v pořádku, mohlo by se jednat o mimotolerantní hodnoty součástek. Nahraďte odpor R8 odporovým trimrem o rozsahu několik desítek kiloohmů. Zkusmo nastavujte různé hodnoty odporu a zkoušejte funkci. Nedaří-li se problém vyřešit ani tímto způsobem, zkuste ještě použít jiný procesor. Nakonec bude nutno použít osciloskop. Spusťte programování s vypnutou verifikací a zkontrolujte osciloskopem na procesoru stabilitu napájení (vývod 14), propojení se zemí (vývod 5), napěťové úrovně na vývodu 4 (+11.5V=programování, +5V=provoz, -0.5V=reset), impulsy na vývodu 12 (nepravidelné obdélníky se šířkou 8 a 17 us) a impulsy na vývodu 13 (exponenciální impulsy s prudkou náběžnou hranou na +4 V a poklesem na +0.8V po dobu 12 us).
Po naprogramování
demonstrační program v procesoru neběží
Zkontrolujte správnost nastavení typu procesoru. Zkontrolujte,
zda programujete se zapnutou verifikací. Program ještě
můžete ověřit zpětným načtením z procesoru. Zkontrolujte
zvolený typ oscilátoru, pro P84-CPU to musí být krystal XT.
Zkontrolujte připojenou testovací LED uzemněním vývodu A0
před odpor 330 ohmů. Svítí-li, zkontrolujte napětí signálu
A0 postupně až k procesoru (zda není přerušen plošný
spoj). Je-li na vývodu 17 procesoru +5V, procesor skutečně
nepracuje. Změřte napětí na jeho vývodech 14 (napájení) a
4 (reset), která mají obě být +5V. Na vývodu 5 (zem) musí
být 0 V. Je-li vše v pořádku, nepracuje oscilátor.
Zkontrolujte připojení krystalu a kondenzátorů C5 a C6, zda
není někde zkrat, přerušení či zda jsou použité správné
součástky (např. namísto 22p je 22n).
Konstrukce
Po oživení jednotky přichází na řadu kompletování. Omyjte
lihem z plošného spoje zbytky kalafuny a pájecího laku a
znovu spoj nalakujte pájecím lakem. Použijte krabičku s
typovým označením U-SEB4. Deska jednotky bude
v krabičce uchycena položením do otvorů pro konektory. Po
kratších stranách vyřízněte otvory pro konektory CANNON.
Otvory nařežte po stranách lupénkovou pilkou, vyštípněte
je kleštěmi, zbytek odřízněte nožem a nakonec zarovnejte
pilníkem. Podobně vyřízněte i otvor pro napájecí konektor.
Deska musí jít vložit do otvorů tak, že horní okraje všech
konektorů jsou v rovině s horním okrajem krabičky. Ve víčku
krabičky vyvrtejte otvor pro LED diodu a odřízněte nožem
osazení víčka v místech konektorů tak, aby bylo možné
víčko na krabičku dobře položit.
Přeji mnoho radosti a potěšení z Vašeho výtvoru
Ing. Miroslav Němeček
domovská stránka: www.gemtree.eu