Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten:...

21
P P eripheral eripheral I I nterface nterface C C ontrollers ontrollers BRAC clubavond 5 BRAC clubavond 5 - - 10 10 - - 2007 2007 PE2WDO PE2WDO

Transcript of Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten:...

Page 1: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

PPeripheraleripheralIInterfacenterface

CControllersontrollers

BRAC clubavond 5BRAC clubavond 5--1010--20072007PE2WDOPE2WDO

Page 2: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 22

Programma Programma

IntroductieIntroductieWat is een PICWat is een PICWat heb je nodig om te beginnenWat heb je nodig om te beginnenPraktijkopdrachten:Praktijkopdrachten:

Voorbeeld met uitlegVoorbeeld met uitlegOpdrachtenOpdrachten

Page 3: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 33

Wat is een PICWat is een PICProgrammableProgrammable Intelligent ComputerIntelligent ComputerGeneralGeneral Instrument (PIC1650)Instrument (PIC1650)PeripheralPeripheral Interface ControllerInterface ControllerPICmicroPICmicro©© van Microchip van Microchip TechnologyTechnologyHarvardHarvard chip architectuur (12,14, 16bit)chip architectuur (12,14, 16bit)RISC instructieset (ca. 35RISC instructieset (ca. 35--70 instructies)70 instructies)Huidige features:Huidige features:

ProcessorProcessorEEPROM (Flash) /RAMEEPROM (Flash) /RAMDigitale I/ODigitale I/OA/D A/D convertorsconvertors/PWM/PWMUARTUART, I2C en SPI interface, I2C en SPI interfaceTimers, sleepmodeTimers, sleepmodeRFRF--integratedintegratedEtc.Etc.((dsPICdsPIC))

Concurrenten:Concurrenten:

Motorola/68HCxxx, Motorola/68HCxxx,

AtmelAtmel/AVR,/AVR,

80518051

enzenz..

Page 4: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 44

Wat is een PIC (2)Wat is een PIC (2)

Page 5: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 55

Kiezen van het juiste typeKiezen van het juiste typeCriteria:Criteria:

IngebouwdeIngebouwde featuresfeaturesVerkrijgbaarheidVerkrijgbaarheidKostprijsKostprijsGebruiksgemakGebruiksgemakKwaliteitKwaliteit en en prijsprijs ontwikkeltoolsontwikkeltoolsBeschikbaarheidBeschikbaarheid informatieinformatieVoorbeeldVoorbeeld projecten/toepassingenprojecten/toepassingen

Page 6: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 66

Overzicht gangbare Overzicht gangbare PICPIC’’ss::

10.0010 a/d, mssp256153616k34wdip 4018F452

9.0010 a/d, mssp2565128k34wdip 4018F442

9.0010 a/d, mssp256153616k34sdip 2818F252

8.3010 a/d, mssp2565128k34sdip 2818F242

9.505 a/d, mssp2563688k33wdip 4016F877

8.205 a/d, mssp2563688k22sdip 2816F876

7.505 a/d, uart1281924k33wdip 4016F874

7.005 a/d, uart1281924k22sdip 2816F873

4.005 a/d, mssp641282k22sdip 2816F872

5.905 a/d, uart641282k33wdip 4016F871

5.005 a/d, uart641282k22sdip 2816F870

3.505 d/a, uart, osc1282242k16sdip 1816F628

4.705 -64381k13sdip 1816F84A

1.905 a/d, osc128641k6sdip 812F675

1.605 osc128641k6sdip 812F629

1.801 osc-411k6sdip 812F509

Euro MIPSPeriferieEEPROMRAMMEMI/Obehuizingchip

Page 7: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 77

Wat heb je nodig (1) ?Wat heb je nodig (1) ?VoorkennisVoorkennis/info:/info:

Idee/ontwerpIdee/ontwerpBasiskennis van Basiskennis van electronicaelectronicaEnige ervaring in programmerenEnige ervaring in programmerenDeviceDevice gegevens/datasheets gegevens/datasheets PICPIC’’ssVoorbeelden/cursusmateriaalVoorbeelden/cursusmateriaal

Page 8: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 88

Wat heb je nodig (2) ?Wat heb je nodig (2) ?Enig gereedschap:Enig gereedschap:

Compiler/Compiler/editoreditor::-- BASIC (veel varianten, gratis demo versies op BASIC (veel varianten, gratis demo versies op wwwwww))

C/C++ C/C++ ,,,,Pascal Pascal ,,,,JAL (JAL (freewarefreeware))

AssemblerAssembler//editoreditor ((MicroChipMicroChip): ): MPLABMPLABMPASMMPASM

ProgrammerProgrammer (kopen/(kopen/zelfbouwenzelfbouwen))BreadboardBreadboard, , expirimenteerprintexpirimenteerprint of prototypeof prototype

Page 9: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 99

Aan de gang (1)Aan de gang (1)Hardware opbouwen (Hardware opbouwen (breadboardbreadboard))

Page 10: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1010

