• No results found

Programátor PICKIT2 + vývojový kit Programmer PICkit2 + developing kit

N/A
N/A
Protected

Academic year: 2022

Share "Programátor PICKIT2 + vývojový kit Programmer PICkit2 + developing kit"

Copied!
53
0
0

Loading.... (view fulltext now)

Full text

(1)

TECHNICKÁ UNIVERZITA V LIBERCI

Fakulta mechatroniky, informatiky a mezioborových studií

Studijní program: B2612 Elektrotechnika a informatika Studijní obor: Elektronické informační a řídicí systémy

Programátor PICKIT2 + vývojový kit Programmer PICkit2 + developing kit

BAKALÁŘSKÁ PRÁCE

Autor: Martin Kánský

Vedoucí práce: Ing. Zbyněk Mader, Ph.D.

V Liberci 2012

(2)

2

Vloţit zadání!!!

(3)

3

Prohlášení

Byl jsem seznámen s tím, ţe na mou bakalářskou práci se plně vztahuje zákon č.

121/2000 Sb., o právu autorském, zejména § 60 – školní dílo.

Beru na vědomí, ţe Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv uţitím mé diplomové práce pro vnitřní potřebu TUL.

Uţiji-li diplomovou práci nebo poskytnu-li licenci k jejímu vyuţití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tomto případě má TUL právo ode mne poţadovat úhradu nákladŧ, které vynaloţila na vytvoření díla, aţ do jejich skutečné výše.

Diplomovou práci jsem vypracoval samostatně s pouţitím uvedené literatury a na základě konzultací s vedoucím bakalářské práce a konzultantem.

Datum

Podpis

(4)

4

Poděkování

Děkuji vedoucímu bakalářské práce Ing. Zbyňku Maderovi, Ph.D. za cenné připomínky a hodnotné rady, které mi při vytváření práce poskytoval. Poděkování zajisté patří i Ing.

Lubomíru Slavíkovi, za umoţnění přístupu do laboratoře pro výrobu elektronických zařízení.

Speciální poděkování patří také mé rodině, která mi byla oporou při mém studiu na Technické univerzitě v Liberci.

(5)

5

Anotace

Tato práce pojednává o klonu programovacího kitu PICKIT2 od firmy Microchip.

Zkraje nás provede oblastí jednočipových monolitických mikrokontrolérŧ a jejich problematikou. Mŧj programovací kit PICKIT2 je zhotoven na ústavu ITE za pomocí dokumentace, kterou poskytl výrobce. Programátor by se dal chápat jako mezičlánek mezi výchozím procesorem a osobním počítačem. Jedná se o generaci programátoru pro 8, 16 a některé 32-bitové mikrokontroléry rodiny PIC. Dále také podporuje DSP procesory a několik pamětí. Pro vývoj desky plošných spojŧ bylo pouţito prostředí Eagle. Samotnou výrobou desky plošných spojŧ jsem se zabýval sám. Do práce jsem vloţil i shrnutí, jak taková výroba desky plošných spojŧ probíhá. Periferií programátoru je vývojový kit VK1 – deska s paticí pro cílený programovaný integrovaný obvod. Vývojová deska je optimalizována pro mikrokontrolér PIC 16F873, do kterého jsem naprogramoval mŧj cílový simulační program. Tato deska komunikuje s programátorem přes rozhraní UART. Pro činnost mého programátoru je třeba i jeho oţivení.

K tomu mi slouţí software distribuovaný firmou Microchip. Firmware pro programátor lze nainstalovat z osobního počítače přes rozhraní USB. Předem je nutný pouze zavaděč, který jsem do mikrokontroléru musel nahrát jiným programátorem. Přesný postup jsem názorně popsal na několika stránkách. K předvedení funkčnosti jsem vytvořil jednoduchý program pro cílený mikrokontrolér. Tento program je simulován v přípravku osazeném LED diodou. Přípravek je spojen s vývojovým kitem VK1, je tedy moţné programovat mikrokontrolér a následně ověřit jeho funkci bez dalších úprav zapojení. Práce dále obsahuje srovnání originálního programátoru distribuovaného výrobcem s mým výrobkem.

(6)

6

Annotation

This document refers about the programming kit PICkit2 clone by Microchip. My job includes properties of single-chip processors and their problematice. My PICkit2 programming kit is designed from documentation by Microchip. It is made in the ITE Institute. This is a generation programmer for 8, 16 and some of 32-bit PIC and DSP processors family. For the development of printed circuit boards was used Eagle environment. I dealt with the actual production of printed circuit boards myself. I have put a summary as it is used for the manufacture of printed circuit boards in this work. Periphery of the programmer's is development kit VK1 – mainboard for the target programmed processor. The development board is optimalizated for PIC 16F873. This board communicates with the programmer via the UART interface. For functionality our Programmer, it must be correctly installed. I used the free software distributed by Microchip. The complete firmware for the programmer can be installed from the PC via USB. Before this, PIC18F2550 requires bootloader for first comminication via USB. I illustraded this on a few pages. Otherwise, our programmer could be seen as a connecting device between the target processor and personal computer. I made a short program for simulation of functionality programmer. My document also includes a comparison of the original programmer distributed by the manufacturer and my product.

(7)

7

Obsah

PROHLÁŠENÍ ... 3

SEZNAM OBRÁZKŮ ... 8

SEZNAM TABULEK ... 9

1 ÚVOD ... 10

2 SEZNÁMENÍ S MIKROKONTROLÉRY ... 11

2.1VNITŘNÍ ARCHITEKTURY MIKROKONTROLÉRŦ ... 11

2.2INSTRUKČNÍ SADY ... 13

2.3BITOVÁ ŠÍŘKA ... 13

2.4PŘERUŠENÍ ... 14

3 VÝVOJOVÉ PROSTŘEDÍ EAGLE ... 15

4 VÝROBA DESKY PLOŠNÝCH SPOJŮ ... 16

4.1NÁVRH SCHÉMATU ... 16

4.2NÁVRH LAYOUTU ... 19

4.3OSVIT ... 20

4.4VYVOLÁNÍ, LEPTÁNÍ ... 20

4.5VRTÁNÍ A PÁJENÍ ... 22

5 PRINCIP ČINNOSTI PROGRAMÁTORU ... 23

6 SLOŢITĚJŠÍ OBVODY PROGRAMÁTORU PICKIT2 ... 24

6.1MIKROKONTROLÉR PIC18F2550 ... 24

6.1.1 Porty procesoru PIC 18F2550 ... 24

6.1.2 Speciální funkční registry PIC 18F2550 ... 25

6.1.3 Organizace paměti ... 26

6.2PAMĚŤ AT24C512 ... 27

6.3FDC6420C,MCP6001U,IRLM6402 ... 28

6.4SEZNAM POUŢITÝCH SOUČÁSTEK ... 29

7 OŢIVENÍ PROGRAMÁTORU ... 30

7.1NAPROGRAMOVÁNÍ PIC18F2550 ... 30

7.2KOMUNIKACE PROGRAMÁTORU PICKIT2 SOSOBNÍM POČÍTAČEM ... 32

7.3KALIBRACE VÝSTUPŦ ... 33

8 VÝVOJOVÝ KIT VK1 ... 36

8.1NÁVRH DESKY ... 36

8.2MIKROKONTROLÉR PIC16F873 ... 38

9 TVORBA APLIKACE A SIMULAČNÍ DESKA ... 39

9.1VÝVOJOVÉ PROSTŘEDÍ MPLABIDE ... 39

9.2SIMULAČNÍ PROGRAM ... 39

9.3SIMULAČNÍ DESTIČKA ... 40

10 DALŠÍ FUNKCE PROGRAMÁTORU ... 41

ZÁVĚR ... 45

SEZNAM POUŢITÉ LITERATURY ... 46

PŘÍLOHY A OBSAH CD ... 47

(8)

8

Seznam obrázků

Obrázek 1: Von Neumannovo schéma ... 11

Obrázek 2: Harvardské schéma ... 12

Obrázek 3: Schéma řadiče přerušení ... 14

Obrázek 4: Eagle – Návrh layoutu ... 15

Obrázek 5: Schéma zapojení - část první ... 17

Obrázek 6: Schéma zapojení - část druhá ... 18

Obrázek 7: Návrh layoutu ... 19

Obrázek 8: Osvětlovací box ... 20

Obrázek 9: Vyvolání ... 21

Obrázek 10: Leptání ... 21

Obrázek 11: Osazená deska ... 22

Obrázek 12: Popis pinŧ mikrokontroléru PIC18F2550 [2] ... 25

Obrázek 13: Popis pinŧ [4] ... 27

Obrázek 14: Vnitřní uspořádání tranzistoru FDC6420C [5] ... 28

Obrázek 15: Zapojení pinŧ [6] Obrázek 16: Neinvertující zapojení OZ [6] ... 29

Obrázek 17: Zapojení tranzistoru IRLML6402 (zdroj: datasheet IRLML6402) [7] ... 29

Obrázek 18: Zapojení pinŧ při programování procesoru ... 30

Obrázek 19: ASIX PRESTO s PIC 18F2550... 31

Obrázek 20: Prostředí UP programátoru PRESTO ... 31

