Mikrocontroller selbst programmieren - · PDF fileProgrammierung in C (eigene C­Bibliothek)

  • Upload
    doananh

  • View
    228

  • Download
    6

Embed Size (px)

Citation preview

  • Mikrocontrollerselbstprogrammieren

    UweBerger

  • 03/2008(CLT) 2

    MikrocontrollerselbstprogrammierenUweBerger

    ZurckzudenAnfngen...

  • 03/2008(CLT) 3

    MikrocontrollerselbstprogrammierenUweBerger

    Inhalt WassindMikrocontroller AVRMikrocontroller VoraussetzungenfrMikrocontrollerProjekte Projektbeispiele

  • 03/2008(CLT) 4

    MikrocontrollerselbstprogrammierenUweBerger

    WassindMikrocontroller AVRMikrocontroller VoraussetzungenfrMikrocontrollerProjekte Projektbeispiele

  • 03/2008(CLT) 5

    MikrocontrollerselbstprogrammierenUweBerger

    ZweiDefinitionen Mikrocontroller:

    Mikrorechner,beidenenvieleKomponenteneinesComputersaufeinemSchaltkreisintegriertsind("EinChipComputer")

    Prozessor,Speicher,Interruptcontroller,diverseEin/AusgabeEinheitenusw.

    Mikroprozessoren: smtlicheKomponenteneinesProzessorsmitseinem

    SteuerwerkaufeinemChip spezielleMechanismenzueffizientenBefehlsabarbeitung Speicher,Ein/AusgabeEinheitenusw.extern

  • 03/2008(CLT) 6

    MikrocontrollerselbstprogrammierenUweBerger

    Mikrocontrollervs.Mikroprozessoren Mikrocontroller:

    begrenzteRessourcen geringeRechenleistung bereitsmitwenig

    Peripherielauffhig meistfrspezielle

    Anwendungsgebiete Messen,Steuern,Regeln idealfrHobbyProjekte

    Mikroprozessoren: skalierbareRessourcen hoheRechenleistung ohnezustzliche

    Peripherienichtlauffhig universelleRechen

    maschine PCs,Grorechner,

    Supercomputer

  • 03/2008(CLT) 7

    MikrocontrollerselbstprogrammierenUweBerger

    AndereProzessorfamilien DSP(Digitalsignalprocessor)

    spezialisierteChipszurdigitalenVerarbeitungvonanalogenSignalen

    Filter,Effekte,Datenkompression,Signalanalyse meistmitA/DundD/AWandlerausgestattet meistechtzeitfhig Audio/VideoBearbeitung Herstellerz.B.AnalogDevices,TexasInstruments,Motorola...

  • 03/2008(CLT) 8

    MikrocontrollerselbstprogrammierenUweBerger

    AndereProzessorfamilien FPGA(FieldprogrammableGateArray)

    "vorOrtmodifizierbarerLogikbausstein" frei,mittelseinerBeschreibungssprache,konfigurierbareund

    kombinierbareHardwarekomponenten jederzeitrekonfigurierbar CPLD(ComplexProgrammableLogicDevice) ASIC(Applicationspecificintegratedcircuit)

  • 03/2008(CLT) 9

    MikrocontrollerselbstprogrammierenUweBerger

    VerbreiteteMikrocontrollerFamilien MSP430

    spezielleMCReihederFirmaTexasInstruments 16BitProzessorkern

    ARM spezielle32BitRISCProzessorkernederFirmaARM diverseHerstellerverwendendiesenKernfreigeneProdukte Vorteil:einheitlicherBefehlssatz

  • 03/2008(CLT) 10

    MikrocontrollerselbstprogrammierenUweBerger

    VerbreiteteMikrocontrollerFamilien PIC

    Hersteller:MicrochipTechnologyInc. 8,16,32BitRISCProzessoren spezielleintegrierteKomponenten:LCD,USB,Ethernetetc. ebenfallsbeiHobbyElektronikernsehrbeliebt

    8051 ProzessorarchitekturvonIntel,diverseDerivatevon

    verschiedenenHerstellern 8BitCISCProzessorkern

    AVR>MikrocontrollerReihederFirmaAtmel...

  • 03/2008(CLT) 11

    MikrocontrollerselbstprogrammierenUweBerger

    WassindMikrocontroller AVRMikrocontroller VoraussetzungenfrMikrocontrollerProjekte Projektbeispiele

  • 03/2008(CLT) 12

    MikrocontrollerselbstprogrammierenUweBerger

    AVRMikrocontrollerfamilien AVR:offiziellnureinEigenname bersicht:http://www.avrpraxis.de/content/view/34/53/ unterscheidensichin:

    Prozessortakt Speicher AnzahlderI/OPins,ADWandler,Timer,Interrupt Stromverbrauch integrierteSpezialkomponenten

  • 03/2008(CLT) 13

    MikrocontrollerselbstprogrammierenUweBerger

    AVRMikrocontrollerfamilien AT90Sxxx:veraltete,"klassische"AVRReihe AT90xxx:NachfolgerderClassicReihe(auchUSB,CAN) ATtiny:"kleine"AVRReihe;wenigeI/OPins,kleiner

    Speicher ATmega:"groe"AVRReihe;teilweisebis256kBFlash,86

    I/OPins,16ADWandler

    AVR32(32BitRISCProzessorkern)gehrtnichtzurAVRReihe

  • 03/2008(CLT) 14

    MikrocontrollerselbstprogrammierenUweBerger

    AVRMikrocontroller

  • 03/2008(CLT) 15

    MikrocontrollerselbstprogrammierenUweBerger

    MikrocontrollerKompomenten(AVR) Prozessorkern

    8BitRISCProzessorkern meist12TaktzyklenproBefehl Taktfrequenzbis20MHz

    Taktgeber internerOszillator externerTakteingang SteuerungberFuseBits

  • 03/2008(CLT) 16

    MikrocontrollerselbstprogrammierenUweBerger

    MikrocontrollerKompomenten(AVR) Speicher

    HarvardArchitektur(getrennteDaten/Befehlsspeicher) Flash(nichtflchtigerProgrammspeicher) SRAM(flchtigerDatenspeicher,u.a.Stack,schnell) EEPROM(nichtflchtigerDatenspeicher,langsam)

    Interruptsteuerung UnterbrechungdesHauptprogrammsdurchspezielle

    Serviceroutinen(ISR) ZustanddesHauptprogrammswirdvollstndiggesichert diverseInterruptquellen

  • 03/2008(CLT) 17

    MikrocontrollerselbstprogrammierenUweBerger

    MikrocontrollerKomponenten(AVR) I/OPorts

    PinsdiealsEinoderAusgngekonfigurierbarsind ZustandviaspeziellerRegisterein/setzbar Interruptquelle

    UART(UniversalAsynchronousReceiverTransmitter) asynchroneserielleSchnittstelle KommunikationmitderAuenwelt bis115kBit/s Interruptquelle

  • 03/2008(CLT) 18

    MikrocontrollerselbstprogrammierenUweBerger

    MikrocontrollerKomponenten(AVR) SPI(SerialPeripherialInterface)

    schnellesynchroneserielleSchnittstelle(bisca.1MBit/s) KommunikationzwischenMCsoderanderenexternen

    Komponenten Interruptquelle

    A/DWandler(Analog/DigitalWandler) UmwandlunganalogerSpannungeninDigitalwerte(max.10

    Bit;max.Wandlerrateca.200kHz) Analogkomperator Interruptquelle

  • 03/2008(CLT) 19

    MikrocontrollerselbstprogrammierenUweBerger

    MikrocontrollerKomponenten(AVR) Zhler/Zeitgeber

    unabhngigeundfreikonfigurierbareZhler(8/16Bit) GenauigkeitabhngigvonderTaktquelle interneundexterneTaktquelle Interruptquelle(Compare,Capture,Overflow)

    PWM(PulseWidthModulation) ErzeugungvondigitalenSignalenmitbestimmten

    TastverhltnisbeifesterGrundfrequenz z.B.RegelungeinesGleichstromverbrauchers D/AWandler(Tiefpassnachschalten)

  • 03/2008(CLT) 20

    MikrocontrollerselbstprogrammierenUweBerger

    MikrocontrollerKomponenten(AVR) I2C(InterICBus)/TWI(TwowireInterface)

    synchronerseriellerBus(2Drhte) mind.1Masterundmax.128adressierbareSlaves bismax.3,4Mbit/s

    Watchdog zuschaltbarerunabhngigerTimerzurProgrammberwachung lstnachkonfigurierbarerZeitund"Nichtauffrischen"einen

    Resetaus sinnvollz.B.zumSchutzvonHardware

  • 03/2008(CLT) 21

    MikrocontrollerselbstprogrammierenUweBerger

    MikrocontrollerKomponenten(AVR) JTAG/ISP(InSystemProgramming)

    spezielleSchnittstellezumLadenderFirmwareundDebuggen JTAG:StandardIEEE1149.1der"JointTestActionGroup"

    undeinigeweitereSpezialkomponenten...

  • 03/2008(CLT) 22

    MikrocontrollerselbstprogrammierenUweBerger

    WassindMikrocontroller AVRMikrocontroller VoraussetzungenfrMikrocontrollerProjekte Projektbeispiele

  • 03/2008(CLT) 23

    MikrocontrollerselbstprogrammierenUweBerger

    MinimalVoraussetzungMCHardware einMCmiteinigenweiteren

    Bauteilen Stromversorgung einpaarLEDs,Taster,

    Widerstnde Programmiergert

    Bild:http://kreativeschaos.com

  • 03/2008(CLT) 24

    MikrocontrollerselbstprogrammierenUweBerger

    Entwicklerboards fertigeBaugruppen,diebereitsmitdiversenI/Ound

    Programmierschnittstellenausgestattetsind ReferenzboardsderFirmaAtmel:STK200,STK500,

    STK1000,AVRButterfly zahlreichekommerzielleundfreieBoards:myAVR,

    Etherrape,RNControlu.v.m. meistwerdendiverseZusatzbaugruppenzurErweiterung

    angeboten

  • 03/2008(CLT) 25

    MikrocontrollerselbstprogrammierenUweBerger

    SoftwarezurMCProgrammierung Programmiersprachen:Assembler,C/C++,Basic,Pascal,

    Java,Forthu.v.m. EntwicklungsumgebungenfrC:

    avrgcc,avrlibc,avrbinutils frWindowsWinAVR AVRStudio(FirmaAtmel),kompletteEntwicklungs

    umgebungfrWindows AVREclipsePlugin

    AVRPascal,BascomAVR,NanoVMetc.

  • 03/2008(CLT) 26

    MikrocontrollerselbstprogrammierenUweBerger

    FlashenvonMikrocontrollern irgendwiemuderMaschinencodeindenProgrammspeicher

    desMC Mglichkeiten:

    Programmieradapter:Hardware,diedenMCberspezielldafrvorgeseheneAnschlsseprogrammiert(USBasp,USBprog,USBispetc.)

    Bootloader:Software,diesichineinemgeschtztenBereichaufdemMCbefindetundz.B.eineserielleSchnittstellezumFlasheninitialisiert

    Programmiertools:avrdude,PonyProg

  • 03/2008(CLT) 27

    MikrocontrollerselbstprogrammierenUweBerger

    DebuggenvonMCProgrammen Debuggen"inderSchaltung":JTAG(spezielleHardware

    erforderlich) Debuggen/SimulationaufdemPC:

    Windows:z.B.SimulAVR/GDB(WinAVR),AVRStudio Linux:gdbavr/simulavr

    FehlersuchedurchgezielteAusgaben: serielleSchnittstelleu.. LEDs,LCDisplay,Taster/Schalter Multimeter,Oszilloskop,Logikprferetc.

  • 03/2008(CLT) 28

    MikrocontrollerselbstprogrammierenUweBerger

    MikrocontrollerProgramme allesistEINProgramm,esgibtkeinenachladbarenModule manmusichumallesselbstkmmern:Hardware/

    Schnittstelleninitialisierung,Programmsteuerung,Ein/Ausgabesteuerungetc.

    smtlicheProgrammteilemssen"kooperativ"untereinandersein

    begrenzteProgrammundDatenspeicherbereiche,esgibtkeine"SwapPartition"

    mglichstnichtmitgebrochenenZahlenrechnen

  • 03/2008(CLT) 29

    MikrocontrollerselbstprogrammierenUweBerger

    MikrocontrollerProgramme(Struktur) Endlosschleifevs.Interruptroutinen

  • 03/2008(CLT) 30

    MikrocontrollerselbstprogrammierenUweBerger

    WassindMikrocontroller AVRMikrocontroller VoraussetzungenfrMikrocontrollerProjekte Projektbeispiele

  • 03/2008(CLT) 31

    MikrocontrollerselbstprogrammierenUweBerger

    Asuro einf