Peripheral Interface Controllers -10 PE2WDO
Programma Introductie Wat is een PIC Wat heb je nodig om te beginnen Praktijkopdrachten: Voorbeeld met uitleg Opdrachten pag. 2
Wat is een PIC Programmable Intelligent Computer General Instrument (PIC160) Peripheral Interface Controller PICmicro van Microchip Technology Harvard chip architectuur (12,14, 16bit) RISC instructieset (ca. 3-70 instructies) Huidige features: Processor EEPROM (Flash) /RAM Digitale I/O A/D convertors/pwm UART,, I2C en SPI interface Timers, sleepmode RF-integrated Etc. (dspic) Concurrenten: Motorola/68HCxxx, Atmel/AVR, 801 enz. pag. 3
Wat is een PIC (2) pag. 4
Kiezen van het juiste type Criteria: Ingebouwde features Verkrijgbaarheid Kostprijs Gebruiksgemak Kwaliteit en prijs ontwikkeltools Beschikbaarheid informatie Voorbeeld projecten/toepassingen pag.
Overzicht gangbare PIC s: chip behuizing I/O MEM RAM EEPROM Periferie MIPS Euro 12F09 sdip 8 6 1k 41 - osc 1 1.80 12F629 sdip 8 6 1k 64 128 osc 1.60 12F67 sdip 8 6 1k 64 128 a/d, osc 1.90 16F84A sdip 18 13 1k 38 64-4.70 16F628 sdip 18 16 2k 224 128 d/a, uart, osc 3.0 16F870 sdip 28 22 2k 128 64 a/d, uart.00 16F871 wdip 40 33 2k 128 64 a/d, uart.90 16F872 sdip 28 22 2k 128 64 a/d, mssp 4.00 16F873 sdip 28 22 4k 192 128 a/d, uart 7.00 16F874 wdip 40 33 4k 192 128 a/d, uart 7.0 16F876 sdip 28 22 8k 368 26 a/d, mssp 8.20 16F877 wdip 40 33 8k 368 26 a/d, mssp 9.0 18F242 sdip 28 34 8k 12 26 a/d, mssp 10 8.30 18F22 sdip 28 34 16k 136 26 a/d, mssp 10 9.00 18F442 wdip 40 34 8k 12 26 a/d, mssp 10 9.00 18F42 wdip 40 34 16k 136 26 a/d, mssp 10 10.00 pag. 6
Wat heb je nodig (1)? Voorkennis/info: Idee/ontwerp Basiskennis van electronica Enige ervaring in programmeren Device gegevens/datasheets PIC s Voorbeelden/cursusmateriaal pag. 7
Wat heb je nodig (2)? Enig gereedschap: Compiler/editor editor: - BASIC (veel varianten, gratis demo versies op www) C/C++,, Pascal,, JAL (freeware( freeware) Assembler/editor editor (MicroChip): MPLAB MPASM Programmer (kopen/zelfbouwen zelfbouwen) Breadboard, expirimenteerprint of prototype pag. 8
Aan de gang (1) Hardware opbouwen (breadboard( breadboard) pag. 9
Aan de gang (2) Software flowchart maken Start Initialiseer PIC.inc-file Doe iets Doe nog iets N Klaar? J Einde pag. 10
HEADER INITIALISATIE PROGRAMMA BODY 1 2 3 Aan de gang (3) -- ======================================== -- Program Voorbeeld1 -- Author PE2WDO -- version 1.0 -- release 17-08 08-2007 -- ---------------------------------------- -- Purpose Voorbeeld t.b.v. oefening1 -- BRAC PIC Avond -- ---------------------------------------- -- compiler JAL V2.0 GNU open source -- ======================================== include 16f628 -- Hardware configuratie PIC 16F628 var bit led1 is pin_b4 -- Definieer poort als bit variabele const tdelay = 20 -- Definieer variabele voor vertragingstijd pin_b4_direction = output -- Stel poort B4 in als uitgang Forever loop -- herhaal eindeloos tot aan einde loop led1 = high -- zet Led1 aan delay_1ms ( tdelay ) -- wacht 20 x 1mS led1 = low -- zet Led1 uit delay_1ms ( tdelay ) -- wacht 20 x 1mS End loop Programmavoorbeeld in JAL pag. 11
Aan de gang (4) Software code editen/saven Compileren Fouten herstellen/debuggen HEX-code branden Hardware/software samen bouwen Testen en fouten herstellen Klaar! pag. 12
Praktijkopdrachten - Met het BRAC prototype printje - Voorbeeldprogramma in JAL 1. Knipperleds 2. Knipperleds met aan/uit SW 1min 1min 3. Sequencer 20min 4. Sequencer/ID-er er (callgever) 4min pag. 13
1. Knipperleds Opdracht 1: laat led1 en led2 afwisselend en zichtbaar knipperen met een frequentie van ongeveer 2 Hz. pag. 14
2. Knipperleds met aan/uit Opdracht 2: De leds zijn normaal (rustsituatie) gedoofd Zodra SW1 wordt ingedrukt begint led1 te knipperen Led 2 blijft gedoofd. Zodra SW1 wordt losgelaten dooft led1 en begint Led2 te knipperen pag. 1
Opdracht 3: 3. Sequencer In rust zijn alle leds uit Na het drukken van SW1 gaan de leds 1 t/m 4 in volgorde met vertraging van ca. 100mSec. Aan Na loslaten van SW1 gaan de leds in de omgekeerde volgorde uit met een vertraging van ca. 100mSec. Voordat de leds uitgaan is er gedurende 1 sec. een audio toon van ca. 1kHz te horen via de buzzer pag. 16
4. Sequencer/ID-er er (callgever) Opdracht 4: pas sequencer software van de vorige opdracht zo aan dat gedurende het ingedrukt houden je eigen amateur call in via de buzzer in morse hoorbaar wordt pas de timing zo aan dat dit pas sec. na activeren van SW1 voor het eerst gebeurt, daarna iedere 1 sec. bouw volgende functies in: SW2 open: callgever geactiveerd (mits SW1 ingedrukt) SW3 open: roger beep geactiveerd (bij het lossen van SW1) pag. 17
. Voorbeeld: een digitale SWR-meter PIC16F876A Proton PIC basic 2 analoge ingangen (Fwd/Rev) LCD display 2x16 LCD toont Pout en VSWR in tekst (Pout links boven,, VSWR links onder) als bar-graph (1 per regel, achter betreffende tekst) alarm uitgang (LED aan) bij SWR>1. Pmax ca. 700W (SSB-pieken bij legal power) VSWRmax ca. 1:6 pag. 18
PIC architectuur pag. 19
Informatie/documentatie (1) Een willekeurige greep uit de grote hoeveelheid beschikbare documentatie & informatie over PIC s, pic-programming programming,, voorbeeldprogramma s, software resources etc. Fabrikant www.microchip.com http://buy.microchip.com Algemene info www.circuitsonline.net http:// ://www.wattystuff.net/wattystuff.htmwattystuff.htm www.picbasic.org www.picbasic.nl Resources JAL: BASIC: www.voti.nl/jal http://pic.flappie.nl pic.flappie.nl http://www.myke.com www.picbasic.nl Wouter van Ooijen Stef Mientky Mike Predko Frits Kieftenbelt (mini cursus) pag. 20
Compilers Asm: JAL: JAL V2: BASIC: Informatie/documentatie (2) www.microchip.com www.voti.nl http:// ://www.casadeyork.com/jalv2 http://www.wattystuff.net/tiki/tikiindex.php?page=pic+micro www.sfcompiler.co.uk (swordfish) www.crownhill.co.uk (picbasic pro) Programmers PICkit2 Bobblick ICprog www.microchip.com http://www.bobblick.com http://www.ic-prog.com prog.com Boeken Programming and customizing PICmicro microcontrollers (Mike( Predko,, 1190p) PIC microcontrollers (Bert van Dam, 440p) pag. 21