Aan de gang (2)Aan de gang (2)Software flowchart makenSoftware flowchart maken

StartStart

EindeEindeKlaar?Klaar?

InitialiseerInitialiseer PICPIC

Doe ietsDoe iets

Doe nog ietsDoe nog iets

..incinc--filefile

NN JJ

Page 11: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1111

Aan de gang (3)Aan de gang (3)---- ================================================================================---- Program Program Voorbeeld1Voorbeeld1---- AuthorAuthor PE2WDOPE2WDO---- versionversion 1.01.0---- release release 1717--0808--20072007---- ------------------------------------------------------------------------------------ PurposePurpose Voorbeeld t.b.v. oefening1Voorbeeld t.b.v. oefening1---- BRAC PIC Avond 05BRAC PIC Avond 05--1010--20072007---- ------------------------------------------------------------------------------------ compiler compiler JAL V2.0 GNU open JAL V2.0 GNU open sourcesource---- ================================================================================

includeinclude 16f628 16f628 ---- Hardware configuratie PIC 16F628Hardware configuratie PIC 16F628var bit led1 is pin_b4 var bit led1 is pin_b4 ---- Definieer poort als bit variabeleDefinieer poort als bit variabeleconstconst tdelaytdelay = 250 = 250 ---- Definieer variabele voor vertragingstijdDefinieer variabele voor vertragingstijdpin_b4_pin_b4_directiondirection = output = output ---- Stel poort B4 in als uitgangStel poort B4 in als uitgang

ForeverForever loop loop ---- herhaal eindeloos tot aan einde loopherhaal eindeloos tot aan einde loopled1 = high led1 = high ---- zet Led1 aanzet Led1 aandelaydelay_1mS ( _1mS ( tdelaytdelay ) ) ---- wacht 250 x 1mSwacht 250 x 1mSled1 = led1 = lowlow ---- zet Led1 uitzet Led1 uitdelaydelay_1mS ( _1mS ( tdelaytdelay ) ) ---- wacht 250 x 1mSwacht 250 x 1mS

End loopEnd loop

11

22

33

Programmavoorbeeld in JALProgrammavoorbeeld in JAL

HEADERHEADER

INITIALISATIEINITIALISATIE

PROGRAMMA BODYPROGRAMMA BODY

Page 12: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1212

Aan de gang (4)Aan de gang (4)Software code Software code editenediten/saven/savenCompilerenCompilerenFouten herstellen/debuggenFouten herstellen/debuggenHEXHEX--codecode ““brandenbranden””Hardware/software samen bouwenHardware/software samen bouwenTesten en fouten herstellenTesten en fouten herstellenKlaar!Klaar!

Page 13: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1313

PraktijkopdrachtenPraktijkopdrachten

1. 1. KnipperledsKnipperleds 15min15min2. 2. KnipperledsKnipperleds met met aan/uitaan/uit SWSW 15min15min3. Sequencer3. Sequencer 20min20min4. Sequencer/ID4. Sequencer/ID--erer ((callgevercallgever)) 45min45min

-- Met het BRAC prototype printjeMet het BRAC prototype printje-- VoorbeeldprogrammaVoorbeeldprogramma in JALin JAL

Page 14: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1414

1. 1. KnipperledsKnipperleds

OpdrachtOpdracht 1:1:

laatlaat led1 en led2 led1 en led2 afwisselendafwisselend en en zichtbaarzichtbaarknipperenknipperen met met eeneen frequentiefrequentie van van ongeveerongeveer 2 Hz2 Hz..

Page 15: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1515

2. 2. KnipperledsKnipperleds met met aan/uitaan/uit

OpdrachtOpdracht 2:2:

De De ledsleds zijnzijn normaalnormaal ((rustsituatierustsituatie) ) gedoofdgedoofd

ZodraZodra SW1 SW1 wordtwordt ingedruktingedrukt begintbegint led1 led1 tete knipperenknipperenLed 2 Led 2 blijftblijft gedoofdgedoofd..

ZodraZodra SW1 SW1 wordtwordt losgelatenlosgelaten dooftdooft led1 en led1 en begintbegintLed2 Led2 tete knipperenknipperen

Page 16: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1616

3. Sequencer3. SequencerOpdrachtOpdracht 3:3:

In rust In rust zijnzijn allealle ledsleds uituit

Na Na hethet drukkendrukken van SW1 van SW1 gaangaan de de ledsleds 1 1 t/mt/m 4 in 4 in volgordevolgorde met met vertragingvertraging van ca. 100mSec. van ca. 100mSec. AanAan

Na Na loslatenloslaten van SW1 van SW1 gaangaan de de ledsleds in de in de omgekeerdeomgekeerde volgordevolgordeuituit met met eeneen vertragingvertraging van ca. 100mSec.van ca. 100mSec.

VoordatVoordat de de ledsleds uitgaanuitgaan is is erer gedurendegedurende 1 sec. 1 sec. eeneen audio audio toontoonvan ca. 1kHz van ca. 1kHz tete horenhoren via de buzzervia de buzzer