Obrázek 21: Windows nalezl vstupní zařízení ... 32

Obrázek 22: Prostředí programu PICkit2 a jeho jednotlivé části ... 32

Obrázek 23: Oznamovací oblast ... 33

Obrázek 24: Prŧběh instalace operačního systému ... 33

Obrázek 25: Kalibrace napětí Vdd ... 34

Obrázek 26: Ověření napětí Vdd Obrázek 27: Ověření napětí Vpp, MCLR ... 35

Obrázek 28: Ověření funkčnosti programovacích vodičŧ ISPD a ISPC ... 35

Obrázek 29: Schéma zapojení VK1 ... 37

Obrázek 30: Návrh layoutu VK1 ... 37

Obrázek 31: Funkce pinŧ mikrokontroléru PIC 16F873 [8] ... 38

Obrázek 32: Schéma zapojení simulační destičky ... 40

Obrázek 33: Programovatelné vstupy/výstupy ... 41

Obrázek 34: Logický analyzátor ... 42

Obrázek 35: Nastavení zdroje napájení Obrázek 36: Nastavení zdroje napájení ... 43

Obrázek 37: Programátor připraven Obrázek 38: Chybové kódy ... 44

(9)

9

Seznam tabulek

Tabulka 1: Rysy procesoru 18F2550 [2] ... 24

Tabulka 2: Registr STATUS [2] ... 25

Tabulka 3: Registr OSCCON [2] ... 26

Tabulka 4: Význam jednotlivých pinŧ [4] ... 27

Tabulka 5: Základní hodnoty tranzistoru FDC6420C [5] ... 28

(10)

10

1 Úvod

Účelem mé bakalářské práce je navrhnout a zrealizovat programátor pro mikrokontroléry od firmy Microchip. Jak jistě víme, vyuţití jednočipových kontrolérŧ dnes prakticky nalezneme na spoustě míst, ať uţ se jedná o jednodušší aplikační celky (dálkové ovládání, automatická pračka,…), tak pro sloţitější prvky např. v automobilovém prŧmyslu (zařízení komunikující po rozhraní CAN,…). Jádrem těchto elektronických výrobkŧ je mikropočítač. Aby mohl procesor správně komunikovat s okolními prvky, je nutné ho vhodně naprogramovat.

Pro toto programování z části fyzické, je nutné samozřejmě osobního počítače, dále také programátoru. V našem případě se jedná o kopii originálního výrobku od firmy Microchip a to PicKit2™. Tento programátor by bylo velmi sloţité zrealizovat bez dokumentace výrobce.

Aktuálně nabízený programátor od firmy Microchip je model PICkit3. Protoţe je mŧj programátor generačně starší, výrobce poskytl solidní dokumentaci k realizaci mého modelu.

Máme k dispozici firmware pro hlavní procesor i software pro komunikaci s hotovým programátorem. Ač se jedná o předchozí, tedy generačně starší programátor, lze ho stále uplatnit pro mnoho dnes dostupných mikrokontroléru, DSP procesorŧ a pamětí od firmy Microchip. Seznam kompatibilních integrovaných obvodŧ nalezneme v příloze B.

Práce je rozdělena do několika krokŧ. Nejprve pojednává o prostředí mikrokontrolérŧ.

Později se věnuji mému konkrétnímu výrobku. Zabývám se návrhem desky plošných spojŧ a výběrem vhodných součástek pro mé pouţití. Návrh desky probíhal v jedné vrstvě, avšak na určitých místech jsem musel pouţít propojky SMD 0R. Desku jsem si vyráběl sám, s pomocí vybavení TUL. Dovolil jsem si zmínit stručný popis, jak tento proces probíhal. Poté co jsem desku navrhl a zrealizoval, bylo ji nutné proměřit. Po tomto kroku jsem vyvrtal otvory pro patice a konektory, které jsem následně osadil a zapájel společně s ostatními prvky. Deska je osazena převáţně součástkami SMD. Osadil jsem ji těmito součástkami především proto, ţe se v desce nacházejí speciální prvky, které se v jiném pouzdře nevyskytují, a také jsou doporučeny výrobcem.

Komunikace s PC probíhá pomocí rozhraní USB, které je vyvedené na levé straně desky (pohled shora – strana s vodivými cestami). Programátor mŧţe komunikovat s PC plnou rychlostí USB 2.0. To vše díky sério-paralelnímu převodníku integrovaném v hlavním procesoru. Na desce také nalezneme port UART umístěný vpravo. Je to rozhraní, na které budu připojovat další vývojovou desku, a to s výchozím procesorem neboli mým naprogramovaným mikrokontrolérem.

Programátor je také schopen pracovat bez počítače a to pomocí reţimu PICKIT2 TO GO. Potřebuje pouze další napájení a to +5 V. Programátor programuje výchozí procesor po stisku tlačítka. O své činnosti programování nás informuje červená LED. Pro ověření funkčnosti desky je zde aplikován vývojový kit s cíleným mikrokontrolérem 16F873. Do něho lze pomocí mého programátoru uloţit program. Ten je následně simulován, není nutné ţádného přepojování mikrokontroléru a potřeby dalšího napájení. Programátor je dále vybaven funkcí LOG analyzátoru a debuggeru. Těmto funkcím se věnuji v posledních částích mé bakalářské práce.

(11)

11

2 Seznámení s mikrokontroléry

Hlavním dŧvodem, který odstartoval vývoj integrovaných čipŧ (v našem případě mikrokontrolérŧ), byla integrace a úspora místa v elektronickém obvodu [1]. Mikrokontroléry dnes zaujímají velmi dŧleţité místo v moderních elektronických systémech. Pouţití mikrokontrolérŧ velmi zjednodušuje tyto systémy, zvyšuje jejich schopnosti a také díky nim dokáţeme zmenšit výsledný produkt. Dalo by se říci, ţe návrh a realizace elektronických systémŧ patří k základním dovednostem elektronika. Jako prŧkopníka mikrokontrolérŧ ve velkých sériích výroby mŧţeme povaţovat Intel 8051.

Pro začátek bych se dovolil zmínit o určitých pojmech. Mikrokontrolérem je monolitický programovatelný integrovaný obvod obsahující kompletní mikropočítač.

Podmínkou je, ţe musí obsahovat paměť pro data (+ program), aritmeticko-logickou jednotku a řadič popřípadě další vstupně-výstupní obvody. Počítače (mikrokontroléry) bych dle práce s pamětí rozdělil na dvě hlavní části a to s harvardskou a von-Neumannovou strukturou popsané v další kapitole.

2.1 Vnitřní architektury mikrokontrolérů

Základním prvkem von-Neumannovy architektury je, ţe paměť pro data a pro program je společná. Tuto architekturu pouţívají „navenek“ dnešní počítače. Kdyţ vezmeme v potaz, ţe počítač potřebuje zpracovávat více programŧ najednou (multitasking), mŧţe mít více jak jeden procesor a většina zařízení v PC (procesor,…) vlastní další vyrovnávací paměť cache. Zde se tedy jedná o harvardskou architekturu. Von-Neumannova struktura pracuje čistě na sekvenčním (postupném) zpŧsobu zpracování instrukcí. Na svém počátku byla tato architektura vyzdvihována jako převratná díky univerzálnosti koncepce, avšak jedním z problému je rychlost zpracování dat. Program se totiţ musí nejprve celý načíst do paměti z externího media, dále je vykonáván bez moţnosti souběhu více operací současně. Schéma počítače s von Neumannovou architekturou je vyobrazeno na obr. 1. Tenkou čarou jsou znázorněny řídicí signály řadiče, tlustou šipkou toky dat.

Obrázek 1: Von Neumannovo schéma

(12)

12

Druhou pouţívanou architekturou je harvardská. Odstraňuje jisté neduhy předešlého návrhu. O této struktuře se zmíním hlouběji, protoţe mikrokontroléry pouţité v této práci tuto architekturu v sobě skrývají. Hlavním rysem toho typu je, ţe paměť pro data a pro program je rozdělena. Tyto dvě paměti mohou být rŧzného typu, mŧţeme mít rŧznou šířku adresy a dat, časování a kapacitu.

Obvyklá paměť pro program je typu ROM, zaručuje ochranu před přepsáním a je levnější (ve větším počtu programovaných pamětí). V našem programátoru PIC je paměť integrovaná uvnitř mikrokontroléru a jedná se o paměť typu EEPROM. Tato paměť nám umoţňuje pozměnit (aktualizovat) firmware neboli uloţiště určené pro program snadně narozdíl od ROM. Paměť pro data musí být přepisovatelná, tedy RWM (RAM).

Pamětí pro data bývá nejčastěji paměť typu EEPROM, u novějších mikrokontrolérŧ se ale mŧţeme setkat i s rychlejšími paměťmi a to typu FLASH. Tuto paměť vyuţívá i náš mikroprocesor PIC 18F2550, kterým se budu podrobněji zabývat později.

Další výhodou této struktury je především paralelní moţnost zpracování dat. Procesor také mŧţe přistupovat k oběma pamětem naráz. Toto je obrovskou výhodou oproti von Neumannově architektuře, kde zápis dat i čtení programu v jednom okamţiku není moţné.

