Peripheral Interface Controllers
BRAC clubavond 5-10-2007 PE2WDO
Programma
Introductie Wat is een PIC Wat heb je nodig om te beginnen Praktijkopdrachten:
0505-1010-2007
Voorbeeld met uitleg Opdrachten
BRAC clubavond
pag. 2
Wat is een PIC
Programmable Intelligent Computer General Instrument (PIC1650) Peripheral Interface Controller PICmicro© van Microchip Technology Harvard chip architectuur (12,14, 16bit) RISC instructieset (ca. 35-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)
0505-1010-2007
Concurrenten: Motorola/68HCxxx, Atmel/AVR, 8051 enz.
BRAC clubavond
pag. 3
Wat is een PIC (2)
0505-1010-2007
BRAC clubavond
pag. 4
Kiezen van het juiste type Criteria:
0505-1010-2007
Ingebouwde features Verkrijgbaarheid Kostprijs Gebruiksgemak Kwaliteit en prijs ontwikkeltools Beschikbaarheid informatie Voorbeeld projecten/toepassingen
BRAC clubavond
pag. 5
Overzicht gangbare PIC’s:
0505-1010-2007
chip
behuizing
I/O
MEM
RAM
EEPROM
Periferie
MIPS
Euro
12F509
sdip 8
6
1k
41
-
osc
1
1.80
12F629
sdip 8
6
1k
64
128
osc
5
1.60
12F675
sdip 8
6
1k
64
128
a/d, osc
5
1.90
16F84A
sdip 18
13
1k
38
64
-
5
4.70
16F628
sdip 18
16
2k
224
128
d/a, uart, osc
5
3.50
16F870
sdip 28
22
2k
128
64
a/d, uart
5
5.00
16F871
wdip 40
33
2k
128
64
a/d, uart
5
5.90
16F872
sdip 28
22
2k
128
64
a/d, mssp
5
4.00
16F873
sdip 28
22
4k
192
128
a/d, uart
5
7.00
16F874
wdip 40
33
4k
192
128
a/d, uart
5
7.50
16F876
sdip 28
22
8k
368
256
a/d, mssp
5
8.20
16F877
wdip 40
33
8k
368
256
a/d, mssp
5
9.50
18F242
sdip 28
34
8k
512
256
a/d, mssp
10
8.30
18F252
sdip 28
34
16k
1536
256
a/d, mssp
10
9.00
18F442
wdip 40
34
8k
512
256
a/d, mssp
10
9.00
18F452
wdip 40
34
16k
1536
256
a/d, mssp
10
10.00
BRAC clubavond
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
0505-1010-2007
BRAC clubavond
pag. 7
Wat heb je nodig (2) ? Enig gereedschap: Compiler/editor: BASIC (veel varianten, gratis demo versies op www) C/C++ ,, Pascal ,, JAL (freeware) -
Assembler/editor (MicroChip): MPLAB MPASM
Programmer (kopen/zelfbouwen) Breadboard, expirimenteerprint of prototype
0505-1010-2007
BRAC clubavond
pag. 8
Aan de gang (1) Hardware
0505-1010-2007
opbouwen (breadboard)
BRAC clubavond
pag. 9
Aan de gang (2) Software
flowchart maken Start .inc-file
Initialiseer PIC Doe iets Doe nog iets
N
0505-1010-2007
Klaar?
BRAC clubavond
J
Einde
pag. 10
Aan de gang (3) 1
-- ======================================== -- Program Voorbeeld1 -- Author PE2WDO -- version 1.0 -- release 1717-0808-2007 -- ----------------------------------------- Purpose Voorbeeld t.b.v. oefening1 -BRAC PIC Avond 0505-1010-2007 -- ----------------------------------------- compiler JAL V2.0 GNU open source -- ========================================
2
include 16f628 var bit led1 is pin_b4 const tdelay = 250 pin_b4_direction pin_b4_direction = output
-- Hardware configuratie PIC 16F628 -- Definieer poort als bit variabele -- Definieer variabele voor vertragingstijd -- Stel poort B4 in als uitgang
3
Forever loop led1 = high delay_1mS delay_1mS ( tdelay ) led1 = low delay_1mS delay_1mS ( tdelay ) End loop
-- herhaal eindeloos tot aan einde loop -- zet Led1 aan -- wacht 250 x 1mS -- zet Led1 uit -- wacht 250 x 1mS
HEADER
INITIALISATIE
PROGRAMMA BODY
Programmavoorbeeld in JAL 0505-1010-2007
BRAC clubavond
pag. 11
Aan de gang (4)
0505-1010-2007
Software code editen/saven Compileren Fouten herstellen/debuggen HEX-code “branden” Hardware/software samen bouwen Testen en fouten herstellen Klaar!
BRAC clubavond
pag. 12
Praktijkopdrachten - Met het BRAC prototype printje - Voorbeeldprogramma in JAL 1. Knipperleds 2. Knipperleds met aan/uit SW 3. Sequencer 4. Sequencer/ID-er (callgever)
0505-1010-2007
BRAC clubavond
15min 15min 20min 45min
pag. 13
1. Knipperleds Opdracht 1:
0505-1010-2007
laat led1 en led2 afwisselend en zichtbaar knipperen met een frequentie van ongeveer 2 Hz.
BRAC clubavond
pag. 14
2. Knipperleds met aan/uit Opdracht
0505-1010-2007
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
BRAC clubavond
pag. 15
3. Sequencer
0505-1010-2007
Opdracht 3:
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
BRAC clubavond
pag. 16
4. Sequencer/ID-er (callgever)
0505-1010-2007
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 5 sec. na activeren van SW1 voor het eerst gebeurt, daarna iedere 15 sec.
bouw volgende functies in: SW2 open: callgever geactiveerd (mits SW1 ingedrukt) SW3 open: roger beep geactiveerd (bij het lossen van SW1)
BRAC clubavond
pag. 17
5. Voorbeeld: een digitale SWR-meter PIC16F876A Proton PIC basic 2 analoge ingangen (Fwd/Rev) LCD display 2x16 LCD toont Pout en VSWR
0505-1010-2007
in tekst (Pout links boven, VSWR links onder) als bar-graph (1 per regel, achter betreffende tekst) alarm uitgang (LED aan) bij SWR>1.5 Pmax ca. 700W (SSB-pieken bij legal power) VSWRmax ca. 1:6
BRAC clubavond
pag. 18
PIC architectuur
0505-1010-2007
BRAC clubavond
pag. 19
Informatie/documentatie (1) Een willekeurige greep uit de grote hoeveelheid beschikbare documentatie & informatie over PIC’s, pic-programming, voorbeeldprogramma’s, software resources etc. Fabrikant www.microchip.com http://buy.microchip.com Algemene info www.circuitsonline.net http://www.wattystuff.net/wattystuff.htm www.picbasic.org www.picbasic.nl Resources JAL:
BASIC:
0505-1010-2007
www.voti.nl/jal http://pic.flappie.nl
Wouter van Ooijen Stef Mientky
http://www.myke.com www.picbasic.nl
Mike Predko Frits Kieftenbelt (mini cursus)
BRAC clubavond
pag. 20
Informatie/documentatie (2) Compilers Asm: JAL: JAL V2:
BASIC:
Programmers PICkit2 Bobblick ICprog
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)
www.microchip.com http://www.bobblick.com http://www.ic-prog.com
Boeken Programming and customizing PICmicro microcontrollers (Mike Predko, 1190p) PIC microcontrollers (Bert van Dam, 440p)
0505-1010-2007
BRAC clubavond
pag. 21