Page 17: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1717

4. Sequencer/ID4. Sequencer/ID--erer ((callgevercallgever))OpdrachtOpdracht 4: 4:

pas sequencer software van de pas sequencer software van de vorigevorige opdrachtopdracht zozo aanaan datdatgedurendegedurende hethet ingedruktingedrukt houdenhouden jeje eigeneigen amateur call in amateur call in via de buzzer in via de buzzer in morsemorse hoorbaarhoorbaar wordtwordt

pas de timing pas de timing zozo aanaan datdat ditdit pas 5 sec. pas 5 sec. nana activerenactiveren van van SW1 SW1 voorvoor hethet eersteerst gebeurtgebeurt, , daarnadaarna iedereiedere 15 sec.15 sec.

bouwbouw volgendevolgende functiesfuncties in:in:SW2 open: SW2 open: callgevercallgever geactiveerdgeactiveerd ((mitsmits SW1 SW1 ingedruktingedrukt))SW3 open: roger beep SW3 open: roger beep geactiveerdgeactiveerd ((bijbij hethet lossenlossen van van SW1) SW1)

Page 18: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1818

5. 5. VoorbeeldVoorbeeld: : eeneen digitaledigitale SWRSWR--metermeter

PIC16F876APIC16F876AProton PIC basic Proton PIC basic 2 2 analogeanaloge ingangeningangen (Fwd/Rev)(Fwd/Rev)LCD display 2x16LCD display 2x16LCD LCD toonttoont Pout en VSWRPout en VSWR

in in teksttekst (Pout links (Pout links bovenboven, VSWR links , VSWR links onderonder))alsals barbar--graph (1 per graph (1 per regelregel, , achterachter betreffendebetreffende teksttekst))alarm alarm uitganguitgang (LED (LED aanaan) ) bijbij SWR>1.5SWR>1.5PmaxPmax ca. 700W (SSBca. 700W (SSB--piekenpieken bijbij legal power)legal power)VSWRmaxVSWRmax ca. 1:6ca. 1:6

Page 19: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 1919

PIC architectuurPIC architectuur

Page 20: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 2020

Informatie/documentatie (1)Informatie/documentatie (1)Een willekeurige greep uit de grote hoeveelheid beschikbare docuEen willekeurige greep uit de grote hoeveelheid beschikbare documentatie & mentatie & informatie over informatie over PICPIC’’ss, , picpic--programmingprogramming, voorbeeldprogramma, voorbeeldprogramma’’s, software s, software resources etc.resources etc.

Fabrikant Fabrikant www.microchip.comwww.microchip.comhttp://buy.microchip.comhttp://buy.microchip.com

Algemene infoAlgemene infowww.circuitsonline.netwww.circuitsonline.nethttphttp://://www.wattystuff.netwww.wattystuff.net//wattystuff.htmwattystuff.htmwww.picbasic.orgwww.picbasic.orgwww.picbasic.nlwww.picbasic.nl

ResourcesResourcesJALJAL:: www.voti.nl/jalwww.voti.nl/jal Wouter van Wouter van OoijenOoijen

http://http://pic.flappie.nlpic.flappie.nl StefStef MientkyMientky

BASICBASIC:: http://www.myke.comhttp://www.myke.com MikeMike PredkoPredkowww.picbasic.nlwww.picbasic.nl FritsFrits KieftenbeltKieftenbelt (mini cursus) (mini cursus)

Page 21: Peripheral Interface Controllers - radioclub.nl · UART, I2C en SPI interface ... Concurrenten: Motorola/68HCxxx, Motorola/68HCxxx, Atmel/AVR, 8051 enz. 05-10-2007 BRAC clubavond

0505--1010--20072007 BRAC clubavondBRAC clubavond pag. pag. 2121

Informatie/documentatie (2)Informatie/documentatie (2)CompilersCompilersAsmAsm:: www.microchip.comwww.microchip.comJALJAL:: www.voti.nlwww.voti.nlJAL V2:JAL V2: httphttp://://www.casadeyork.comwww.casadeyork.com/jalv2/jalv2

httphttp://www.wattystuff.net/tiki/tikiindex.php?page=PIC+Micro://www.wattystuff.net/tiki/tikiindex.php?page=PIC+Micro

BASICBASIC:: www.sfcompiler.co.ukwww.sfcompiler.co.uk ((swordfishswordfish))www.crownhill.co.ukwww.crownhill.co.uk ((picbasicpicbasic pro)pro)

ProgrammersProgrammersPICkit2 PICkit2 www.microchip.comwww.microchip.comBobblickBobblick http://http://www.bobblick.comwww.bobblick.comICprogICprog http://www.ichttp://www.ic--prog.comprog.com

BoekeBoekennProgrammingProgramming and and customizingcustomizing PICmicroPICmicro microcontrollers (microcontrollers (MikeMike PredkoPredko, 1190p) , 1190p) PIC microcontrollers (Bert van Dam, 440p)PIC microcontrollers (Bert van Dam, 440p)