Názorná ukázka struktury harvardské architektury je vyobrazena na obrázku 2. Tenké čáry zobrazují řídicí sběrnice řadiče, tlusté šipky datové toky. Přerušovaná šipka je pouţita v případě, ţe paměť programu je typu RWM (přepisovatelná).

Obrázek 2: Harvardské schéma

(13)

13

2.2 Instrukční sady

Instrukční sady neboli vnitřní architektury procesorŧ máme dvě hlavní. Prvním typem, o kterém se zmíním, je soubor typu CISC neboli Complex Instruction Set Computer. V překladu to znamená, ţe se jedná o komplexní (celkovou, sloţitou) instrukční sadu. Tato sada obsahuje i velmi sloţité speciální instrukce, které by se dali zjednodušit sice více instrukcemi, zato však universálnějšími. Například násobení, dělení, atd. Většina operací se provádí s akumulátorem.

Instrukcí v sadě CISC bývá mnoho, jsou rŧzně dlouhé a mají rŧznou velikost i dobu vykonání.

Řadič instrukcí má sloţitější strukturu a zpracování instrukcí je tedy pomalejší. Jako typičtí představitelé této instrukční sady jsou Motorola 68000, Intel x51 a další. Více se s touto sadou zabývat nebudu.

Mikrokontroléry PIC, které jsem pouţil ve své práci, jsou typu RISC. V překladu se jedná o typ kontrolérŧ s redukovanou instrukční sadou. Tato sada je optimalizovaná, na počátku kdy vznikla tj. v 70. letech, většina počítačŧ typu CISC pouţívalo zhruba 30% instrukcí. Proto vznikl standard RISC. Jeho hlavní výhodou je, ţe instrukce spadající do této sady jsou stejně dlouhé, jsou jednodušší, lze je tedy provádět mnohem efektivněji. Například mikrokontrolér PIC 18F2550 vlastní 75 instrukcí. Délka provádění instrukce je vţdy jeden strojový cyklus (kromě instrukcí větvení). Jeden tento strojový cyklus trvá čtyři takty oscilátoru.

Mikrokontroléry, pracující s RISC instrukční sadou, mají méně sloţitý řadič instrukcí, jsou levnější a celkově jednodušší. Většina instrukcí pracuje s vnitřními registry, odpadá proto nutnost přesouvání dat z a do akumulátoru. Příklad: součet REG1 + REG2, výsledek uloţit do REG3. Obvyklými zástupci mikrokontrolérŧ typu RISC jsou jak PIC, tak Atmel AVR, ARM, IBM Power PC a další.

2.3 Bitová šířka

V minulých kapitolách jsem mluvil o tom, ţe mŧj programátor PICKIT2 umí programovat jak 8-bitové, tak některé modernější 16-bitové mikrokontroléry. Zde bych připomněl, co je to vlastně bitová šířka.

Pokud je náš mikrokontrolér PIC 18F2550 8-bitový, znamená to, ţe maximální bitová šířka paměti dat je 8. Tudíţ nám mikroprocesor pracuje (přesouvání, adresace) s datovými balíky po 8 bitech tedy slova v rozmezí 0 aţ 255. Kategorie mikrokontrolérŧ PIC18F má paměť adresovanou 8 bity, avšak velikost instrukce je 16 bitŧ. Náš výchozí kontrolér spadá do kategorie PIC 16F, je také 8-bitový, má tudíţ paměť dat 8-bitovou. Rozdíl od předchozího procesorŧ je v tom, ţe instrukce má 14-bitové.

(14)

14

2.4 Přerušení

Přerušení je velmi dŧleţitá činnost, která umoţňuje reagovat na nečekané (tudíţ asynchronní) události okamţitě. Systém se díky přerušení například nemusí stále dotazovat, zda k události došlo. Jako událost mŧţeme povaţovat stisk tlačítka, nebo přetečení časovače.

Přerušení dokáţe v některých případech zjednodušit program. Například u našich mikrokontrolérŧ PIC probouzení z reţimu spánku. Schéma řadiče přerušení je vyobrazeno na obrázku 3 (zdroj: Přednáška přerušení, Ing. Tomáš Martinec, Ph.D.]

Pro vysvětlení: ISR – Interrupt Service Register, IMR – Interrupt Mask Register a IRR – Interrupt Request Register

Obrázek 3: Schéma řadiče přerušení

Pro přiblíţení situace vysvětlím, co se vlastně děje po příchodu přerušení. Jako první se dokončí právě vykonávaná instrukce. Výsledná hodnota se uloţí do hardwarového zásobníku.

Potom dojde ke skoku na adresu přerušení a v této chvíli se začne vykonávat uţivatelský podprogram, ve kterém se provádí obsluha přerušení. Program musí být zakončen instrukcí RETFIE. Potom následuje načtení hodnoty z hardwarového zásobníku, do kterého byla uloţena hodnota z pŧvodního programu před přerušením pozice v programu, před kterou přerušení přišlo. Posléze se pokračuje ve vykonávání programu.

U procesorŧ PIC konfigurujeme přerušovací systém pomocí registru INTCON.

Mikrokontroléry PIC18F mají dvouúrovňové přerušení a to s vyšší a niţší prioritou. Přerušení s niţší prioritou mŧţe být přerušeno přerušením s vyšší. Naopak to není moţné. V tomto případě se přerušení provede aţ pří dokončení toho vyššího.

(15)

15

3 Vývojové prostředí Eagle

Pro návrh desky mého programátoru jsem pouţil program Eagle verze 5.7.0 (viz obrázek 4), vyvinutý firmou CadSoft. Je velmi oblíben mezi odbornou veřejností pohybující se v oboru elektroniky z dŧvodu snadné a přehledné editace schéma a širokých moţností. Dělí se na dvě části. Tou první je tvorba schéma a tou druhou je editace desky (layoutu). Tyto dvě části jsou navzájem propojeny s tím, ţe layout je tvořen z editoru schéma. Nelze proto měnit součástky na desce, ale pouze upravovat polohu a propojovat s dalšími prvky. Rastr programu Eagle je moţno nastavit v milimetrech, palcích, milech (tisícina palce) a v mikronech. Pro usnadnění tvorby schémat program sice obsahuje knihovnu nejpouţívanějších součástek, avšak některé další součástky SMD, konkrétně paměti 24C512 a další speciální tranzistory a zesilovače bylo nutné navrhnout v editoru součástek. V návrhu desky (layout) bylo moţno vyuţít automatické spojování součástek, vhodnější ale bylo propojit je ručně. Program nám dovoluje navrhovat desky tištěných spojŧ aţ v šestnácti vrstvách, pro mé pouţití mi postačila vrstva jedna. Program Eagle mi i umoţnil pouţít tzv. „rozlitou měď. To jsem samozřejmě vyuţil. Rozlitá měď je vhodná především jako odrušení, také šetří leptací roztok (viz. kapitola 4 - Výroba DPS.)

Obrázek 4: Eagle – Návrh layoutu

(16)

16

4 Výroba desky plošných spojů

Deska plošných spojŧ neboli DPS, byla navrhovaná v programu Eagle. Výrobce mi poskytl schématický nákres ve formátu PDF, tudíţ bylo nutné schéma kompletně překreslit. Po tomto kroku jsem navrhl v tvorbě layoutu vodivé cesty. Po překontrolování mohla být započata výroba desky, které se věnuji postupně v následujících kapitolách.

4.1 Návrh schématu

Pro schéma jsem si zvolil rastr v palcích a to mříţku s rozestupem čar 0.1 palce. Pro layout jsem si vybral rastr v milimetrech, rozestup 0.25 mm. Schéma je rozděleno na dvě části, které jsou propojeny sběrnicí (v schéma značeno jako BUS1). Tato sběrnice velmi zjednodušuje schéma zapojení, protoţe jinak by bylo celkem rozměrné a nepřehledné. Pro přehlednost jsem přidal popisky pro všechny vodiče spojené s touto sběrnicí. Na druhé části schématu nalezneme BUS2, která spojuje mikrokontrolér PIC 18F2550 s dvěma paměťmi 24C512. Tyto paměti bylo nutné navrhnout v editoru součástek. To probíhá ve třech fázích a to návrh součástky do schématu (SYMBOL), do layoutu kde se navrhuje PACKAGE a také symbolickou značku (DEVICE). Abych mohl piny součástky dobře zapájet na desce, bylo nutné zjistit přesné rozměry package z datasheetu výrobce. Přitom bylo dŧleţité si představit, jak bude součástka umístěna, aby nedošlo k zrcadlovému prohození pinŧ, coţ se mi u jedné součástky bohuţel stalo. Tento problém jsem samozřejmě opravil, na desce je jiţ vše v pořádku. Schéma zapojení je vcelku veliké, proto je rozděleno na dvě části. K nahlédnutí je na rozděleném obrázku 5 a 6.

(17)

17

Obrázek 5: Schéma zapojení - část první

(18)

18

Obrázek 6: Schéma zapojení - část druhá

(19)

19

4.2 Návrh layoutu

V návrhu layoutu jsem vhodně rozmisťoval součástky a následně je propojoval. Toto bylo vcelku časově náročné, protoţe se cesty samozřejmě nesmějí kříţit. Tam kde kříţení spojŧ bylo nevyhnutelné, byly pouţity propojky 0R. Ve většině případŧ návrh probíhal pouze v jedné vrstvě. Tato volba sice dělá návrh sloţitější, avšak výroba je snadnější, protoţe nemusíme prokovovat jednotlivé vrstvy a také odpadá problém přesného umístění osvětlovací fólie (vrstvy na sebe musí dokonale navazovat). Návrh desky je znázorněn na obrázku 7.

Návrh jsem od začátku přizpŧsoboval kuprextitové desce o rozměrech 150x100 mm.

Rastr jsem měl nastaven v milimetrech s rozestupem mříţky 0.25 mm. Odpory a kondenzátory jsem pouţil v provedení 1206. Nachází se zde ale i několik prvkŧ v provedení 805 a to v případech, kdy toto bylo nutné z hlediska rozměrŧ. Na desce nalezneme i jiné provedení kondenzátorŧ a to elektrolytických, pouţitých pro odfiltrování zpravidla napájecího napětí +5V.

Těchto kondenzátorŧ jsem si do schématu pár přidal. Všechny jsou připojeny do takzvané

„rozlité mědi“ neboli plochy desky s potenciálem GND. Plochy mají odstup od vodivých čar s jiným potenciálem 0.6096 mm. Toto umoţňuje lepší odrušení a také při leptání nedochází k takové degradaci leptací lázně. Vodivé cesty jsem se snaţil vést úhledně, hrany jsou upraveny na sklon 45°. Tloušťka čar je standardně 0.6096 mm. Problém bylo provést vodivé spoje kolem vývodŧ PIC 18F2550, kde je hustota spojŧ nejvyšší, zde jsem volil tloušťku 0.3048 mm. Vedle procesoru nalezneme drátový odpor R1, který mi „pomohl“ překlenout hned několik spojŧ.

Pro přehlednost jsem u portu UART umístil textové popisky, aby s tímto programátorem mohl pracovat i člověk, který si neprostuduje dokumentaci. V rozích desky nalezneme otvory pouţitelné pro umístění do krabičky, nebo pro noţky. Za horní stranu desky povaţuji tu, kde vidíme vodivé cesty. Proto je zde pro snadnější zapojování umístěn USB konektor, UART a také tři informativní LED SMD diody v provedení 1210 s barvou světla ţlutá, zelená a červená (význam popsán v kapitole 5). Je zde i mikrospínač pro programování (PICKIT2 TO GO).

Obrázek 7: Návrh layoutu

(20)

20

4.3 Osvit

Jakmile byla deska kompletně navrţena, mohl jsem se pustit do osvěcování. Předlohu je moţno tisknout přímo z programu Eagle. Bylo nutné, aby byla předloha vytištěna zrcadlově.

Tisknul jsem na speciální fólii pro laserové tiskárny. Předlohu je také moţno tisknout na jiné prŧhledné nebo prŧsvitné nosiče, jako je např. pauzovací papír. Já volil fólii především proto, ţe je naprosto prŧhledná a odpadá tak potřeba pouţití transparentního roztoku.

K osvěcování jsem měl k dispozici box s UV trubicemi. Předlohu jsem umístil vytištěnou stranou na kuprextitovou desku. Ta uţ měla nanesenou světlocitivou vrstvu překrytou ochranou nálepkou. Zde platí to, ţe na které části dopadne UV záření, ty se v leptací lázni odleptají. Proto je nutné, aby byly potřebné plochy vodivých cest co nejtmavší.

Osvětlování se mi na první pokus nepovedlo, s předlohou se nesmí ani minimálně pohnout a hlavně musí být rovnoměrně přimáčknuta na desku. Nejtenčí vodivé spoje na desce mají tloušťku 0.3 mm, tudíţ sebemenší odchýlení by mělo za následek znehodnocení světlocitlivé vrstvy a následné špatné vyleptání. Kdyţ bylo vše dobře umístěno, zaklopil jsem poklop a spustil jsem UV trubice. Doba osvětlování byla 8 m a 30 s. Osvětlovací box s deskou a fólie jsou k nahlédnutí na obrázku 8.

Obrázek 8: Osvětlovací box

4.4 Vyvolání, leptání

Po osvětlování desky bylo nutné provést správné vyvolání předlohy. V této chvíli jsou uţ na desce vidět, i kdyţ velmi těţko, vodivé cesty. Desku jsem tedy vloţil do nádobky roztokem NaOH (louh) smíchaném s vodou. Nejvhodnější koncentrace byla 1,5% aţ 2% NaOH ve vodě. Při menší koncentraci se vyvolání provádí delší dobu a ne příliš kvalitně, při překročení těchto hodnot dojde k trvalému znehodnocení osvícené předlohy, protoţe se

(21)

21

kompletně odplaví. Při vyvolání louh odplavuje světlocit v místech, kam dopadlo v předchozím kroku UV záření. Pro jistotu jsem toto prováděl téměř ve tmě. Asi tak po jedné aţ dvou minutách jsou spoje vyvolány, toto lze urychlit například pomocí kartáčku, který pomŧţe lépe odstranit nechtěný světlocit. Nakonec bylo třeba desku dobře umýt proudem vody. Prŧběh vyvolání je moţno vidět na obrázku 9.

Obrázek 9: Vyvolání

Nyní mohl započít proces leptání. Obvyklým leptadlem bývá chlorid ţelezitý. Já jsem ale pouţil peroxidsíran sodný. Proces leptání je vidět na obrázku 10. Pro lepší vlastnosti roztoku je dobré provádět leptání při jeho teplotě alespoň mezi 30°C aţ 40°C. Po celou dobu leptání je vhodné výrobek sledovat, zda leptání probíhá v pořádku, a hlavně musíme desku vyndat z leptací lázně včas, aby tak nedošlo k proleptání vodivých cest (především těch nejtenčích). U první desky, kterou jsem zkoušel vyrobit, byl problém, ţe jsem osvit neprovedl rovnoměrně. Roztok pro vyvolání byl jen 1%. Při leptání se mi odleptala pouze polovina desky. Druhá část se odleptávala velmi dlouho (aţ 5x pomaleji neţ běţně) a ke konci se mi začaly proleptávat i spoje z první části, které měly na desce zŧstat. U této desky probíhalo vše v pořádku a celý tento proces trval zhruba 18 min.

Obrázek 10: Leptání

(22)

22

4.5 Vrtání a pájení

Po leptání bylo potřeba desku dŧkladně umýt. Potom jsem desku musel očistit od fotocitlivé vrstvy, k tomu mně pomohl technický líh. To skrývá ale jistý neduh a to ten, ţe od této chvíle máme měděné cestičky nechráněné a jak jistě víme, povrch mědi oxiduje. Toto je moţno odstranit pájivým lakem, který je ředitelný toluenem. Jenomţe kdyţ jsem pájivý lak nanesl, měl jsem občas problém, ţe se mi při pájení nechtěl pojit cín s mědí. Jediné opatření bylo lak z desky smýt opět toluenem a nanést opravdu jen tenkou vrstvu. Po výrobě desky jsem spoje pro jistotu proměřil, zda někde nedošlo k přerušení vodivé cesty. Profesionální výroba desek plošných spojŧ zahrnuje i další kroky jako pokovení vrtaných děr, pokrytí rŧznými ochrannými laky atd. K tomu jsem bohuţel neměl vybavení a pro funkčnost mého výrobku to nemělo vliv.

Vrtání jsem prováděl ručně bez CNC vrtačky, konkrétně na klasické stojanové vrtačce.

Prŧměr vrtáku 0.8 mm. Pouze na některé díry jako jsou piny pro UART, bylo potřeba vrtáku s prŧměrem 1 mm. Vrtání bylo značně zjednodušeno pouţitím převáţně SMD součástek.

Vhodné bylo vrtat s pomalejšími otáčkami, protoţe při vyšších otáčkách dochází k značnému přehřátí měděné vrstvy, která černá.

Pájení bylo časově vcelku náročné. Pro zjednodušení jsem uţ v návrhu (kapitola 4.1) volil velikost SMD prvkŧ 1206. K pájení jsem pouţíval mikropájku s přednastavenou teplotou 300°C. Pro pájení takto malých obvodŧ vyţaduje práce jistý cvik, proto jsem si vyzkoušel připájet pár odporŧ nanečisto předem. Před připájením bylo dobré si plošky, kam se později umísťovala součástka, pokrýt cínem. Výsledná osazená deska je k vidění na obrázku 11.

Obrázek 11: Osazená deska

(23)

23

5 Princip činnosti programátoru

Na desce tištěných spojŧ nalezneme hojný počet součástek, proto se budu věnovat těm nejpodstatnějším. Hlavní řídící obvod tohoto programátoru je výkonný mikrokontrolér PIC 18F2550, který řídí veškerou komunikaci s počítačem, zápis do pamětí EEPROM i zápis do našeho cíleného mikrokontroléru. Programování probíhá tak, ţe pomocí PC nahrajeme náš firmware do programátoru, přesněji do dvou pamětí EEPROM po 512 kb. Je tomu tak proto, ţe tyto paměti slouţí jako vyrovnávací odkládací prostor pro program. Jakmile je program uloţen v pamětech, procesor z nich po stisku tlačítka (reţim PICKIT TO GO) přesune data do cíleného procesoru. Toto je moţné opakovat, tudíţ je moţno programovat více mikrokontrolérŧ a to vše bez nutnosti pouţití PC. Vše si řídí sám mikrokontrolér PIC 18F2550. Tento procesor popisuji podrobně v kapitole 6.1, kde jsou uvedeny i frekvence.

Dále na desce nalezneme měnič napětí a to v rozmezí 2,5 V aţ 5 V. V schématu je toto napětí značeno jako +V_TGT a je řízené hlavním procesorem z portu RC2 (pin 13). Z tohoto pinu nám vychází PWM (pulzně šířková modulace), která je nutná převést na spojitý prŧběh napětí. K tomu nám slouţí jednak RC článek tvořen odporem R28 a kondenzátorem C14. Za tímto článkem nalezneme operační tranzistor OZ1, který budí hlavní MOSFET tranzistor.

MOSFET tranzistor slouţí jako zdroj pro výchozí procesor (zdroj +V_TGT).

Na desce je také nalezneme měnič pro +12V. Napětí je získáváno z +V_TGT, které je přes cívku L1 přivedeno na tranzistor T3. V okamţiku kdy je toto napětí třeba, mikrokontrolér vygeneruje obdélníkové pulzy, které vybudí bázi T3. Frekvence těchto pulzŧ je kolem 30 kHz a jsou generovány z portu RC1 (pin 12). Pomocí spínání indukčnosti L1 dochází k indukování napětí, které se sečte s napětím +5V. Výsledné napětí je usměrněno Shottkyho diodou D1. Aby se zaručila dobrá hodnota na výstupu Vpp, máme zde ještě odporový dělič R4 a R11. Mezi těmito odpory je vyveden vodič k procesoru (FEEDBACK) (pin 2), díky této zpětné vazbě má procesor přehled o hodnotě napětí Vpp. Pokud toto napětí není v pořádku, program v PC nám toto oznámí. Elektrolytické kondenzátory C1 a C5 nám napětí filtrují, aby nebylo zvlněné.

Napětí +12 V je spínáno tranzistorem T2, který má bázi připojenou na odporový dělič tvořen odpory R5 a R12. Pokud je napětí Vpp třeba, obvykle při programování, procesor spustí pomocí výstupu RB2 (pin 23) tranzistor T6. V této chvíli (spuštěn pin 12 a 23) se nám na výstupu programátoru Vpp objeví napětí +12 V. Zpětná vazba od cíleného procesoru k mikrokontroléru PIC 18F2550 je vedená přes port RA1 (pin 3). Dalším tranzistorem je T8. Ten je spínán při smazání paměti (resetu) cíleného procesoru (funkce MCLR).

Při zapojení cíleného procesoru se nám připojí na port Vdd +5 V. O tomto kroku nás vizuálně informuje ţlutá LED dioda, která je řízena pomocí portu RB4 (pin25). Připojené USB, jehoţ součástí je napájení programátoru, je zobrazeno svítící zelenou LED. A jako poslední červená LED slouţí k informování obsluhy o právě probíhajícím programování. Dokonce nás tato LED informuje i v případě výskytu závaţné chyby. Výstupem programátoru jsou vodiče AUX, ISPD a ISPC , které jsou řízeny tranzistory T1 T4 T5 T7. Výstup tranzistoru T4 je zapojen tak, aby mohl řídit ostatní tranzistory T1 T5 a T7. Jak uţ bylo zmíněno na začátku kapitoly, na desce nalezneme i dvě paměti EEPROM. Tyto paměti komunikuji s procesorem po sběrnici I2C. Této sběrnici se budu věnovat v kapitole 6.2 společně s hlubším rozborem pamětí AT24C512.

(24)

24

6 Sloţitější obvody programátoru PICkit2

V této části se budu věnovat hlavním prvkŧm mého programátoru a to jsou PIC 18F2550, paměti 24C512, operační zesilovač MCP 6001U a speciální tranzistor FDC 6420C.

Závěrem kapitoly bude odkaz na seznam pouţitých součástek.

6.1 Mikrokontrolér PIC 18F2550

V této kapitole se budu zaobírat nejdŧleţitějšími rysy tohoto procesoru [2]. Jedná se o osmibitový mikrokontrolér typu RISC, který je moţno napájet napětím v rozmezí 2 - 5,5 V.

Základní hodnoty o velikosti pamětí a dalších vlastností jsou v tabulce 1. Pro vysvětlení: CCP (Capture/Compare/PWM), SPP (Streaming Parallel Port), MSSP (Master Synchronous Serial Port).

Tabulka 1: Rysy procesoru 18F2550 [2]

Procesor pracuje na frekvencích do 48 MHz, získává je násobením a dalšími úpravami frekvence krystalu 20 MHz. Tento krystal má pevnou frekvenci, kterou pomocí dalších obvodŧ jako jsou násobičky a děličky frekvence vyuţívají i další bloky v procesoru jako je například USB komunikace nebo PLL závěs. PLL závěs je nastaven v procesoru pevně na frekvenci 96 MHz. USB komunikace s PC pracuje na kmitočtu 48 MHz, tudíţ poloviční frekvence PLL. Náš mikrokontrolér má čtyři módy pro nastavení tohoto závěsu. Je také schopen vyuţít plnou rychlost USB v standardu FULL-SPEED konkrétně 12 Mb/s. Součástí tohoto procesoru jsou i čtyři časovače označené T0 aţ T3, 19 zdrojŧ přerušení z toho 3 externí a z oblasti programování má procesor implementováno 75 instrukcí + dalších 83 rozšířených. Také má tři reţimy činností a těmi jsou RUN (kdy je CPU v činnosti společně s periferiemi), Idle (CPU čeká na příkazy a je uspáno, periférie jsou v činnosti) a Sleep (vše je vypnuto krom přerušení, které je schopno procesor probudit). Procesor v plném vytíţení odebírá maximální proud 25 mA, coţ je velmi výhodné v případě pouţití tohoto mikrokontroléru pro zařízení napájená z akumulátoru.

6.1.1 Porty procesoru PIC 18F2550

Porty procesoru bych rozřadil do čtyř hlavních kategorií [3]. Porty RA0 aţ RA6, RB0 aţ RB7, RC0 aţ RC7 a konečně jediný port RE3, který v mém případě slouţí pro prvotní naprogramování tohoto procesoru. Dále zde nalezneme piny pro napájení, či pro oscilátor (krystal). Procesor je vybaven dvěma komparátory a dvěma pulzně šířkovými moduly (v mém

(25)

25

případě jeden tento modul vyuţit pro řízení +V_TGT). Jako vstupně výstupní porty zde nalezneme i dva hlavní jako je USB, sloţené krom napájení z D- a D+ (RC4 a RC5). Dále potom UART (nebo také EUSART), který je datově sloţen z RA2 a RA3. Procesor je dále vybaven deseti AD převodníky s šířkou 10 bitŧ a dvěma komparátory (rozlišení 16 bitŧ). To by k tomuto procesoru bylo vše, pro vizuální ukázku jsem vloţil obrázek 12.

Obrázek 12: Popis pinů mikrokontroléru PIC18F2550 [2]

6.1.2 Speciální funkční registry PIC 18F2550

Mikrokontrolér PIC 18F2550 je vybaven širokou škálou řídicích registrŧ, které zajišťují správnou činnost pro náš daný účel [3]. Tyto registry se nazývají Speciální funkční registry v originále pod zkratkou SFR. Jedná se o registry, které jsou pouţívány CPU a perifériemi k řízení poţadované operace našeho zařízení. Tyto registry jsou implementovány ve statické datové RAM paměti. SFR se rozkládá od adresy paměti F60h do FFFh. Následující registry jsem hodnotil jako nejdŧleţitější, proto jsou zde vyobrazeny a vysvětleny.

STATUS registr

Tento registr obsahuje aritmetický status aritmeticko-logické jednotky. Stejně jako všechny registry SFR mŧţe být operandem pro jakoukoli instrukci. Registr je zobrazen v tabulce 2.

- - - N OV Z DC C

bit 7 bit 0

Tabulka 2: Registr STATUS [2]

bit 7-5 nevyuţito

bit4 N (negative) Tento bit je pouţit pro znaménkovou aritmetiku. Indikuje, ţe výsledek poslední aritmetické operace byl záporný.

bit 3 OV (overflow) indikuje, ţe došlo u znaménkové aritmetiky k přetečení (7bit změnil svŧj stav) (při přetečení OV=1)

bit 2 Z (zero) Indikuje výsledek aritmetické operace. Kdyţ bylo výsledkem této operace nulové číslo, je bit Z=1

(26)

26

bit 1 DC (digit cary/borrow bit) indikuje přenos mezi niţší a vyšší částí Bytu při aritmetických instrukcích

bit 0 C (carry/borrow bit) indikuje přetečení při aritmetických instrukcích jednoho Bytu OSCCON registr

Náš procesor PIC obsahuje rŧzné obvody zabraňující problémŧm s přepínání mezi zdroji hodinových impulzŧ. K nastavení je pouţit registr OSCCON. Registr je zobrazen v tabulce 3.

IDLEN IRCF2 IRCF1 IRCF0 OSTS IOFS SCS1 SCS0

bit 7 bit 0

Tabulka 3: Registr OSCCON [2]

bit 7 IDLEN (idle enable bit) v případě IDLEN=1 zařízení umoţňuje vstup do Idle módu

bit 6-4 IRCF2-IRCF0 nastavení frekvence vnitřního oscilátoru (dle tabulky dokumentace)

bit 3 OSTS nastavení prodlevy časovače při startu oscilátoru

bit 2 IOFS (frequency stable bit) indikace stability vnitřní frekvence

bit 1-0 SCS1-SCS0 (systém clock select bits) výběr systémového času (Timer1, Internal oscillator, Primary oscillator)

6.1.3 Organizace paměti

Mikrokontrolér PIC 18F2550 obsahuje tři druhy pamětí a to je paměť programu FLASH, s moţností vnitřního zápisu, paměť dat RAM a paměť EEPROM [3]. Čítač instrukcí je 21-bitový a umoţňuje adresaci aţ 2 MB paměti, které ale zatím nejsou vyuţity. Procesor má paměť pro program o velikosti 32 kB. Vektor RESETu má adresu 0h, vektor přerušení s vysokou prioritou na adrese 8h a vektor přerušení s nízkou prioritou má adresu 18h.

Mikrokontroléry PIC 18 mají 31 úrovňový zásobník (umoţňují aţ 31 volání). K tomuto zásobníku lze přistupovat i softwarově.

Čítač instrukcí je 21-bitový. Abychom k němu mohli přistupovat, dělí se na 3 Byty pojmenované PCLATU, PCLATH a PCL. Data z paměti je moţno číst pomocí ukazatele TBLPTR a přístupového registru TABLAT.

Tento mikrokontrolér má 12-bitovou datovou adresu, coţ dovoluje adresovat aţ 4096 Bytŧ dat. Paměť je rozdělena do 16 paměťových bank po 256 Bytech. V horní polovině poslední banky se nacházejí speciální funkční registry (viz. kapitola 6.1.2). K registrŧm je moţno přistupovat přímo.

(27)

27

6.2 Paměť AT24C512

Jak jiţ bylo zmíněno v kapitole o činnosti programátoru, nacházejí se zde dvě sériové paměti od firmy Atmel v provedení AT24C512. Jedná se o paměť typu EEPROM, tudíţ jak jistě víme, paměť je elektricky zapisovatelná i mazatelná [4]. Je sloţena z osmi blokŧ o velikosti 65 536 bitŧ, máme tedy k dispozici celkem 512 kb. Paměť je schopna pracovat ve třech rŧzných napěťových módech. Prvním (nejniţším) je mód při napájecím napětí 1,8 – 3,6 V, to paměť pracuje na frekvenci 100 kHz. Pro napájení v rozmezí 2,7 – 5,5 V připadá frekvence 400 kHz a konečně pro mé pouţití, kde jsou obě pouţité paměti napájeny z USB +5 V, je pracovní frekvence 1 MHz. Napájecí napětí pro tento mód se musí pohybovat mezi 4,5 – 5,5V.

Tato paměť se vyrábí v několika pouzdrech, zde jsem vybral pouzdro SO8. Popis jednotlivých pinŧ je nakreslen na obrázku 13 a jejich význam v tabulce 4. Port SDA, který slouţí pro přenos dat po sériové lince je obousměrný. Hodnoty jsou převzaty z datasheetu výrobce Atmel.

Obrázek 13: Popis pinů [4]

Kaskádovité zapojení umoţnuje spojit aţ čtyři paměti, které jsou spojeny dvouvodičovým spojením. Konkrétně se jedná o vodiče SDA (Serial Data) a SCL (Serial Clock). Paměti AT25C512 jsou nízkonapěťová zařízení s minimálním příkonem vhodné například pro přenosné systémy. I pro naše pouţití je vhodné míti součástky s minimálním příkonem, protoţe napájení je řešeno přes USB port a ten je trvale schopen obstarávat proud max. 200-300 mA.

Paměti s mikrokontrolérem PIC 18F2550 komunikují díky sběrnici I2C (nebo také I2C).

Tato sběrnice byla vyvinuta firmou Philips, obvykle vyuţívanou pro komunikaci rŧzných zařízení, implementovaných v jednom systému (např. paměti EEPROM, řízení LCD, čtení snímačŧ). I2C se dá povaţovat za předchŧdce sběrnice CAN. Nutností této sběrnice je, aby vodiče SCL a SDA byli připojeny přes odpor k napájecímu napětí (v našem případě se jedná o odpory R24 a R25).

Pin Name Function A0 - A1 Adress Inputs SDA Serial Data SCL Serial Clock Input WP Write Protect

NC No Connect

Tabulka 4: Význam jednotlivých pinů [4]

(28)

28

6.3 FDC6420C, MCP6001U, IRLM6402

Tato součástka je speciální MOSFET obvod, který v sobě ukrývá dva unipolární tranzistory, kde jeden je s indukovaným kanálem N a druhý s P [5]. Vyrábí jej firma FAIRCHILD SEMICONDUCTOR. Jeho výhodou je naprosto minimální odpor v sepnutém stavu, a zároveň slušné spínací hodnoty. Pro představu v sepnutém stavu odpor RDS= 70 mΩ, základní podstatné hodnoty pro pouţití tohoto tranzistoru jsou uvedeny v tabulce 5. Pouţitý tranzistor je v provedení SOT6. Zapojení jednotlivých pinŧ a vnitřního uspořádání je na obrázku 14. První tranzistor je označen Q1, druhý Q2.

Obrázek 14: Vnitřní uspořádání tranzistoru FDC6420C [5]

Q1

3,0 A, 20V R

DS(ON)

= 70 mΩ V

GS

= 4,5V

R

DS(ON)

= 95 mΩ V

GS

= 2,5V

Q2

-2,2 A, 20V R

DS(ON)

= 125 mΩ V

GS

= -4,5V

R

DS(ON)

= 190 mΩ V

GS

= -2,5V

Tabulka 5: Základní hodnoty tranzistoru FDC6420C [5]

Další součástkou je operační zesilovač MCP6001U [6]. Výrobcem tohoto integrovaného obvodu je Microchip. Pracuje v rozmezí napájecího napětí 1,8 aţ 5.5 V a do frekvence 1 MHz. V našem případě byl tranzistor zapojen v neinvertujícím zapojení, které je vyobrazeno na obrázku 15. Na obrázku 16 potom vidíme zapojení jednotlivých pinŧ. Obrázky i hodnoty jsou převzaty z datasheetu jednotlivých výrobcŧ těchto integrovaných obvodŧ.

(29)

29

Obrázek 15: Zapojení pinů [6] Obrázek 16: Neinvertující zapojení OZ [6]

Hned za tímto operačním zesilovačem je v mém obvodu umístěn MOSFET tranzistor s kódovým označením IRLML6402 [7]. Jde o polem řízený tranzistor, s indukovaným kanálem P. Vyniká svojí schopností rychlého spínání a především má nízký odpor RDS(ON)= 65 mΩ.

Zapojení pinŧ vidíme na zdvojeném obrázku 17. Pouţité pouzdro je typu SOT-23.

Obrázek 17: Zapojení tranzistoru IRLML6402 (zdroj: datasheet IRLML6402) [7]

Toto je základní popis součástek, které se na desce vyskytují. Dále zde nalezneme kromě odporŧ a kondenzátorŧ také diody BAT54, bipolární tranzistory MMBT 3904 (NPN) a MMBT 3906 (PNP). Všechny tyto pouţité součástky mají pouzdro SOT-23.

6.4 Seznam pouţitých součástek

Seznam pouţitých součástek je k nahlédnutí v příloze A, ve které jsou uvedeny všechny pouţité součástky, jejich počet a hlavně pouţité provedení. Klasické SMD prvky jako jsou odpory a kondenzátory nebylo sloţité zakoupit, ale u speciálních prvkŧ to uţ tak jednoduché nebylo. Tyto obvody byly k dostání u dodavatelské firmy TME Electronic Components.

(30)

30

7 Oţivení programátoru

Tímto by byl programátor po fyzické stránce dokončen. Pro jeho funkci je nutné ho oţivit. V prvotní fázi je nezbytné zavést zavaděč do mikrokontroléru PIC 18F2550. K tomu je nutný programátor mikročipŧ (nějaký podobný, který je výsledkem mé práce). V návrhu programátoru PICkit2 je zahrnut konektor pro programování pojmenovaný pod zkratkou ICSP (In Circuit Serial Programming) neboli programování procesorŧ zapojených v obvodu. Já jsem tento konektor do návrhu nezahrnul a to z toho dŧvodu, ţe je tento konektor potřeba pouze pro prvotní naprogramování (nahrání zavaděče) a jeho přítomnost by zkomplikovala návrh). Proto jsem si vypŧjčil programátor PRESTO, vyráběný českou firmou ASIX, který tento nedostatek odstranil. Potom bylo nutné stáhnout „operační systém do mikrokontroléru“. Toto je popsáno v následujících kapitolách. Program (zavaděč) bootloader.hex je uloţen na přiloţeném CD.

7.1 Naprogramování PIC 18F2550

Programátor PRESTO je navrţen tak, aby podporoval celou škálu mikroprocesorŧ Atmel, Microchip, Intel, ale i mikroprocesory s jádrem ARM a paměti EEPROM a FLASH.

Tento programátor pracuje na podobné bázi jako ten náš. Programování je moţné ve dvou reţimech. Buď má procesor programovací napájení 13 V (HVP), nebo je napájen nízkonapěťově (LVP). V našem případě byl pouţit mód HVP. Dále je také moţné napájet cílený procesor externě, nebo pomocí PRESTA (v našem případě). Dále bylo nezbytné zapojit vodiče PGD (Programming Data), PGC (Programming Clock), poté také napájecí porty jako jsou Vpp/MCLR (Programming Voltage), Vdd (Power Supply) a konečně Vss (GND). Schéma zapojení pinŧ je zobrazeno na obrázku 18.

Obrázek 18: Zapojení pinů při programování procesoru

Pro snadnější propojení mikrokontroléru, jsem měl k dispozici vývojový kit, do kterého jsem PIC 18F2550 umístil. Jedná se o universální upevňovací prvek, který má vývody pro spojení s ASIX PRESTO. Umoţňuje připojení aţ 40-pinových procesorŧ. V našem případě se jedná o procesor s 28 vývody. Na krabičce programátoru ASIX PRESTO jsou některé piny popsány odlišně neţ je tomu v datasheetu PIC18F2550 od výrobce Microchip. Principiálně se jedná o totéţ. Celé toto zapojení je k vidění na obrázku 19 a na jeho detailu vpravo.

(31)

31

Obrázek 19: ASIX PRESTO s PIC 18F2550

Proces probíhá následujícím zpŧsobem. Nejprve jsem propojil programátor ASIX PRESTO s PC, kde byl nainstalovaný příslušný software UP verze 2.55. Mikrokontrolér jsem zasunul do patice (viz. obrázek 19). V programu jsem vybral, o jakého výrobce se jedná, a také, jaké je modelové označení. Potom si programátor ověří, zda je vše v pořádku a načte si paměť mikrokontroléru, která byla prázdná. Napětí Vcc odpovídalo hodnotě 5 V, napětí Vpp bylo v rozmezí 12-13 V. Následně se vybere program (zavaděč) bootloader.hex pro mikrokontrolér a provede se jeho zkopírování do paměti procesoru. Tento proces byl velmi rychlý, programátoru PRESTO toto trvalo zhruba 2 s. Po naprogramování jsem mikrokontrolér vyjmul z přípravku a vloţil ho do patice programátoru PICKit2.

Zavaděč slouţí k tomu, aby byl programátor schopen po připojení komunikovat s PC skrze USB. Prostředí UP, ve kterém probíhala komunikace s mikrokontrolérem je k vidění na obrázku 20. V horním okně vidíme obsah paměti programu (modrá část) a jeho adresy (ţlutá část). Ve spodním okně potom nastavení napětí, módu a ovládání MCLR programátoru PRESTO.

Obrázek 20: Prostředí UP programátoru PRESTO

(32)

32

7.2 Komunikace programátoru PICkit2 s osobním počítačem

Nyní máme vše přichystáno. Dále je potřeba software pro osobní počítač. Ze stránek:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocN ame=en023805 jsem stáhl program PICkit2 verze 2.50 Install. Celou instalací mě provedl jednoduchý prŧvodce. Pro správnou funkci programu je nutné mít v PC nainstalovaný .NET FRAMEWORK alespoň verze 2.0. Podrobně tuto instalaci popisovat nebudu.

Na obrázku 22 je znázorněn a popsán význam jednotlivých částí. Po připojení programátoru, se automaticky spustí instalace vstupního zařízení USB (pomocí HID řadiče integrovaného v PC a bootloaderu v PIC 18F2550). Systém Windows toto oznámí hláškou, kterou vidíme na obrázku 21.

Obrázek 21: Windows nalezl vstupní zařízení

Obrázek 22: Prostředí programu PICkit2 a jeho jednotlivé části

(33)

33

V kolonce stav programátoru máme nyní hlášku, ţe programátor není připojen nebo nebyl nalezen (obrázek 22). Pomocí USB kabelu jsem spojil programátor s počítačem. V tu chvíli se rozsvítí zelená LED dioda oznamující přítomnost napájení +5 V z portu USB. Také problikává červená LED dioda, která signalizuje problém nepřítomnosti operačního systému programátoru. Následně v nabídce Tools klikneme na příkaz Check Communication. Program nám vyhledá PICkit 2 na jednom z USB portŧ, programátor při tomto kroku rozsvítí všechny tři LED diody. Posléze se nám změní oznamovací oblast se zprávou, ţe nebyl nalezen operační systém v programátoru (viz. obrázek 23).

Obrázek 23: Oznamovací oblast

Pro naprogramování jsem vybral v nabídce Tools poloţku Download PICkit2 Operating System. Otevře se okno, ve kterém jsem vybral soubor PK2V023200.hex. Tento soubor je obsaţen v jedné ze sloţek softwaru od firmy Microchip. Tento soubor je také uloţen na mém přiloţeném CD. Po vybrání souboru se automaticky provede uloţení OS do paměti PIC 18F2550, přesněji do paměti programu typu FLASH. Prŧběh instalace a její dokončení je zobrazeno na sloţeném obrázku 24. Mŧţe se stát, ţe software na chvíli přestane odpovídat, toto je však v pořádku.

Obrázek 24: Průběh instalace operačního systému

7.3 Kalibrace výstupů

Tímto by bylo programování programátoru PICkit2 dokončeno. Nyní je potřeba nastavit napětí Vdd a Vcc. Pro tuto kalibraci je nutné otevřít nabídku Tools a vybrat poloţku Calibrate VDD & Set Unit ID. Otevře se dialogové okno, které nás vyzve, abychom si přichystali voltmetr. Po odkliknutí tlačítka Next, následuje další okno, kde mě program upozornil, abych neměl zapojený cílový procesor (riziko jeho zničení) a také mě vyzval ke změření napětí Vdd.

V dalším okně je tuto hodnotu nutné uvést do políčka (na 3 desetinná místa). Hodnota je k nahlédnutí na sloţeném obrázku 25.

(34)

34

Zde je vidět okno 2. a 3. Mikroprocesor tuto hodnotu pouţívá pro řízení napětí Vdd, které je moţno nastavovat od 2,5 do 5 V. V případě, ţe jsem toto napětí nastavil chybně, vyskytl se mi problém s hodnotou Vpp, která byla chybná. V posledním dialogovém okně jsme poţádáni o pojmenování programátoru (Unit ID). Já jsem ho pojmenoval PICkit MK. Kalibrace je doporučována provádět vţdy, kdyţ nastane změna pouţívaného USB portu.

Obrázek 25: Kalibrace napětí Vdd

Nyní je nutné otestovat napětí Vdd, Vpp, vodiče ISPC, ISPD a funkci MCLR. Pro tento krok jsem opět otevřel nabídku Tools a vybral poloţku Troubleshoot. Otevřelo se mi dialogové okno s informacemi o této funkci (toto okno je pouze informativní, nebylo dŧleţité ho zde uvést). Ověření funkce je rozděleno do tří krokŧ, měření Vdd, Vpp a měření datového (ISPD) časového (ISPC) vodiče. K měření je opět potřeba multimetr, avšak pro lepší ověření správné funkce výstupních vodičŧ ISPC a ISPD je doporučován osciloskop, schopný kvalitně zobrazit obdélníkový signál o frekvenci 30kHz.

V druhém okně (na obrázku 26) jsem byl vyzván, abych nastavil napětí v editačním políčku na takovou hodnotu, aby byl výsledek na úrovni 2,5 nebo 5 V (dle potřeby). Toto napětí (Vdd) je zpětnovazebně měřeno pomocí pinu 3 mikrokontroléru. V mém případě jsem nastavil hodnotu 4,7 V a to z toho dŧvodu, ţe na výstupu nebylo napětí vyšší neţ 5 V.

Ve třetím okně (krok 2) jsem ověřoval napětí Vpp. Toto napětí je kontrolováno opět zpětnou vazbou, která je zapojena do mikrokontroléru 18F2550 do pinu 2 (viz. kapitola 5). Tato vazba je vedena mezi odpory R4 a R11. Napětí odpovídalo hodnotě 12,1 V, coţ je akceptovatelná úroveň. Port Vpp má i funkci MCLR (Master Clear). Pokud je tato funkce aktivní (pin 7), je programová paměť cíleného procesoru vymazána. V takovéto situaci je hodnota napětí na výstupu programátoru Vpp 0V (spojeno s GND). Další moţností je deaktivovaná funkce MCLR. To je výstup Vpp v tzv. třetím stavu neboli stav vysoké impedance. Všechny tyto funkce jsou nastavitelné v dialogovém okně kroku 2 (viz. obrázek 27).

Při testování Vpp jsme programem informováni, zda je napětí správné. Vše je doporučeno prŧběţně proměřovat například multimetrem.

K těmto obrázkŧm musím podotknout, ţe zapojení pinŧ u mého programátoru je jiné, neţli je vyobrazeno níţe. Software je optimalizován k originálnímu programátoru PICkit2.

(35)

35

Obrázek 26: Ověření napětí Vdd Obrázek 27: Ověření napětí Vpp, MCLR

V posledním (třetím) kroku je moţné ověřit funkci výstupních portŧ ISPD a ISPC. Nyní jsem opět pouţil multimetr (voltmetr). V lepším případě (jak jiţ bylo zmíněno), poslouţí osciloskop. Pomocí tlačítek (obrázek 28) jsem volil jednotlivé vstupy a zároveň jejich hodnoty.

Na mém programátoru jsou tyto piny umístěny na jiné pozici. Proto doporučuji vhodně prozkoumat význam jednotlivých vodičŧ před zahájením měření. Vodiče na mé desce jsou značeny ISPD (PGD) a ISPC (PGC).

Obrázek 28: Ověření funkčnosti programovacích vodičů ISPD a ISPC

V mém případě bylo vše naměřeno a výsledkem bylo správné napětí na všech výstupech. Tato kapitola sice pojednává pouze o ověření správné funkčnosti, avšak v případě ţe bych měl nějakou hodnotu na jednom z výstupŧ špatnou, mohlo by to vést k trvalému poškození cíleného mikrokontroléru, či mého programátoru. Proto jsem uznal za vhodné tento krok detailně popsat. Ze strany PC problém nenastane, port USB je chráněn proti zkratu. Tímto povaţuji programátor za dokončený a je schopen programovat všechny procesory uvedené v příloze B.

(36)

36

8 Vývojový kit VK1

Jako druhý bod mé bakalářské práce bylo navrhnout vývojový kit, do kterého umístím mikrokontrolér PIC 16F873. Mŧj kit je optimalizován pro tento typ mikrokontroléru. Protoţe existuje celá řada podobných procesorŧ, které PICkit 2 podporuje, rozhodl jsem se vývojový kit navrhnout tak, abychom v něm mohli aplikovat i jiný typ mikrokontrolérŧ. Tento vývojový kit je vybaven 28-pinovou paticí pro pouzdra PDIP. Lze do ní umístit i mikrokontroléry s menším počtem vývodŧ. Pro pouzdro SOIC by bylo nutné navrhnout jiný vývojový kit.

Při prostudování dalších procesorŧ, které PICkit 2 podporuje, jsem narazil na jistý problém. Ne všechny tyto integrované obvody mají významy pinŧ shodné. Proto jsem na desku umístil i dvě řady oboustranných kolíkŧ, pomocí kterých jsem schopen propojit jednotlivé piny s programátorem tak, aby byla funkce moţná. Na spodní straně desky jsou popsány jednotlivé vodiče.

Pomocí dutinkových propojek mohu snadno přizpŧsobit vývojový kit i pro jiný typ mikrokontroléru s jiným zapojením pinŧ, neţli je tomu u PIC 16F873. V tomto případě, vysuneme všechny propojky (jumpery). Dále pomocí kabelových dutinkových propojek spojíme piny v blízkosti procesoru s piny dvouřadého konektoru. Tímto je mikrokontrolér připraven k naprogramování.

8.1 Návrh desky

Návrh desky probíhal v jedné vrstvě. K vývoji mi pomohl známý program Eagle. Pro výrobu jsem pouţil stejný zpŧsob, jak tomu bylo u programátoru PICkit 2. Jako první bod bylo zapotřebí navrhnout schéma. K tomu bylo nutné prostudovat dokumentaci mikrokontroléru PIC 16F873. Pouţité piny jsou následující:

MCLR/Vpp – pin 1 PGC – pin 27

Vss – pin 8,19 PGD – pin 28

Vdd – pin 20

Napájení mikrokontroléru je řešeno skrze vodič Vdd. U tohoto typu mikrokontroléru je hodnota napětí Vdd +5 V. Nebylo tedy nutné nijak zasahovat do vodivého spoje (programátor je toto napětí schopen poskytovat). Schéma je moţno vidět na obrázku 29.

Jakmile bylo schéma hotové, bylo nutné navrhnout layout. Opět jsem musel dbát na to, aby nedošlo k neţádoucímu prohození pinŧ. Procesor s konektory se vyskytuje na jedné straně desky, vodivé cesty jsou na straně druhé. Tloušťku vodivých cest jsem volil 0.6 mm. Snaha byla o dobré popsání jednotlivých vodivých cest tak, aby s vývojovým kitem mohl pracovat člověk, který dokumentaci nečetl. Na pravé straně desky potom vidíme dutinkový konektor pro komunikaci s programátorem PICkit 2. Zároveň musím upozornit, ţe vývojový kit není

(37)

37

kompatibilní s originálním programátorem od firmy Microchip. Návrh desky je zobrazen na obrázku 29.

Obrázek 29: Schéma zapojení VK1

Na desku jsem se rozhodl přidat také zelenou informativní LED. Tato dioda je napájena větví pojmenovanou +5 V. V případě, ţe je programátor společně s vývojovým kitem propojen skrze USB port s počítačem, je tato dioda napájena z tohoto portu.

Deska je také vybavena kolíkovým konektorem pro externí napájení, pouţívané pro moţnost absence počítače v reţimu PICKIT TO GO. V tomto případě tedy napájíme programátor skrze tento kolík. O této funkci hovořím v kapitole 10.

Obrázek 30: Návrh layoutu VK1

Jak vidíme na obrázku 30, na desce je opět umístěna tzv. „rozlitá měď“. V dalším kroku výroby následoval tisk tohoto návrhu na prŧhlednou fólii pro laserovou tiskárnu. Potom osvit zhruba 9 min, následné vyvolání v roztoku NaOH a vyleptání. Vše probíhalo bez obtíţí. Prŧměr vrtaných děr pro patici byl 0,8 mm, ostatní otvory pro kolíky mají prŧměr 1 mm. Na desce se

(38)

38

vyskytuje jedna propojka 0R. Patice pro mikrokontrolér je typu precision. Na desce je také umístěna dioda 4148. Ta je zde z dŧvodu ochrany před chybným zapojením konektoru +5 V (obrácení polarity). Pokud by zde toto ošetřeno nebylo, mohlo by dojít k poškození mikrokontroléru, ale také moţná samotného programátoru.

8.2 Mikrokontrolér PIC 16F873

Jedná se o osmibitový monolitický mikropočítač typu RISC [8]. Jeho instrukční sada obsahuje 35 instrukcí. Všechny instrukce mají stejnou délku a to 14 bitŧ. Jedna tato instrukce trvá jeden strojový cyklus (čtyři takty vnitřního oscilátoru). Při vnitřní frekvenci mikrokontroléru 20 MHz je to 200 ns.

Na desce je pouţité pouzdro typu PDIP v provedení 28-pin. Mikrokontrolér je postaven na technologii CMOS. Programuje se podobně jako PIC 18F2550, tudíţ s napájením Vdd 5 V.

Hodnota napětí Vpp při programování je 12-13 V. Jeho vnitřní paměť pro data má velikost 192 bitŧ, FLASH paměť pro program má velikost 4 kb. Procesor podporuje 13 zdrojŧ přerušení, má tři časovače (jeden z nich pouţit pro moji simulaci funkce) a také dva porty CCP (Capture/Compare/PWM). Součástí tohoto mikrokontroléru jsou 10-bitové AD převodníky s pěti vstupními kanály. Rozloţení pinŧ je k vidění na obrázku 31. Tento obrázek je dŧleţitý především při programování mikrokontroléru pro simulační funkci. Mikrokontrolér dokáţe pracovat s napájecím napětím v rozmezí 2 - 5,5 V.

Obrázek 31: Funkce pinů mikrokontroléru PIC 16F873 [8]

References

Related documents

· 1.2 Relevanta identifierade användningar av ämnet eller blandningen och användningar som det avråds från Ingen ytterligare relevant information finns till förfogande.. ·

· 1.2 Relevanta identifierade användningar av ämnet eller blandningen och användningar som det avråds från Ingen ytterligare relevant information finns till förfogande.. ·

· 1.2 Relevanta identifierade användningar av ämnet eller blandningen och användningar som det avråds från Ingen ytterligare relevant information finns till förfogande.. ·

· 1.2 Relevanta identifierade användningar av ämnet eller blandningen och användningar som det avråds från Ingen ytterligare relevant information finns till förfogande.. ·

· 1.2 Relevanta identifierade användningar av ämnet eller blandningen och användningar som det avråds från Ingen ytterligare relevant information finns till förfogande.. ·

The customer or the user of the Medical Grade Power Strip should assure that it is used in such an environment.. Emissions Test Compliance Electromagnetic environment – guidance

Bitte lesen und beachten Sie die beiliegende Montageanleitung, Sicherheitshinweise und Garantiebedingungen bevor Sie das Produkt montieren/benutzen.. Für weitere

Stop het filter voor de regeneratie circa 2 uur lang in een normale oven bij een temperatuur van 200°C.. Laat het filter afkoelen, alvorens het weer