FUTURE ELECTRONICS FUTURE ACTIVE INDUSTRIAL...

download FUTURE ELECTRONICS FUTURE ACTIVE INDUSTRIAL …produktinfo.conrad.de/datenblaetter/150000-174999/169960-an-01-de... · Die Microcontroller vonMicrochip können in vier Familien eingeteilt

If you can't read please download the document

Transcript of FUTURE ELECTRONICS FUTURE ACTIVE INDUSTRIAL...

  • Bill 0 ConnellDr.-Ing. Gerald Kupris

    FUTURE ELECTRONICS

    FUTURE ACTIVE INDUSTRIAL

    Handbuch frPIC-Starter

    Software-Entwicklung mit MPLAB

    ganz einfach

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Inhaltsverzeichnis

    1. Vorwort 3

    2. Die PIC-Microcontroller Familien2.1. Basis-Familie ..................................................................... 52.2, Mittlere Familie ................................................................. 62.3. High-End Familie.. ............................................................ 82.4. S-Pin Microcontroller-Familie.. ........................................ .9

    3. Aufhau und Besonderheiten der PIC-Controller3.1 RISC-Controller mit Harvard-Architektur.. IO. .....................3.2. Programmspeicher ........................................................... 123.3. Datenspeicher ................................................................... 133.4. Peripheriebaugruppen ...................................................... 143.5. Spezielle Eigenschaften ................................................... 153.6. Zusammenfassung ........................................................... 17

    4. Entwicklungswerkzeuge fiir PIC-Microcontroller4.1. Softwarewerkzeuge.. ........................................................ 194.2. Starterkit PICSTART Plus ............................................... 2 04.3 Emu latoren ....................................................................... 21.4.4. Programmiergerte ........................................................... 2 4

    5. Grundlagen der Entwicklungsoberflche MPLAB5.1. bersicht und Bestandteile von MPLAB ......................... 265.2. Installation von MPLAB.. ............................................... .275.3. Erste Schritte mit MPLAB.. ............................................. 285.4. MPLAB und der PICSTART Plus.. ................................. 33

    6. Debuggen von Programmen mit dem MPLAB Simulator6.1. Grundlagen des Simulators .............................................. 356.2. Debugging-Mglichkeiten von MPLAB ........................ .376.3. Arbeit mit Stimulus-Dateien ............................................ 456.4. Datei-Endungen, die von MPLAB genutzt werden ........ .48

    -l-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    7. Beispielapplikation fr den PIC16F847.1. Besonderheiten und Aufbau des PIC16FS4 . . . . . . . . . . . . . . . . . . . . . 497.2. Einfaches Lauflicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1

    8. Beispielapplikationen fr den PIC12C5088. I . Besonderheiten und Aufbau des PIC12CSOS.. ................. 568.2. Serielle Kommunikation .................................................. 598.3. Neue Schaltungen mit den PlC12Cxxx-Controllern........6 5

    9. Realisierung von A/D-Wandlern mit PIC-Micros9.1. Einfacher A/D-Wandler mit dem PIC16C54 . . . . . . . . . . . . . . . . . . . 669.2. Slope-Verfahren zur AID-Wandlunub..........,.......... 67

    10. Serielle In-Circuit-Programmierung10.1. Prinzip der seriellen Programmierung . . . . . . . . . ..

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    1. Vorwort

    Als die Firma Arizona Microchip Ende der achtziger Jahre den erstenMicrocontroller auf den Markt brachte (heute unter dem MarkennamenPICmicro@ bekannt), konnte niemand vorhersagen, ob diese neuenBausteine von den Anwendern akzeptiert werden wrden. Mittlerweileist Microchip nach Auskunft des MarktforschungsunternehmensDataquest weltweit zur Nummer fnf unter allen Herstellern von S-BitMicrocontrollern geworden. Dieser Erfolg ist fr ein so kleinesUnternehmen bemerkenswert und hat verschiedene Grnde. Neben demprofessionellen Marketing sind die einzigartige Architektur und diebesonderen Eigenschaften der PIC-Microcontroller Ursachen deshufigeren Einsatzes von PTC-Controllern.Gerade die PICmicros sind in den letzten Jahren in immer mehrAnwendungen vorgedrungen, in denen vor einiger Zeit die Verwendungeines Microcontrollers noch als undenkbar erschien. Mittlerweilewerden verschiedenste digitale und analoge Standardschaltkreise, jasogar mechanische Schalter erfolgreich durch PTC-Controller ersetzt.Microchip hat sich zum Ziel gesetzt bis zum Jahr 2000 der nachMotorola zweitgrte Hersteller von S-Bit Microcontrollern weltweit zusein und man darf gespannt darauf sein, wie sie dieses Ziel erreichenwerden.Future Electronics ist ein weltweit ttiges kanadisches Unternehmen>da als autorisierter Vertragshndler nicht nur die Firma Microchip,sondern auch eine Reihe anderer Halbleiterhersteller vertritt. Einbesonderer Schwerpunkt von Future Electronic,s ist die kompetentetechnische IJntersttzung der Kunden. Mit einer Mannschaft vonmomentan 8 Applikationsingenieuren fr Deutschland werden nicht nuraktuelle Probleme beim Einsatz elektronischer Bauelemente gelst, CSwerden auch die neuesten Entwicklungen gezielt untersttzt und neueBauelemente vorgestellt und an den Markt herangetragen. Eine weitereBesonderheit ist Future Active Industrial (FAI), ein Bereich von FutureElectronics, der speziell fr die intensive Betreuung von kleinen undmittelstndischen Unternehmen zustndig ist. Gerade in diesen Firmenkommen solche innovativen Produkte wie die PIC-Microcontrollerbesonders hufig zum Einsatz.Die Autoren des vorliegenden Heftchens haben alsApplikationsingenieure von Future Electronics die PIC-Controller

    -3-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    bereits vielen Interessenten vorgestellt. Dieses IIeftchen soll weder diebereits zu dem Thema PICmicro geschriebenen Bcher ersetzen, nochkann es das Studium der Datenbcher und Applikationshinweiseerbrigen. Das Ziel des Heftchens ist es vielmehr, dem interessiertenEinsteiger eine Hilfe zur schnellen Realisierung von Schaltungen undProgrammen mit einem der PIC-Controller zu geben und dazubeizutragen, die Hrden, welche bei der Anwendung dieser neuenBausteine entstehen knnten, zu umgehen.Andererseits ist das Heftchen kein Einsteigerkurs in Microcontroller-Technik. Der Anwender sollte bereits ein Grundwissen ber denAufbau, d i e N u t z u n g u n d Prcgrammierung v o n e i n f a c h e nMicrocontrollern haben. Er wird aber Schritt fr Schritt mit denBesonderheiten der PICmicros vertraut gemacht und bekommt einenberblick ber die Werkzeuge, die fr deren Programmierungnotwendig sind. Dazu sind in dem Heft neben einer Einfhrung in dieArchitektur der PIC-Controller und die Bedienung derEntwicklungsoberflche MPLAB sowohl kleine Hard- undSoftwarebeispiele, als auch weiterfhrende Tricks, Kniffe und Hinweiseenthalten. Am Ende des Heftches sind Verweise auf das Original-Datenmaterial von Microchip und andere interessante Bcher zu finden.Ein besonderes Dankeschn fr die IJntersttzung bei der Erstellungdieses Bchleins gilt den Mitarbeitern der Firma Microchip,insbesondere den Applikationsingenieuren in der NiederlassungMnchen. Auerdem einen herzlichen Gru an die Mitarbeiter derTelefon-Support-Hotline von Future Electronics, insbesondere an HerrnWouter Linnemans. Einen besonderen Dank auch an die Firma HewlettPackard, die den Druck dieses Heftchens untersttzt hat.Ein Ausspruch des russischen Dichters Le.w Tolstoi ist es wohl, der dasWesen der PIC-Microcontroller besonders treffend charakterisiert: ,,Undwo es keine Schlichtheit, Gte und Wahrhaftigkeit gibt, da ist auchkeine Gre. Die PIC-Microcontro:ler sind es: schlicht, gut undwahrhaftig. Und deshalb sind sie wahrscheinlich auch so grogeworden. In diesem Sinne wnschen 1 hnen die Autoren viel Erfolg beiden ersten Schaltungen mit den PIC-Microcontrollern.

    Mnchen im Februar 1998Bill OConnellGerald Kupris

    -4

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    2. Die PIC-Microcontroller Familien

    Die Microcontroller von Microchip knnen in vier Familien eingeteiltwerden, die sich jeweils in ihren speziellen Eigenschaften und in ihremEinsatzgebiet unterscheiden. Dabei ist man von dem Prinzipausgegangen, da die Controller mit gleicher Pinzahl auch soweit wiemglich pinkomatibel sind. Wenn man also ein Problem nicht mit Hilfeeines bestimmten Controllers lsen kann: dann kann man oft auf einenanderen, leistungsfhigeren PICmicro (z.B. mit mehr Speicher)zurckgreifen.

    2.1. Basis-Familie

    Die PIC16CSx Familie wird auch als die ,,Basis-Familie unter denPIC-Microcontrollern bezeichnet. Die Mitglieder dieser Familie besitzeneinen 12 Bit breiten Programmspeicher (der genaue Aufbau wird imnchsten Kapitel besprochen) und zeichnen sich durch ein sehr gutesPreis-Leistungs-verhltnis aus. Fast alle Mitglieder der Familie habenneben der Recheneinheit und dem Programm- und Datenspeicher auchTimer, I/O-Ports und Watchdog-Timer auf dem Chip integriert.

    Bauteil Programm-speicher,Wrter

    PIC16C.52 1 384 x 12 OTP 125 RAM 14 MHz 1 12xI/O 1 1 TimerPIC 16C54 512 x 12 OTP 25 RAM 20MHz 12xI/O 1 TimerPIC 16CR54 512 x 12 ROM 25 RAM 20 MHz 12xI!O 1 TimerPIC 16C54A 512 x 12 OTP 25 RAM 20 MHz 12xI/O 1 TimerPIC 16C54B 512 x 12 OTP 25 RAM 20MHz 12xI/O 1 TimerPIC 16C55 512 x 12 OTP 2 4 RAM 20 MHz 2OxI/O 1 TimerPIC 16C56 1024 x 12 OTP 25 RAM 20 MHz 12xI/O 1 Timer

    IPIC 16C56A 1024 x 12 OTP 25 RAM 20 MHz 12xI/O I Timer1 PIC16CR56A 1 1024 x 12 ROM 125 RAM 120 MHz 1 12xI/O 1 1 TimerPIC16C57 2048 x 12 OTP 72 RAM 20 MHz 2OxI/O 1 TimerPIC 16C5SA 2048 x 12 OTP 73 RAM 2 0 MHz 12xIiO 1 Timer

    Tabelle 1: PIC-Microcontroller der Basis-Familie

    -5

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Zustzliche Peripherieelemente sind bei diesen einfachenMicrocontrollern nicht enthalten, Die ursprngliche Philosophie vonMicrochip lautete, da so wenig Elemente wie mglich in Hardwareintegriert werden und dafr die Controller so leistungsfhig sind, daviele Funktionen in Software ausgefhrt werden knnen. Deswegen gibtes bei dieser einfachsten Microcontroller-Familie auch keine Interrupts,der Programmablauf mu ohne solche Unterbrechungen auskommen.Externe Ereignisse knnen nur durch permanentes Abfragen der I/OPins erkannt werden. Fr viele Applikationen ist ein solcher Betriebohne Interrupts vlli g ausreichend und ermglicht die preisgnstigeRealisierung einfacher Anwendungen.

    2.2. Mittlere Familie

    Die PICl6Cxxx Familie ist die ,,mittle.re Familie unter den PICmicros.In dieser Gruppe wird die einfache Struktur der Basisfamilie durchdiverse Peripherieelemente ergnzt. So gibt es auf diesen Controllernverschiedene serielle Schnittstellen, A/D-Wandler? Komperatoren,E2PROM Datenspeicher u.a.. Die Breite der Programmwrter betrgt beidieser Familie 14 Bit und es ist eine Arbeit mit Interrupts mglich. Esgibt mittlerweile sehr viele Mitglieder dieser Familie und es werdenstndig mehr, so da in der Tabelle 2 nur die wichtigsten Vertreterdieser Familie aufgefhrt und im folgenden einige allgemeineRichtlinien der Namensgebung genannt werden knnen. DiePIC16C55x Bausteine als kompatible Alternativen zur PlCl6C5xFamilie haben nur ein Minimum an Peripherieelementen. DiePIC16C6xx Controller dagegen sind ,mit digitalen Erweiterungen wieSchnittstellen und zustzlichen Timern ausgestattet. Die BezeichnungPIC16C7xx deutet auf das Vorhandensein von A/D-Wandlern und diePIC16FSxx Controller haben EZPROM im Datenspeicher bzw. Flash alsProgrammspeicher. Die PIClOC9xx Controller schlielich haben einenspeziellen Treiber zur Ansteuerung von LCD-Displays an Bord.Ganz neu in dieser Familie werden die Controller der PIC16Clxx Seriesein, die speziell fr anspruchsvolle Aufgaben und die Verwendung vonC-Compilern optimiert wurden und einen stark erweitertenAdressbereich fr Programm und Daten besitzen. Die ersten Bausteinedieser Serie werden Ende 1998 erhltlich sein.

    -6-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    2.4. S-Pin Microcontroller-Familie

    Erst seit kurzer Zeit sind die Controller der PICI2Cxxx Familieerhltlich. Das wesentliche Merkmal dieser Familie ist, da alleController in einem S-Pin Gehuse ausgeliefert werden. Microchip istdamit die weltweit erste und bislang einzige Firma, die eine ganzeFamilie von Microcontrollcrn im S-Pin Gehuse anbietet. DieseBausteine erschlieen nun ganz neue Anwendungsgebiete frMicrocontroller. Sie ersetzen andere analoge oder digitale Schaltkreiseoder sogar mechanische Schalter. Die Controller der PlC12CxxxFamilie knnen sowohl einen Kern mit 12 Bit breitemProgrammspeicher beinhalten, so wie die Bausteine PIC 12C508 undPlC12C509, als auch einen Kern mit 14 Bit breitem Programmspeicherwie der PlC12C671. Die PIC 12Cxxx Bausteine haben einige spezielleEigenschaften, die durch das kleine Gehuse bedingt sind. So gibt esz.B. einen RC-Oszillator auf dem Chip, so da man gegebenenfalls aufeine externe Taktbeschaltung verzichten und die entsprechenden Pinssparen kann.

    Bauteil Programm- Daten-speicher, Speicher,Wrter Byte

    PIC12C508 512 x 12 25 RAMOTP

    PIC 12c509 1024 x 12 41 RAMOTP

    PlC12CE518 512 x 12 25 RAMOTP 16 E*PROM

    PlC12CE519 1024 x 12 41 RAMOTP 16 EPROM

    max. max. Peri-Takt, l/O Pins pherie

    4 MHz 5 x l/O 1 Timer1 x In

    4 MHz 5 x l/O 1 Timer1 x In

    4 MHz 5 x 110 1 Timer1 x In

    4 MHz 5 x 110 1 Timer1 x In

    10MHz 5 xl/O 1 Timer1 x lt1 4 A/D

    10 MHz 5 x 110 1 Timer1 x In 4 AID

    Tabelle 4: PIC-Microcontroller der S-Pin Familie

    -9-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    3. Aufbau und Besonderheiten der PIC-Controller

    3.1. RISC-Controller mit Harvardl-Architektur

    Die Microcontrollcr der PIC-Familien haben einige spezielle Merkmale,die sonst nur Hochleistungs-Rechenmaschinen zugeordnet werden:

    - Harvard-Architektur,- RISC Befehlssatz,- Single Cycle Befehle (ein Befehl bentigt einen Maschinenzyklus),- Langwort-Befehle.

    Die Ausfhrung der PlCmicros in Harvard-Architektur bedeutet, da dieDaten und die Programminformationen durch zwei getrennte Busse andie CPU herangefhrt werden. Bei der herkmmlichen Von-Neumann-Architektur wird dafr nur ein gemeinsamer Bus verwendet, derzwischen Daten und Programm umscha l te t . Be i den PIC-Microcontrollern handelt es sich um S-Bit Controller, das bedeutet, dieBreite eines Datenworts betrgt 8 13it, diese knnen auf einmalverarbeitet werden. Da wir es hier nun mit einer Harvard-Architektur zutun haben, ist es nicht mehr zwingend notwendig, da die Breite dcsProgrammbuses auch 8 Bit betrgt. Und tatschlich, bei den PIC-Microcontrollern betrgt die Breite des Programmbuses 12 Bit im Falleder PIC 16C5x Familie, 14 Bit bei den PIC 16Cxx Controllern und 16 Bitbei der PIC17Cxx Familie. Das ermglicht die Verwendung von

    a) traditionelle Von-Neumann-Architektur(Daten und Programmber den selben Bus)

    b) 1 larvard-Architektur(Daten und Programmber zwei verschiedeneBusse)

    Abbildung 1: Schematische Darstellung der von-Neumann und derHarvard-Architektur

    -IO-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    sogenannten Langwort-Befehlen, das bedeutet ein Befehlswort enthltgleichzeitig die Informationen ber den Befehl und die dazugehrigenDaten. Das Beispiel des Befehls ,,lade Konstante in den Akkumulator(Abbildung 2), zeigt, da der PIC 1 OCxx dafr im Gegensatz zu anderenControllerarten nur ein einziges Befehlswort bentigt (Ein-Wort-Befehle).

    Example: MOVE immediate, Acc

    PIClGCXX: MOVLW #imm 1 llooxx 1 imm1 word/l cycle

    68HCXX: LDAA #imm

    Abbildung 2: I4-Bit I,angwort-Befehl beim PIC16Cxx

    Die PIC-Controller teilen den extern angelegten Takt durch 4, um denMaschinentakt zu erzeugen, wenn also extern ein Takt von 4 MHzangelegt wird, dann luft der Controller mit 1 MHz. Jeder Befehl (bisauf ganz wenige Ausnahmen) wird innerhalb eines Maschinentaktesausgefhrt. Um das zu ermglichen, ist ein ,,Pipelining notwendig:whrend ein Befehl ausgefhrt wird, wird der nchste Befehl bereits ausdem Programmspeicher vorgeladen (siehe Abbildung 3). Das bedeutetaber, da in den Fllen, wenn der lineare Programmablauf verlassenwird (bei Sprngen oder Verzweigungen) der bereits vorgespeicherteBefehl durch einen NOP (kein Befehl) ersetzt werden mu und dergesamte Befehl somit zwei Maschinentakte beansprucht.

    1. MOVLW 55h2. MOVWF PORT3. CALL SUB-14. BSF PORTA, BIT3

    Abbildung 3: Illustration des ,,Pipelining von Befehlen

    Bei den PIC-Microcontrollern spricht man von einem RISC-Befehlssatz(RISC=reduced instruction Set). Das ist durchaus berechtigt, denn beiden Controllern der PIC16CSx Serie gibt es z..B. insgesamt nur 33

    -ll-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Befehle. Diese sind aber sehr mchtig und gestatten eine umfassendeKontrolle ber den Baustein. Es gibt folgende Befehlsgruppen: Byte-Operationen, Bit-Operationen, Konstanten- und Kontrolloperationen.Der Befehlssatz der PIC-Microcontroller ist fast vollstndig orthogonal,das bedeutet, jeder Befehl kann auf jede Speicherstelle angewendetwerden.

    Abbildung 4: Blockschaltbild eines PIC 16C.5~

    3.2. Programmspeicher

    Alle PIC-Microcontroller haben den Programmspeicher auf dem Chip(siehe Beispiel - Abbildung 4). Dort werden die Befehle, welche derMicrocontroller ausfhren soll, gespeichert. Die Breite desProgrammspeichers bzw. eines Befehlswortes betrgt, wie im vorigenKapitel besprochen, je nach Familie entweder 12, 14 oder 16 Bit.Microchip hat schon seit Anfang an die Philosophie verfolgt, denProgrammspeicher als einmalprogrammierbaren Speicher (OTP - onetime programmable) auszufhren. Alle PICmicros sind mit OTP-Programmspeicher ausgefhrt, es gibt aber die meisten Bausteine auchin einer Variante im Keramikgehuse mit Fenster und somit lschbaremProgrammspeicher fr Entwicklungszwecke. Einige der PIC-Controller

    -12-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    sind auch mit speziellem kundenspezifisch ausgefhrtem Masken-ROM-Programmspeicher lieferbar. Diese Option lohnt sich aber nur,wenn der Controller in sehr groen Stckzahlen eingesetzt wird.Ansonsten ist die OTP-Variante eine sehr gute Mglichkeit, den Einsatzeines Microcontrollers mit integriertem Programmspeicher auch frAnwender kleinerer Stckzahlen attraktiv zu machen. Die OTP-Controller im Plastikgehuse sind preiswert herzustellen und miissenlediglich vom Anwender mit dem passenden Programm versehenwerden. Dadurch ist man sehr flexibel und kann das Programmaktuellen Anforderungen anpassen.Immer mehr PIC-Microcontroller werden mit einem EEPROM oderFlash als Programmspeicher ausgestattet. Das ermglicht einwiederholtes Nachladen von Programmen, z.B. zum Zweck einesFirmware-Updates.Die Gre des Programmspeichers betrgt je nach konkretemControllertyp zwischen 5 12 bis zu I6k Programmwrtern.

    3.3. Datenspeicher

    Der Datenspeicher (RAM) der PIC-Controller wird auch als RegisterFiles bezeichnet. Es werden Spezialregister (Special Function Register)und allgemeine Register (General Purpose Register) unterschieden.

    Indirect Addr OOhRTCC

    PCStatus-FSR

    POttAPOrtBPortC

    GeneralPurpose

    Register (RAM)(24-72)

    Abbildung 5: Register-Struktur eines PIC 16C5x

    -13-

  • Future Electronics / FAI - Hiandbuch fr PIC-Starter

    Die Spezialregister sind z.B. der 1Programm Counter, das StatusRegisler, die I/O Potts und das Timer Register. Die anderen Registersind allgemeine Speicherstellen. Alle Register sind direkt adressierbarund die darin stehenden Werte manipulierbar. Das trifft auch auf dieSpecial Function Register zu. Allerdings mu bei der Manipulation, z.B.des Programm Counters, besondere So::gfalt gewahrt werden.Eine besondere Rolle spielt das W-Re;;ister (Working Register). DiesesRegister dient als Zwischenspeicher (Akkumulator). Bei arithmetrischenOperationen, z.B. Additionen, steht einer der Ausgangswerte im W-Register, der andere in einem anderen Register. Das Ergebnis derOperation kann im W-Register oder an einer anderen Stelleabgespeichert werden.Die Gesamtgre des on-chip Datenspeichers kann je nach konkretemCotrollertyp zwischen 24 bis 902 Byte betragen.

    3.4. Peripheriebaugruppen

    Die wohl wichtigsten Elemente der Kommunikation mit der Umwelt frden PIC-Microcontroller sind die I/O Pins. Jeder Pin kann beliebig alsEingang oder als Ausgang definiert werden. Weiterhin kann jeder Pineinzeln gesetzt, oder getestet werden. Bemerkenswert ist, da eineinziger Pin einen ziemlich hohen Strom von bis zu 25 mA treiben odersenken kann. Somit ist es z.B. mglich, eine Leuchtdiode direkt an denPin anzuschlieen. Um die Treiberlfeistung zu erhhen ist es auchmglich, mehrere Pins parallel zu schalten.Jeder PIC-Controller hat mindestens einen Timer, der sowohl externoder von dem internen Glock getaktet werden kann. Der Timer ist ein S-Bit Timer mit einem S-Bit Vorteiler.Darber hinaus hat fast jeder PICmicro einen Watchdog-Timet-. Dieserist fr die berwachung des frogrammablaufes zustndig und mu vonder Software in regelmigen Abstnden zurckgesetzt werden. Wenndas aus irgend welchen Grnden (Programmfehler oder -hnger) nichtpassiert, dann erfolgt ein Reset. Der Watchdog-Timer wird von einemeigenen, unabhngigen RC-Oszillator betrieben und ist damit von demHaupttakt unabhngig. Somit ist eine zuverlssige berwachung auchbei Ausfall des Quarzes garantiert. Die Zeitkonstante des Watchdogskann zwischen 18 ms und einigen Sekunden eingestellt werden.

    -14

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Insbesondere die Controller der PIClOCxx Serie haben noch weiterePeripheriemodule an Bord (siehe Abbildung 6). Das wren z.B.verschiedene serielle Schnittstellen, A/D-Wandler, Pulsweiten- undCapture/Comparc-Module und EEPROMs im Datenbereich. Die genaueBeschreibung der Pheripheriemodule ist in den Datenblttern der PfC-Controller zu finden.

    Abbildung 6: Blockschaltbild eines PIC 16Cxx mit Peripheriemodulen

    3.5. Spezielle Eigenschaften

    Spezielle Eigenschaften der Controller sind Besonderheiten, die zwarfr den unmittelbaren Betrieb des Bausteines nicht unbedingt notwendigsind, jedoch zustzliche Erleichterungen bedeuten.Eine wichtige Eigenschaft ist der Sleep Mode, ein speziellerStromsparmodus, der durch den Befehl SLEEP ausgelst wird. Indiesem Modus betrgt der Stromverbrauch nur ca. 2pA. Dabei wird derOszillator abgeschaltet, der Inhalt aller Register und der Prozessorstatussowie der Status der I/O Pins bleibt erhalten. Der Watchdog-Timer luft,falls cr aktiviert wurde, weiter. Ein Erwachen aus dem Stromsparmodus

    -15-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    ist durch einen Reset oder durch einen Watchdog-Timer Timeoutmglich. Man kann also eine sehr stromsparende Schaltung aufbauen,indem man den Controller permanent Im Sleep Modus laufen lt undihn nur ca. jede Sekunde durch den Watchdog-Timer aufweckt. Dannprft der Controller, ob eine Aktion notwendig ist, fhrt diese beiBedarf aus und legt sich danach wieder schlafen.Alle PIC-Microcontroller haben ein statisches Design, das bedeutet: jelangsamer man sie taktet? desto weniger Strom verbrauchen sie.Zustzlich kann man whrend der Pro,=rammierung noch verschiedeneOsziflator-Optionen einstellen, um clie Treiberstufe des Controllersoptimal an die verwendete Takterzeugung anzupassen. Es stehen dieOptionen Standard Quarz (400 kHz bis 4 MHz), High Speed Quarz (4MHz bis 20 / 33 MHz), Low Speed Quarz (0 bis 40 kHz) und RC-Oszillator zur Verfgung.Um eine einwandfreie Funktion beim E,inschalten der Betriebsspannungzu gewhrleisten, gibt es eine Power-On-Reset Funktion. DieseFunktion hlt den Controller beim Einschalten fr 18 ms im Reset-Zustand. In dieser Zeit sollten alle Betriebsspannungen ihren normalenWert erreicht haben und der Controller kann arbeiten.Einige der neueren PIC-Serien haben eine sogenannte BrownoutDetection, das bedeutet, da bei einem kurzzeitigen Absinken derBetriebsspannung ein Reset ausgelst wird und der Controller erst dannweiter luft, wenn die Betriebsspannung wieder stabil ist.Microcontroller knnen sehr empfindlich auf ein kurzzeitiges Absinkender Betriebsspannung reagieren, wie sie z.B. in Gerten vorkommenkann, die in der Nhe von Leistungsschaltern betrieben werden. Ohnedie Brownout Detection mten sic gegebenenfalls mit einem externenReset-Schaltkreis versehen werden, um die Funktion auch untererschwerten Bedingungen zu gewhrleisten.Der Programmspeicher der PfC-Controller der PICI 6Cxxx-Familiekann mit Hilfe von wenigen Signalen seriell programmiert werden.Die serielle In-Circuit-Programmieru;lg wird in Kapitel IO diesesBuches nher besprochen.Ein weiteres wichtiges Merkmal der PlCmicro ist die Code Protectiondes Programmspeichers. Wenn diese Option aktiviert ist, dann ist derInhalt des Programmspeichers ganz oder teilweise vor Auslesengeschtzt. Das ist wichtig, damit die irn Controller enthaltene Softwarevor unerwnschtem Zugriff bewahrt wird.

    -16

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Achtung! Die Code Protection Option sollte bei derSoftwareentwicklung niemals aktiviert sein.Auch wenn be i de r En twick lung lschbare Baus te ine imKeramikgehuse mit Fenster verwendet werden, so lt sich eine einmalaktivierte Code Protection Option nicht mehr zurcksetzen. DieBausteine wrden sich nicht mehr programmieren lassen und wren frweitere Entwicklungen nutzlos.

    3.6. Zusammenfassung

    Insgesamt betrachtet sind die PfC-Microcontroller sehr leistungsfhigeS-Bit Microcontroller, bei denen der Programmspeicher in den meistenFllen als OTP-Speicher ausgefhrt ist. Folgende Eigenschaften sind es,die die besondere Attraktivitt der PICmicros ausmachen:l sehr groe Code-Effektivitt durch Ein-Wort-Befehle (siehe

    Abbildung 7),

    15

    Linesof Code

    National Motorola Motorola Zilog Intel

    Average code size companson based on the followmg benchmark appllc.atlons: Synchronous transI$sslon, sofhvaretlmer. loop control. bittest and branch. and BCD compaction. See appllcatlon note #AN525 for detalls

    Abbildung 7: Vergleich der Code-Effektivitt verschiedener Controller

    -17-

  • Future Electronics I FAI - Handbuch fr PIC-Starter

    sehr hohe Verarbeitungsgeschwindigkeit: ein Befehl in 120 ns(PIC17Cxx bei 33 MHz) oder 200 ns (PIC 16Cxx bei 20 MHz) -siehe Abbildung 8,geringe Gre: Die PICI2Cxxx-Controller sind die weltweit erstenMicrocontroller im S-Pin Gehuse, auch das 1 S-Pin SSOP-Gehuseist sehr klein,geringer Stromverbrauch:

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    4. Entwicklungswerkzeuge fr PIC-Microcontroller

    Bei den Entwicklungswerkzeugen fr die Controller ist Microchipimmer von dem Prinzip ausgegangen, da man als Neuling auf demMicrocontrollermarkt die Hrden fr den Einstieg in die Architektur soniedrig wie mglich legen sollte. Dementsprechend sind alle Werkzeugesehr preiswert, man kann ohne groe Vorleistungen sofort mitEntwicklungen beginnen. Auerdem sind die Werkzeuge modularausgefhrt, was einen leichten Umstieg zwischen verschiedenenControllern ermglicht.

    4.1. Softwarewerkzeuge

    Das wohl wichtigste Werkzeug fr den Entwickler von Programmen frPIC-Microcontroller und die zentrale Schnittstelle undBenutzeroberflche fr alle Hard- und Softwarewerkzeuge ist dieintegrierte Entwicklungsumgebung MPLAB (Abbildung 9).

    Abbildung 9: MPLAB als zentrale Schnittstelle und Benutzeroberflchefr alle Hard- und Softwareentwicklungswerkzeuge

    -19-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    MPLAB als Entwicklungsumgebung fr PC-kompatible Computerbesteht in der Grundvariante aus einem Projektmanager, einem Editor,einem Assembler und einem Simulator. Alle Bestandteile werden voneiner einheitlichen Windows-Oberflche aus bedient. Das WerkzeugMPLAB ist kostenfrei und kann z.B. von der Internet-Seite vonMicrochip geladen werden. Es gibt MPLAB seit Mitte 1996. Damitwurden die vorher blichen DOS-basierenden Einzellsungen MPASMund MPSIM ersetzt.In die Entwicklungsumgebung MPLAB kann ein C-Compilereingebunden werden. So ist sogar ein echtes ,,source-level-debugingvon C-Programmen mglich. Weiterhin ist es mglich, von derMPLAB-Oberflche aus verschiedene andere Software- undHardwarewerkzeuge, wie Programrniergerte und Emulatoren zubedienen.Die Entwicklungsumgebung MPLAEI wird in den Kapiteln 5 und 6dieses Heftchens ausfhrlicher behandelt.

    4.2. Starterkit PICSTART Plus

    Zum schnellen und konkreten Einstieg in PIC-Microcontroller-Projektegibt es das Starterkit PICSTART Plus (Abbildung IO).Dieses Starterkit enthlt die MPLAB Software (die ja sowieso kostenfreizu bekommen ist), die kompletten Handbcher, einen PIC 16F84 (mitEEPROM als Programmspeicher und damit wiederbeschreibbar) und ein

    Abbildung 10: Starterkit PICSTARTPlus

    einfaches Programmiergertfr Laborzwecke mit einigenEinschrnkungen. So knnennur Bausteine im DIP-Gehuse programmiertwerden und das Verifizierendes Programmspeicherserfolgt lediglich bei einereinzigen E3etriebsspannung.Trotzdem ist das Starterkitbestens fr die Durchfhrungeinfacher und schnellerEntwicklungen geeignet.

    -2o-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Der PICSTART Plus untersttzt alle momentan und zuknftigverfgbaren PIC-Microcontroller und ersetzt die beiden vorher blichenStarterkits PICSTART 16B und PICSTART 16C, welche jeweils nurbestimmte Bausteine untersttzt haben. Obwohl diese alten Starterkitsmanchmal noch preiswert angeboten werden, ist es doch zu empfehlen,zum Einstieg den PICSTART Plus zu whlen, weil nur dieser mitMPLAB zusammenarbeitet und nur dieser alle zuknftig verfgbarenPICmicro-Bausteine untersttzt.

    4.3. Emulatoren

    Ein Emulator ist ein komplexes Entwicklungssystem, welches mittelseines mitgelieferten mehradrigen Kabels mit der Zielschaltungverbunden wird und dort die Funktion des Microcontrollers ,,emuliert(nachahmt). Im Gegensatz zum echten Microcontroller kann derEmulator aber jederzeit angehalten werden und es kann der Inhalt allerSpeicherstellen berprft werden. So ist es mglich, ProgrammablufeSchritt fr Schritt zu testen, auf Schlssigkeit zu berprfen und(Feuebenenfalls Fehler zu beseitigen (,,debuggen von Programmen).s3Insbesondere das sehr komplizierte Zusammenspiel von uerenSignalen und der Reaktion der Software darauf kann ausfhrlich getestetund oftmals auch in Echtzeit nachvollzogen werden. Es knnen somitalle mglichen Programmverzweigungen durchprobiert werden und eskann sichergestellt werden, da der Microcontroller auch in den,,unmglichsten Situationen noch richtig reagiert.Ein solches Emulatorsystem ist relativ kompliziert. Es mu ja nicht nurdie vollstndige Funktion des Microcontrollers originalgetreunachgebildet werden, auch alle Speicherstellen mssen von auenzugnglich sein. Deshalb werden zum Aufbau von Emulatoren oftsogenannte ,,Emulatorchips verwendet, das sind spezielle Schaltkreise,die von den Herstellern der Microcontroller in kleiner Serie produziertwerden und ausschlielich zum Aufbau von Emulatoren dienen.Microchip stellt fr die Nutzer der PIC-Microcontroller momentan zweiverschiedene Emulatoren zur Verfgung: PICMASTER und ICEPIC.PICMASTER ist ein voll ausgebautes Emulatorsystem, welches auseiner PC-Einsteckkarte, einem Grundgert mit Netzteil und einerEmulatorprobe mit Targetadapter besteht (siehe Abbildung 11). Die

    -21-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Einsteckkarte kommt in den Computer und ermglicht den schnellenDatenaustausch zwischen PC und Hauptgert. Der Targetadapter wird indie Zielschaltung gesteckt und mit der Emulatorprobe verbunden. DieEmulatorprobe enthlt den eigentlichen Emulatorchip und ist mit demHauptgert verbunden.

    cLPS

    I1 1

    NetzteilI -

    Computer mit LEinsteckkarte

    Abbildung 11: PICMASTER Emulatorsystem

    Der gesamte PICMASTER wird von der Software, die auf dem PC luft(in den meisten Fllen ist das die Oberflche MPLAB), gesteuert.Zustzlich enthlt der Emulator einen Logikanalysator, dessen Clips aufdie Zielschaltung gesteckt werden und dort Signale aufnehmen oderEreignisse auslsen knnen. Der PICICIASTER Emulator kann alle PIC-Bausteine emulieren. Natrlich mssen gegebenenfalls die Emulator-proben ausgetauscht bzw. angepat werden, da sie den Emulatorchipenthalten, der fr die meisten Bausteine (oder zumindestens Familien)spezifisch ist. Die momentan aktuelle Version heit PICMASTER CE,das bedeutet, das gesamte Gert ist in einem geschirmten Gehuseuntergebracht und hat das in der EU -vorgeschriebene CE-Zeichen. Dieneuen Emulatorproben mit CE-Zeichen passen nicht mehr an das alteGrundgert und umgedreht. Es sind jeweils spezielle Adaptersteckernotwendig. Die genauen Bestellbezeichnungen fr einen PICMASTERCE mit einer Emulatorprobe fr einen jeweils ganz bestimmten PIC-Baustein sind im Datenbuch zu finden

    -22..

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Das zweite Emulatorsystem von Microchip mit der BezeichnungICEPIC ist deutlich preiswerter als ein PICMASTER, hat aber dafreinige Einschrnkungen:l Das Hauptgert ist nur ber eine serielle Schnittstelle mit dem Host-

    Computer verbunden (nicht ber eine spezielle Einsteckkarte). Dasverlangsamt den Datenaustausch erheblich.

    l Mit dem ICEPIC knnen nur Bausteine der PIC 16C5x undPTCl OCxxx Familien emuliert werden.

    l Die Fhigkeiten zur Programmverfolgung (Tracing) sind beimICEPIC stark eingeschrnkt.

    l Das Hauptgert hat einen Emulationsspeicher von nur 8k Wrtern(PICMASTER 64k Wrter).

    Wie beim PICMASTER gibt es auch beim ICEPIC austauschbareModule mit den individuellen Emulatorchips, diese heien hierDoughterboards. Wie der PICMASTER wird auch der ICEPICneuerdings von der integrierten Entwicklungsumgebung MPLABuntersttzt und ermglicht so ein sehr komfortables Arbeiten, z.B. kanndas gleiche Programm von der gleichen Oberflche aus im Simulatorund im Emulator getestet werden.Als v l l ig neues Emula torsys tem ha t Microchip den neuenMPLAB-ICE angekndigt, der ab Mitte 1998 erhltlich sein soll undsich durch einen modularen Aufbau auszeichnet. Der neue Emulator solldie bisherigen Lsungen ersetzen und eine Echtzeitemulation mitFrequenzen bis zu 33 MHz und Betriebsspannungen bis herunter zu2,5V ermglichen. Er wird ebenfalls vom PC aus gesteuert und wird andie parallele Schnittstelle angeschlossen, was ein schnelles Arbeitenermglicht.Obwohl Emulatoren sehr bequem zu nutzen sind, wird auf einen Einsatzaufgrund des relativ hohen Preises oft verzichtet. Einfache Programmewerden hufig alleine mit Hilfe des in MPLAB enthaltenen Simulatorsund der Verwendung von lschbaren Probebausteinen entwickelt.Deshalb werden die Emulatoren im Rahmen des vorliegenden Heftchensauch nicht weiter behandelt.Eine andere interessante Mglichkeit der Programmentwicklung,insbesondere bei Mixed-Signal-Entwicklungen, ist die Verwendungeines speziellen Oszilloskops, mit dem man gleichzeitig analoge unddigitale Signale aufnehmen kann, wie z.B. das HP4645D von HewlettPackard.

    -23-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    4.4. Programmiergerte

    Wenn das Programm, da der Controller ausfhren soll, fertig ist, dannmu es in das Bauelement bertragen werden. Dazu benutzt man einProgrammiergert.Die PIC-Microcontroller werden mittierweile von einer ganzen Reihevon Universalprogrammicrgertcn der verschiedensten Herstelleruntersttzt. Im Zweifelsfalle sollte tnan die Beschreibung des jeweiligenUniversalprogrammiergertes zu Rate ziehen, dort mte eine Liste alleruntersttzten Bauteile zu finden sein. Problematisch kann es werden,wenn man einen PIC-Controller verwenden mchte, der relativ neu aufdem Markt ist, weil die Hersteller der Programmiergerte nur mit einemgewissen Zeitverzug auf neue Bauelemente umstellen.Neben dem PICSTART Plus wi rd von Microchip auch e inProgrammiergert fr Produktionszwecke mit der BezeichnungPROMATE 11 angeboten (Abbildung 12). Dieses Programmiergertwird in der Regel an der seriellen Schnittstelle des PC betrieben. Aufdiesem luft entweder die bekannte MPLAB-Software unter Windowsoder eine einfaches Command Line Interface unter DOS. Diewesentlichen Unterschiede zum PICSTART Plus Programmiergert sindfolgende:

    Fr das PROMATE sind verschiedene Sockelmodule erhltlich.somit ist es mglich, PIC-Controller in a l l en mgl ichenGehusevarianten zu programmieren (PICSTART Plus nur DIP).Das PROMATE-Programmierger2.t kann sowohl atn PC (mitMPLAB) als auch im Stand-Alone-Modus ohne PC betriebenwerden, der PICSTART Plus ist immer auf einen PC zurUntersttzung angewiesen.Das PROMATE-Programmiergert fhrt eine Verifizierung des inden Programmspeicher eingegebenen Programmes bei dermaximalen und der minimalen Eletriebsspannung des jeweiligenControllers durch. Damit sind zuverlssigere Aussagen ber dieProgrammiersicherheit mglich als; beim PICSTART Plus, wo derTest nur bei einer einzigen Spannung erfolgt.Die spezielle Option des Einprogrammierens von individuellenSeriennummern in Controller mit ansonsten gleichem Programm(Serialisierung) ist nur mit dem PROMATE mglich, nicht mit demPICSTART Plus.

    -24

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    , J --.+ zu programmierendesBauelement

    -- Sockeladapter

    - PROMATE IIProgrammiergert

    COtTlpUkr mit DOS oder(auch im Staid-

    Windows mit MPLABAlane-Modus mglich

    Abbildung 12: PROMATE Programmiergert

    In den ersten Jahren der PIC-Controller hie das ProgrammiergertPROMASTER, dann kam der PROMATE und die momentan aktuelleVariante ist PROMATE 11. Da die neuen Sockelmodule auch auf diealten Programmiergerte passen, ist es mglich, selbst mit einem altenProgrammiergert die neueren Controller zu programmieren. AlleGerte sind bis auf uerlichkeiten fast identisch und unterscheidensich in der Version der Firmware, die in ihnen luft. Glcklicherweisekann die Firmware nachgeladen werden. Dazu ist dieTastenkombination Fl + F3 beim Einschalten des Gertes zu bettigen,dann ist das Gert zum Laden bereit. Das Nachladen selbst erfolgt vonMPLAB aus. Dazu mu MPLAB ber die Befehle Options >Progrrrmmer Options in den PROMATE Modus geschaltet werden.Dann kann mit PROMATE > Downlotrri Firmwure das Updateerfolgen. Folgende Dateien werden dabei in das Programmiergertbertragen: pfxxxxxp.hex (zur Programrnierung der PIC-Microcontroller) und pfxxxxxm.hex (zur Programmierung von seriellenE*PROMS und Sicherheitsprodukten - auch dazu. kann der PROMATEverwendet werden). Die Dateien sind im MPLAB-Verzeichnis enthaltenund werden bei der Installation von MPLAB dort hinterlegt. ,,xxxxxbedeutet dabei die Versionsnummer der Firmware. Beim Nachladensollte lediglich beachtet werden, da die Firmware immer nur von einerkleineren auf eine grere Version nachgeladen werden kann - nichtumgekehrt. Wenn man von einer Version kleiner 3.0 nachladen will,dann mu zunchst auf 3.0 nachgeladen werden und dann erst kann manauf die momentan aktuelle, hhere Version erweitern.

    -25

  • Future Electronics / FAI - HCandbuch fr PIC-Starter

    5. Grundlagen der Entwicklungsoberflche MPLAB

    5.1. bersicht und Bestandteile von MPLAB

    MPLAB ist eine Windows-basierende integrierte Benutzeroberflche fralle PIC-Microcontroller Familien von Microchip. MPLAB ermglichtdas Schreiben, Debuggen und Optimieren von Programmen frP 1 C 16/17- Anwendungen und unterstiitzt den PICMASTER-Emulator,den ICEPIC-Emulator, die Proramrniergerte PROMATE 11 undPICSTART Plus sowie verschiedene Software-Entwicklungswerkzeuge.Die MPLAB-Benutzeroberflche besteht aus folgenden Bestandteilen:Der Projektmanager ermglicht es, ein Projekt zu erzeugen und ihmbestimmte Dateien und Einstellungen zuzuordnen. Das Projekt kann mitallen Bestandteilen abgespeichert urd jederzeit wieder aufgerufenwerden. Der Projektmanager ist der zentrale Bestandteil von MPLAB.Es ist nicht mglich, ein Programm zu debuggen, ohne ein Projekterstellt zu haben. Mit Hilfe des Projektmanagers kann man folgendeOperationen durchfhren:l ein Projekt erstellen,0 einem Projekt einen oder mehrere Quelltexte zuordnen,0 einen Quelltext assemblieren oder compilieren,l einen Quelltext editieren,l Quelltexte umbauen,l einen Quelltext debuggen.Der Texteditor ermglicht es, Quelltexte von Programmen fr PIC-Microcontroller oder auch beliebige andere Texte zu schreiben, zueditieren, abzuspeichern und aufzurufen.Der universelle PIC 16/17 Microcontroller Assembler ermglicht es, denQuelltext in ein fr die PICmicros verstndliches Programm zubersetzen, ohne die Benutzeroberflche MPLAB zu verlassen. Er hatMakro-Fhigkeiten, ermglicht bedingl:es assemblieren und kann eineReihe von verschiedenen Quellformaten verarbeiten. Er kannverschiedene Objekt Code Formate erzeugen und untersttzt so dieProgrammiergerte von Microchip oder anderen Herstellern.Der Software-Simulator simuliert die Ausfhrung von Programmenauf verschiedenen PIC 16/17 Microcontrollern und die Reaktion aufuere Einflsse und ermglicht somit die Erkennung von

    -26-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Programmfehlern und das Debuggen von Quelltexten. Er simuliert dieFunktion des Controllerkerns und der meisten Peripheriebaugruppen,Der PICMASTER-Emulator benutzt eine externe Hardware, um dieFunktion eines Microcontrollers in einer Zielschaltung in Echtzeitnachzubilden. Die PICMASTER-Emulator Hardware mu getrennterworben werden und wird von der MPLAB-Oberflche untersttzt. DerPICMASTER Emulator hat die gleiche Oberflche wie der Software-Simulator. Deswegen kann man z.B. leicht zwischen Emulator undSimulator umschalten.Es ist mglich, in MPLAB einen C-Compiler einzubinden, solangedieser das Byte Craft COD Ausgabeformat nutzt. Es werden vonMPLAB auch zuknftige Entwicklungswerkzeuge von Microchip undanderen Herstellern untersttzt, sobald diese verfgbar sind.MPLAB kann in drei Betriebsarten betrieben werden:l Der Simulator Mode ermglicht das Testen von Programmen mit

    dem Software-Simulator.l Der Editor Only Mode ermglicht das Schreiben und Assemblieren

    von Programmen und kann erste Fehler ohne die Benutzung desSimulators oder Emulators erkennen.

    l Der Emulator Mode erlaubt das Arbeiten mit dem PICMASTER-Emulator.

    5.2. Installation von MPLAB

    Damit MPLAB auf einem PC laufen kann, mu dieser mindestensfolgenden Anforderungen gengen:l PC mit mindestens 386er Prozessor (Pentium empfohlen)l mindestens 4 MB Arbeitsspeicher (16 MB empfohlen)l mindestens 8 MB Festplattenspeicher (20 MB empfohlen)l VGA oder Super VGA Monitorl Microsoft Windows 3.1 oder hherDie Installation von MPLAB kann benutzerdefiniert (teilweise) odervollstndig erfolgen. Es wird empfohlen, immer die vollstndigeInstallation durchzufhren. Das voreingestellte Verzeichnis, in die dasProgramm kopiert wird, lautet C:\MPLAB, es kann aber auch einbeliebiges anderes Verzeichnis eingestellt werden. Zur Installationgehen Sie folgendermaen vor:

    -27-

  • Future Electronics / FAI - Hiandbuch fr PIC-Starter

    1. Legen Sie die Installationsdiskette in Laufwerk A: (oder die CD-ROM in das entsprechende Laufwerk) und starten Sie SETUP,

    2. Folgen Sie den Instruktionen,3. Sie werden gefragt, ob Sie die Dateien, weiche ansonsten

    berschrieben werden, als Backup abgelegt werden,4. Whlen Sie die Option der vollstndigen Installation,5. Folgen Sie den Instruktionen und whlen Sie Programmsymbol und

    Programmgruppe.6. Wenn es Probleme mit der Installation von MPLAB gibt, dann

    knnen Sie sich an die Future Electronics Telefon-Hotline unter delNummer 089 / 957 27 204 wenden (siehe auch Kapitel 13.2.).

    Bei einer vollstndigen Installation werden folgende Programmteile indas ausgewhlte Verzeichnis kopiert: MPLAB Programmdateien(inklusive Editor), MPLAB-SIM Simulator, Assembler, Hilfe-Dateien.Nach einer erfolgreichen Installation sollte die MPLAB-Programmgruppe folgende Programmsymbole enthalten: MPLAB,MPASM for Windows (nur Assembler), Uninstall MPLAB (MPLABdeinstallieren).Die MPLAB Dateien werden vom Installationsprogramm in dasVerzeichnis C:\MPLAB, oder in das ausgewhlte Verzeichnis kopiert.Auerdem werden folgende Dateien in das C:\WINDOWS Verzeichniskopiert: MPC.PIF, MPLAB.INI und DEFAULT.TBR.Weiterhin werden in das Verzeichnis C:\WINDOWS\SYSTEM dieDateien OWL252.DLL und BIDS45.DLL kopiert.In der Datei INSTALL.LOG wird eine Aufzeichnung von allenkopierten oder installierten Dateien hinterlegt.

    5.3. Erste Schritte mit MPLAR

    In diesem Kapitel wird das Programm MPLAB beschrieben und einebungsaufgabe (tutorial) besprochen. Dabei werden einige der MPLABFunktionen erlutert.MPLAB wird gestartet, indem das entsprechende Symbol in derpassenden Programmgruppe angeklickt wird. Die zwei zurDurchfhrung der bung notwendigen Dateien TUTOR.ASM undSAMPLE.ASM befinden sich bere.ts im MPLAB Verzeichnis.Beachten Sie bitte, da es in jedem Fall notwendig ist, ein neues Projektzu erstellen, damit dieses von MPLAB bearbeitet werden kann.

    -2%

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Abbildung 13: Startbildschirm von MPLAB

    Der Bildschirm nach dem Start von MPLAB ist in Abbildung 13 zusehen. Das Programm wird mit Hilfe von Werkzeugsymbolen in einerWerkzeug-Symbolleiste und Pull-Down-Mens bedient. Mit Hilfe desSymbols am linken Rand kann man zwischen verschiedenenSymbolleisten zur Bedienung des Programmes wechseln.Insgesamt stehen vier Symbolleisten mit verschiedenenWerkzeugsymbolen zur Verfgung (Abbi Idung 14a bis 14~):l Symbolleiste zum Editieren (,,Edit),l Symbolleiste zum Debuggen (,,Debug),. Symbolleiste fr Projekte (,,Project),l benutzerdefinierte Symbolleiste (die Werkzeugsymbole knnen

    individuell konfiguriert werden, um sie den Bedrfnissen desBenutzers anzupassen).

    Jedes Werkzeugsymbol ermglicht den Aufruf von bestimmtenBefehlen. Welcher Befehl welchem Werkzeugsymbol zugeordnet ist,sieht man in der stndig aktiven Online-Hilfefunktion in der Statuszeile.

    -29-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Abbildung 14a: Werkzeug-Symbolleiste ,,Debug

    Abbildung 14b: Werkzeug-Symbolleiste ,?Project

    Abbildung 14~: Werkzeug-Symbolleiste ,,Edit

    Abbildung 14d: mgliche benutzerdefinierte Werkzeug-Symbolleiste

    Die MPLAB Dialogboxen haben die gleichen Eigenschaften wie dieDialogboxen von allen Windows-Applikationen und ermglichen denZugriff auf die blichen Windows-Funktionen.Die Statuszeile am unteren Bildschirmrand enthlt neben der Online-Hilfe, die sich automatisch einblendet, alle die Informationen, welchefr ein erfolgreiches Debuggen notwendig sind, so unter anderem:l MPLAB Versions-Nummer oder Zeilen und Spalten Nummer,l Anzahl der Zeilen im Quelltext,l ein Flag, welches signalisiert, ob die Datei modifiziert wurde,l Informationen zu den Editor-Modi,l der momentan ausgewhlte Controller-Typ,l den aktuellen Stand des Programmzahlers (program counter),l den aktuellen Stand des W-Registers,l die aktuell gltigen Status Bits,l den aktuell eingestellten Modus von MPLAB (Emulator, Simulator,

    Editor),l den Stand des Ereigniszhlers (Pass Counter),l die momentan eingestellte Werkzeug-Symbolleiste.

    -3o-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Die zur Erstellung eines Projektes notwendigen Dateien kann man inbeliebigen Verzeichnissen plazieren, in dem vorliegenden Fall wird dasVerzeichnis C:\MPLAB\TUTOR verwendet.Zuerst wird ein neues Projekt mit Project > New J+oject erstellt. In demfolgenden Dialo,u mu der Name der neuen Projektdatei angegebenwerden, z.B. C:\MPLAB\TUTOR\TUTOR. Die Titelleiste am oberenBildschirmrand sollte nun den Namen des Projektes zeigen. In demVerzeichnis C:\MPLAB\TUTOR sind nun die Dateien TUTOR.CFG(Projekt-Konfigurationsdatei) und TUTOR.PJT (Projektdatei) zufinden.

    Nun mu dem Projekt eine Quelldatei zugeordnet werden. Dazu mudas Men Project> Edit Project angewhlt werden. Nun mu CopyFile... aktiviert werden und in dem folgenden Fenster die DateiTUTOR.ASM (oder eine andere Datei, die zugeordnet werden soll)angewhlt werden. Als Quelldateien knnen nur Files mit den Endungen*.ASM (Assemblerdateien) oder *. C (C-Dateien) ausgewhlt werden.

    Um die ausgewhlte Quelldatei zu bersetzen (zu assemblieren) ist derSchritt Project > MakeProject notwendig. Dabei wird eine Projektdateimit der Endung *.COD neu angelegt oder berschrieben.

    Nun knnen die folgende Beispiele ausprobiert werden:Beispiel 1: Eine Quelldatei mit Fehler assemblieren:TUTOR.ASM wird editiert:1, File > Open Source anwhlen,2. Das Verzeichnis C:\MPLAB\TUTOR wird ausgewhlt,3. Die Datei TUTOR.ASM wird ausgewhlt, ein Editor-Fenster ffnet

    sich,4. Der System-Knopf in der oberen linken Ecke mu aktiviert werden,5. Die Option Toggfe Line Numbers sollte angewhlt werden.

    Ein Fehler wird in TUTOR.ASM eingefgt:1. Fgen Sie einen Fehler in den Quelltext ein, z.B. indem Sie in Zeile

    58 das Wort Start in Star ndern.2. Zum compilieren whlen Sie Project > Make Project.

    -3l-

  • Future Electronics I FAI - Handbuch fr PIC-Starter

    Nachdem der Compile-Proze ferti g ist, erscheint eine Fehlermeldung.Nach einem Doppelklick erscheint ein ,,Error File Fenster.

    Den eingefgten Fehler erkennen:1. Fhren Sie einen Doppelklick auf die Fehlermeldung durch, dann

    springt das Programm direkt auf die Zeile im Editor-Fenster, wo sichder Fehler befindet.

    2. Nutzen Sie nun den MPLAB Editor, um den Fehler zu beseitigen.

    Beispiel 2: Ein Quellcode wird debuggt.1. Den Befehl Project > Make Project anwhlen, dadurch wird der

    MPASM Assembler gestartet.

    Der Befehl Build All baut alle Quelldateien in dem ausgewhltenProjektfenster um, unabhngig von Zeit und Datum.Mit dem Windows File Manager sollten Zeit und Datum der DateiTUTOR.COD vermerkt werden.1. Whlen Sie den Befehl Project > Brrild All.Zeit und Datum der Datei TUTOR.COD sollten wieder geprft werden.Sie weisen nun einen spteren Wert auf.

    Der Befehl Compile Single File assembliert oder compiliert die Datei(*.ASM oder *.C) im momentan aktiven Fenster. Diese Datei mu nichteinem Pro-jekt zugeordnet sein. Allerdings sollte ein Projekt geffnetsein, um diesen Befehl ausfhren zu knnen:1. Den Befehl File > Open Source ank.licken,2. Die Datei SAMPLEASM ffnen,3. Den Befehl Project > Compile Single File anwhlen.MPLAB kompiliert die Datei SAMPLE.ASM und zeigt den Erfolg an.

    Folgendermaen wird ein Prqjekt geschlossen:1. Den Befehl Project > Glose Project anwhlen,2. Die Frage beantworten, ob das Projekt abgespeichert werden soll

    -32-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    5.4. MPLAB und der PICSTART Plus

    Das Starterkit PICSTART Plus enthlt neben der MPLAB-Software eineinfaches Programmiergert fr Laborzwecke. Dieses Programmiergergtwird an das mitgelieferte Netzteil und ber ein passendes Kabel an dieserielle Schnittstelle des Computers angeschlossen und arbeitet mit derMPLAB- Benutzeroberflche zusammen.MPLAB mu ber die Befehle Options > Programmer Options in denPICSTART Plus Modus geschaltet werden, falls er sich noch nicht darinbefindet. ber den Befehl Picstarf Phrs > EnabEe Programmer kanngetestet werden, ob das Programmiergert vom Computer erkannt wird.Wenn die Kommunikation erfolgreich ist, wird die Version derPICSTART Firmware angezeigt und ein Dialogfenster mit denEinstellungen des Programmiergertes geffnet. In diesem Fenster sindalle wichtigen Programmiereinstellungen vorzunehmen wieControllertyp, Oszillatorart, Code Protection usw. (siehe Abbildung 15).

    -j -, i;@$@:FFF FFF FFF FFF FFF FFF FFF FFF ,^ __

    ;&M8~~FFF FFF FFF FFF FFF FFF FFF FFF-8&?8 FFF FFF FFF FFF FFF FFF FFF FFF

    prautwiLlob*

    : ~Q*,FFF FFF FFF FFF F FF FFF FFF FFF$$,Pm, &d:u&@

    ,.B@3b:FFF FFF FFF FFF FFF FFF FFF FFF_, ,,

    cwi~lwei?cim8 F F F FFF FFF FFF F F F F F F F F F F F Fii84WFFF FFF FFF FFF FFF FFF FFF FFFFJtW FFF FFF FFF FFF FFF FFF FFF FFF

    @Ei& FFF FFF FFF FFF FFF FFF FFF FFFW5B FFF FFF FFF FFF FFF FFF FFF FFFaQoi#FFF FFF FFF FFF FFF FFF FFF FFF lw*ondt&ast* Ce-.- rrr r.-t- rrr r.-r rrr t-l-r rrr I___ ---.-.i--- . _-

    Abbildung 15: PICSTART Plus - Dialogfenster in .MPLAB

    -33-

  • Future Electronics / FAI - Jlandbuch fr PIC-Starter

    Falls die Kommunikation mit dem PICSTART Plus Programmiergertnicht zustande kommt, kann das verschiedene Ursachen haben:1.2.

    l

    l

    l

    0

    0

    0

    3.

    4.

    Der PICSTART Plus luft nicht mit Windows NT.Die Einstellungen der seriellen Schnittstelle stimmen nicht. Es sindin jedem Fall folgende Einstellungen zu whlen19200 Bits pro Sekunde,8 Datenbits,keine Paritt,I Stopbit,Hardware-Protokoll,Erweitert: FIFO-Puffer aus.Falls es immer noch Probleme gibt, mu die serielle Schnittstellevon COM2 zu COMl gewechselt werden (die Maus kann dann anCOM2 angeschlossen werden).Eine alternative Treibersoftware kann von der Internet-Seiteheruntergeladen werden.

    Wenn die Kommunikation des PICSTART Plus Programmiergertes mitdem Computer erfolgreich eingerichtet wurde, ist das Gert bereit: esknnen Speicherinhalte von PIC-Microcontrollern ausgelesen werden(wenn die Option Code Protection nicht aktiviert wurde) oder derProgrammspeicher von PIC-Controllers kann programmiert werden.In jedem Fall sollte beachtet werden, da der jeweilige Controller-Typsowohl im PICSTART Plus Men als auch im MPLAB-Assemblerrichtig ausgewhlt werden mu.

    -34

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    6. Debuggen von Programmen mit dem MPLABSimulator

    6.1. Grundlagen des Simulators

    In dem folgenden Kapitel wird gezeigt, wie man mit dem MPLABSimulator Programme fr PIC-Microcontroller testen und Fehler in derSoftware beseitigen kann (,,debuggen von Programmen). Um dieDebugging-Funktionen nutzen zu knnen, mu MPLAB entweder imSimulator Mode oder im Emulator Mode betrieben werden.Nachdem ein Projekt in MPLAB erstellt und der Quelltext bersetztwurde, mchte man nun sehen, wie die geschriebene Software arbeitet.Wenn Sie ein Programmiergert (z.B. PICSTART Plus) haben, dannknnen Sie einen Microcontroller programmieren und in IhreAnwendung einsetzen. Meistens funktioniert die Anwendung nicht aufAnhieb und die vorhandenen Fehler mssen aus der Software entferntwerden. Das berprfen der Software kann z.B. mit Hilfe des MPLAB-SIM Simulators oder mit dem PICMASTER Emulator erfolgen. Injedem Falle wird man Programmunterbrechungen (Break Points) undAufzeichnungen (Trace Points) verwenden, whrend das Programmluft. In speziellen Fenstern (Watch Windows) kann der Inhalt allerRegister berwacht werden.Die wichtigsten Debugging-Funktionen sind beim Simulator und beimEmulator gleich:l Emulator-Speicher (Programm-Speicher-Fenster),l Programmunterbrechungen (Break Points),l Aufzeichnungen (Trace Points),l Ausfuhren von Einzel-Programm-Schritten,l berwachungsfenster (Watch W indow) fr Register,Alle diese Funktionen nutzen Informationen, die in Rahmen einesMPLAB Projektes angelegt werden. Zeilennamen im Quelltext,Bezeichnungen von Speicherstellen und Funktionsnamen knnenbenutzt werden, um Programmunterbrechnungen oderAufzeichnungspunkte zu setzen oder Registerinhalte zu prfen oder zundern.

    -35-

  • Future Electronics / FAI - Handbuch fr PIC-Starte1

    Der PICMASTER Emulator luft (bis auf wenige Ausnahmesituationen)in Echtzeit, das bedeutet, er luft in der Zielschaltung mit der gleichenGeschwindigkeit, mit welcher der Microcontroller in der Zielschaltungarbeitet und stoppt nur bei Programmunterbrechungen.

    Der MPLAB-SIM Simulator ist ein Ereignis-Simulator fr PIC 16/17Microcontroller und ist ein Bestandteil von der BenutzeroberflcheMPI,AB. Er ermglicht die Vernderung des Programmes undAusfhrung des vernderten Programmes zu jeder Zeit. Er ermglichtdie Simulation von externen Ereignissen mit Hilfe von Stimulus-Datcicnund die Aufzeichnung der ausgefhrten Programmschritte mit einemspeziellen Speicher (Trace Buffer).Ein Simulator unterscheidet sich in folgenden wichtigen Punkt voneinem Emulator:l Kosten,l I/O Timing,l Ausfhrungsgeschwindigkeit.

    Die Kosten eines Software-Entwicklungswerkzeuges wie MPLAB-SIMsind natrlich wesentlich geringer ;als die Kosten eines Hardware-Emulators. Im Gegensatz zu einem Emulator ermglicht ein Simulatordie Kontrolle ber alle internen Register des Microcontrollers. Einesolche vollstndige Kontrolle, wie sie mit dem Simulator mglich ist.wre mit einem Hardware-Emulator nur sehr schwer durchfhrbar.D a d e r S i m u l a t o r d i e F u n k t i o n d e s Microcontrollers i m PCnachempfindet, kann man mit ihm natrlich keinerlei Aussagen ber die,Zusammenwirkung des Controllers mit der Schaltung machen. Nur mil.Hilfe eines Emulators, bei dem eine Probe mit einem Targetadapter irdie Schaltung gesteckt wird, kann man zuverlssige Vorhersagen berdas Verhalten des gesamten Gertes gewinnen.Trotzdem ist die Verwendung eines Software-Simulators fr vieleApplikationen ein gut geeignetes Mille] zur Kontrolle und Optimierung;dcs Codes.Der MPLAB-SIM ist ein Ereignis-Simulator, bei dem alle externenStimuli und alle Reaktionen darauf mit der Ausfhrung vonBefehlszyklen synchronisiert werder (ein interner Befehlszyklus = 4Oszillatorzyklen). Deswegen gibt es verschiedene Ereignisse, die sichmit einem Software-Simulator nicht genau nachahmen lassen. Das sind

    -36-

  • Future Electronics / FAI - Handbuch fr PTC-Starter

    vollstndig asynchrone Ereignisse und Impulse, die eine Dauer vonweniger als einem Befehlszyklus haben.Insbesondere die folgendenden Ereignisse sind von den zeitlichenEinschrnkungen des Simulators betroffen:l Glock-Impulse oder andere Ereignisse, die krzer sind als ein

    Befehlszyklus knnen in die Simulation nicht mit einbezogenwerden, auch wenn die Timer-Vorteiler bei den wirklichen PIC-Microcontrollern solche kurzen Ercigniss,e in Wirklichkeitverarbeiten knnen.

    l PWM Ausgangs-Impulse mit einer Auflsung kleiner als einBefehlszyklus werden vom Simulator nicht untersttzt,

    l Die Oszillator-Wellenformen an den Pins RCO/RCl knnen nichtgezeigt werden.

    In Wirklichkeit werden solche Signale aber vom Microcontroller oderdurch einen Emulator sehr wohl wahrgenommen. Im MPLAB-SIMdagegen werden die externen Stimulus-Informationen nur einmal vorder Ausfhrung des nchsten Befehls eingelesen.Der MPLAB-SIM Simulator simuliert die Ausfhrung der Software undder Eingangs- und Ausgangsbedingungen eines PIC-Microcontrollersmit einer Geschwindigkeit, die von der Geschwindigkeit des PCabhngt. Dabei wird die Simulation schnellstmglich ausgefhrt, der PCist aber in der Regel langsamer als der Microcontroller in einer realenSchaltung. Die aktuelle AustUhrungsgeschwindigkeit der Simulationhngt u.a. von der Taktfrequenz des PC ab und davon, wieviele andereProgramme noch im Hintergrund laufen. Das Simulationsprogrammmu permanent alle Register, den Datenspeicher, die Ein- undAusgnge berwachen, Programmunterbrechungen undAufzeichnungspunkte kontrollieren und die Programmbefehle des PIC-Microcontrollers auf der CPU des Computers ausfhren.

    6.2. Debugging-Mglichkeiten von MPLAB

    Um ein Programm zu debuggen, mu selbstverstndlich dasdazugehrige Projekt zuvor geladen und der entsprechende Quelltextbersetzt (assembliert) worden sein. Es empfiehlt sich auerdem, dasQuelltext-Fenster zu ffnen, weil so die bersichtlichkeit ber diedurchgefhrten Schritte gewhrleistet ist.

    -37-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Die Debugging-Funktionen von MPLAB basieren auf folgendenElementen:l Haltepunkte (Breakpoints)l Aufzeichnungspunkte (Trace Points)l Ereigniszhler (Pass Counter)Haltepunkte und Aufzeichnungspunkte funktionieren vollstndigunabhngig voneinander und man kann sie jeder beliebigen Stelle imProgrammspeicher zuordnen.

    Haltepunkte (Real-Time Breakpoints)Das sind Punkte, an denen der Prozessor anhlt, wenn eine bestimmteBedingung erfllt wird. Folgende Haltrpunkte sind prinzipiell mglich:l Halt bei bereinstimmung der Adressel Halt, wenn der Trace-Speicher voll istl Halt, wenn der Ereigniszhler (Pass Counter) einen vordefinierten

    Wert aufweistl Halt, wenn der Stack berluft,l Halt, wenn der Watchdog-Timer ansprichtl Benutzerausgelster HaltIm Fens te r ,,Program Memory werden dann Hal tepunkte ,Aufzeichnungspunkte und Ereigniszhleradressen angezeigt.Halt bei bereinstimmung der Adresse (Break on Address Match)Diese Option hlt den Prozessor an, wenn der Progammzhler desProzessors einem bestimmten, vordefinierten Wert entspricht. DerProzessor hlt an, nachdem der Befehl mit dieser Adresse ausgefhrtwurde. Wenn der Haltepunkt z.B. auf die Adresse SAh gesetzt wurde,dann hlt der Prozessor an, nachdem er den Befehl auf dieser Adresseausgefhrt hat.Halt, wenn der Trace-Speicher voll ist (Break on Trace Buffer Full)MPLAB kann so konfiguriert werden, da der Prozessor anhlt, wennder Trace-Speicher (Sk) voll ist. Wenn diese Option nicht aktiviert ist.dann werden immer die letzten 8k Werte im Trace-Speicher gehaltenund die vorhergehenden Werte gelscht, wenn neue Datenhereinkommen.Halt, wenn der Ereigniszhler einen vordefinierten Wert aufweist(Break on Pass Counter Equal to Predefined Value)MPLAB hat einen Ereigniszhler, der benutzt werden kann um denProzessor anzuhalten (assign to break logic) oder Aufzeichnungen

    -38-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    durchzufhren (assign to trace logic). Der Ereigniszhler hlt denProzessor an, wenn eine bestimmte Adresse eine vorgegebene Anzahlmal durchlaufen wurde.Halt, wenn der Stack berluft (Break on Stack Overflow)Diese Option hlt den Prozessor an, wenn der Stack berluft. Wiebekannt, haben die PIC-Microcontroller einen Hardware-Stack, der beider PIC 1 GCSx-Familie 2 Ebenen tief ist und bei der PIC 1 GCxxx-Familie8 Ebenen.Halt, wenn Watchdog-Timer anspricht (Break on Watch Dog Timer)Wenn diese Option aktiviert ist, dann veranlat MPLAB ein Halten desProzessors, wenn der Watchdog-Timer nicht innerhalb seinereingestellten Zeit zurckgesetzt wurde.Benutzerausgelster Halt (User Halt)Die Entwicklungsumgebung MPLAB ermglicht drei Wege, um einenbenutzerausgelsten Halt des Prozessors durchzufhren:l Debug > Rm > Halt anklicken,. F5 bettigenl Halt-Zeichen (Rote Ampel) anklicken

    Aufzeichnungspunkte (Real-Time Trace Points)Eine Trace-Funktion zeichnet die ausgefhrten Programmschritte auf.Der MPLAB-SIM Simulator und der PICMASTER Emulator habenjeweils einen 8k groen Echtzeit-Aufzeichnungsspeicher (Trace Buffer),der Adresswerte und die Befehle, die bei der jeweiligen Adresseausgefhrt werden, aufzeichnet. Dieser Ringspeicher zeichnet stndigDaten auf und berschreibt dabei die ltesten Daten (es sei denn, dieOption >,Halt, wenn der Trace-Speicher voll ist wurde aktiviert).Die Information, die in dem 8k groen Trace-Speicher aufgezeichnetwird, ist folgendermaen gruppiert:l 16 Bit Adressenl 16 Bit Opcode / Datal Zeitzeichen und genderte Register (nur bei MPLAB-SIM)l 8 Bit Daten des externen Logikanalysators (nur bei PICMASTER)Die Option ,,Halt Trace ermglicht es, eine Momentaufnahme desTrace-Speichers durchzufhren, ohne den Prozessor dabei anzuhalten.In der Werkzeugzeile kann ,,Halt Trace angeklickt werden, um dieseMomentaufnahme durchzufhren. Wenn ,,Halt Trace erneut bettigtwird, dann wird eine neue Momentaufnahme durchgefhrt.

    -39-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Die Anzeige des MPLAB-SIM Simulator Trace zeigt neben den Daten,die auch der PICMASTER-Emulator erzeugt zustzlich noch einZeitzeichen und die jeweiligen nderungen in Registern an. DasZeitzeichen verwendet die gleiche Zeil:, die auch die Stoppuhr anzeigt.Das Zeitzeichen kann zurckgesetzt werden, indem die Stoppuhrzurckgesetzt wird.

    Ereigniszhler (Pass Counter)MPLAB hat einen Io-Bit Ereigniszhler, der jedesmal um einen Schrittzurckgesetzt wird, wenn der aktuelle Wert des Programmzhlers einemvoreingestellten Wert entspricht.Wenn der Prozessor im ,,Halt-Status ist, dann knnen die Werte dcsEreigniszhlers in der Dialogbox ,,Brzak Point Settings oder ,,TracePoint Settings eingegeben werden. Zuerst wird die gewhlte Adresseim Programmzhler eingestellt, dann wird der Ereigniszhler mit dementsprechenden Wert (bis 16 Bit) geladen. Wenn der Ereigniszhler bisauf Null gezhlt hat, wird eines der folgenden Ereignisse ausgelst:l Ereigniszhler auf Haltepunkt gestellt (assigned to breake): Der

    Prozessor hlt an, wenn ein Haltepunkt erreicht ist oder derEreigniszhler auf Null gezhlt hat.

    l Ereigniszhler auf Aufzeichnung gestellt (assigned to trace): indiesem Fall zeichnet der Trace-Ringspeicher keinerlei Daten auf,bevor der Ereigniszhler nicht auf Null gezhlt hat. Wenn derEreigniszhler auf Null steht, dann werden bei jedemProgrammschritt Daten im Trace-Speicher abgelegt.

    Der Ereigniszhler zhlt immer dann einen Schritt zurck, wenn derProgrammzhler einen bestimmten Wzrt aufweist. Indem man ihn aufeinen bestimmten Stand voreinsteilt und den Stand nach Ablauf desProgrammes subtrahiert, kann man feststellen, wie oft das Programm aneiner bestimmten Stelle ,,vorbeigekommen ist.

    Die Benutzeroberflche MPLAB stellt folgende Fenster mitverschiedenen Informationen zur VerfLigung:

    Yrogram MemoryDas ,,Program Memory Fenster zeigt die Prozessorbefehle an, die inden Programmspeicher des Emulators oder Simulators geladen wurden.

    -4o-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Trace MemoryDas ,,Trace Memory Fenster zeigt die Informationen an, die in demTrace-Ringspeicher abgelegt sind.

    EEPROM MemoryWenn der Zielprozessor EEPROM Datenspeicher besitzt, dann wirddessen Inhalt in diesem Fenster angezeigt.

    Absolute ListingIn diesem Fenster wird die Datei angezeigt, die von einem Assembleroder Compiler erzeugt wurde. Es wird der Quelltext und der erzeugteObject Code angezeigt.

    StackDieses Fenster zeigt den Inhalt des Stack-Speichers in jedem Prozessoran.

    File RegistersDas ,,File Registers Fenster zeigt den Wert aller File Register dcsProzessors, der gerade emuliert wird, an.

    Special Function RegistersDas ,,Special Function Registers Fenster zeigt den aktuellen Wert allerSpecial Function Register des Prozessors, der gerade emuliert wird, an.

    Show Symbol ListDas ,,Show Symbol List Fenster zeigt alle Symbole, die im Quelltextverwendet wurden, an. Die Symbole stammen aus der *.COD Datei indem Projekt.

    StopwatchDieses Fenster zeigt eine Stoppuhr, die es ermglicht, Zeiten oderZeitabschnitte zu messen. Die Stoppuhr luft, wenn der Targetprozessorluft und kann jederzeit zurckgesetzt werden. Die Frequenz desverwendeten Quarzes mu manuell eingegeben werden, damit dieangezeigten Werte richtig sind.

    -4l-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Custom Watch WindowsDas ist ein berwachungsfenster, das vom Benutzer selbst eingerichtetwerden kann. In diesem Fenster wird der Inhalt von vorselektiertenVariablen oder Register angezeigt. Diese Fenster knnen abgespeichertund wieder aufgerufen werden, ohne die gesamte Konfiguration vonMPLAB zu beeinflussen.

    ModifyDieser Dialog erlaubt es, einen Speicherplatz oder einenSpeicherbereich zu lesen oder zu beschreiben. Folgende Speicherartenknnen davon betroffen sein: Daten, Stack, Programm, EEPROM (wennverfgbar).

    Die folgenden Befehle stehen fr den Debugging-Prozess zurVerfgung:RunDas ,,Run Men erlaubt die Kontrolle ber die Ausfhrung derSoftware im Targetprozessor.

    Run (F9)Rurt > Debug > Rm nimmt den Prozessor aus dem Halt Status undbeginnt mit der Abarbeitung der Befehle bis ein Haltepunkt (breakpoint)auftaucht oder bis Halt bettigt wird.Die Ausfhrung beginnt an der aktuellen Position des Programmzhlers(wie in der Statuszeile angezeigt). Die fortlaufende Position desProgrammzhlers wird ebenfalls im Programmspeicher-Fensterangezeigt. Whrend der Befehlsabarbeitung sind die Schaltflchen fr,,Run und ,,Schrittbetrieb deaktiviert.

    Reset (F6)Debug> Run> Reset bewirkt eine Reset-Sequenz im Targetprozessor.Das bedeutet, ein MCLR Befehl setzt den Programmzhler auf denReset-Vector. Wenn der Prozessor gerade Befehle abarbeitet, dann fhrter damit an der Adresse des Reset-Vector fort.

    System Reset (Ctrl+Shift+F3)Debug > System > Resef bewirkt, da das gesamte System inklusive derPICMASIER-Emulator-Hardware (we:m angeschlossen), sowie alle{

    -42-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Software zurckgesetzt wird. MPLAB wird von neuem initialisiert, soals ob man das Programm neu startet.

    Power-On-Reset (Ctrl+Shift+F5)Debug > Power-On-Reset bewirkt, da die ,,Power-On-ResetDialogbox angezeigt wird und man bestimmte Optionen einstellen kann.Dieser Befehl erlaubt es, da man die ,,Power-On-Reset-Funktion aufdem Targetprozessor emulieren kann.

    Halt (F5)Debug > Rm > Hdt setzt den Prozessor in den ,,Halt Status (derProgrammzhler wird gestoppt). Die Prozessor-Status-Information wirddabei aktualisiert.

    Halt Trace (Shift+FS)Debug > Run > Hdt Trnce bewirkt, da der Trace-Speicher keineDaten weiter aufnimmt, der Prozessor aber weiterluft. Diese Option istnur dann aktiviert, wenn der Prozessor luft.

    Der ,,Halt Trace-Befehl ist dann sinnvoll, wenn der Prozessor nichtangehalten werden kann, man aber trotzdem ein Bild ber die Werte ineinem Register haben mchte. Eine typische Anwendung wre dieberwachung der Arbeit einer PWM bei einer Motorsteuerung.Bei der Ausfhrung des ,,Halt Trace-Befehl passiert folgendes:1. Der Trace-Speicher nimmt keine Daten mehr auf. Das entsprechende

    Fenster wird aktualisiert und zeigt den Inhalt des Trace-Speichers biszu der Zeit an, als er angehalten wurde.

    2. Der Prozessor luft aber trotzdem weiter.

    Step (F7)Debug > Rm > Step lt den Prozessor im Einzelschrittbetrieb laufen.Dieses Kommando fiihrt einen Prozessorbefehl (einen oder mehrereProzessortakte lang) aus und versetzt den Prozessor dann in den ,,Halt-Status. Danach werden alle geffneten Fenster mit dem neuesten Statusaktualisiert.. Wenn der Prozessor in einer Echtzeitemulation in MPLABluft, wird der ,,Step-Befehl ignoriert.

    -43-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Step Over (FS)Select Debug > Run > Step Over fhrt die Befehle an der aktuellenPosition des Programmzhlers aus. Bei einem ,,Call-Befehl wird dasaufgerufene Unterprogramm ausgefhrt und an der Adresse, die nachdiesem Befehl kommt, angehalten.

    Change Program CounterDebug > Run > Change Program Counter ermglicht das manuelleberschreiben des aktuellen Wertes fr den Programmzhler.

    ExecuteDas ,,Execute Men ermglicht die Kontrolle des im Targetprozessorausgefhrten Programms.

    Execute an OpcodeDebug > Execute > Execure nrz Opc&e dient zur Ausfhrung eineseinzelnen oder einer Serie von Befehlen? ohne den Programmspeicherzu verndern. Nachdem die Befehle ausgefhrt wurden, kann manfortfahren, das Programm aus dem Programmspeicher abzuarbeiten.

    Animations-ModusDebug > Run > Animnte aktiviert den Animations-Modus. Das ist eineMethode des automatischen Einzelschritt-Betriebs des Microcontrollers.Der Controller luft, als ob er sich im normalen Run-Modus befindet.Nach jedem Schritt wird der Inhalt aller Fenster aktualisiert, so da delaktuelle Programmablauf mit aller Verzweigungen, Sprngen,Bedingungen usw. sichtbar wird. Eine Simulation im Animations-Modus luft langsamer als eine herkmmliche Simulation, erlaubt aberdie kontinuierliche berwachung aller R.egister.

    Conditional BreakDebug > Execute > Comiitional Break bewirkt die Anzeige einerDialogbox. Der Prozessor luft im automatischen Einzelschrittbetrieb,der mit dem Aktivieren des ,-Start-Knopfes beginnt und solangeweitergeht, bis man ,,Halt bettigt oder aber eine Bedingung erfllt ist.welche in der Dialogbox angegeben ist. Folgende Mglichkeitenbestehen:

    -44-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    1. Benutzer-Halt: wenn der Prozessor luft, dann kann er durch diesenBefehl gestoppt werden.

    2. Anzahl der Maschinentakte: die Anzahl der Takte kann in die,,Value-Box eingegeben werden.

    3. Register-Wert Bedingungen (fr bestimmte RAM-Adressen):= gleich dem eingegebenen Wert nicht gleich dem eingegebenen Wert> grer als der eingegebene Wert< kleiner als der eingegebene Wert>L grer / gleich dem eingegebenen Wert

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    STEP RB7 RB6 RB5 RB4 -3 m2 m1 RB03 0 0 0 0 1 0 0 15 0 0 0 0 0 1 0 165 0 0 0 0 1 0 1 067 0 0 0 0 0 1 0 1127 0 0 0 1 1 0 1 1129 0 0 0 0 0 0 1 1191 0 0 0 1 0 0 0 1193 0 0 0 0 0 1 1 1253 0 1 0 0 0 0 0 0255 0 0 1 1 1 1 1 1

    Abbildung IG: Beispiel einer Stimulus-3atei fr Pin-Stimulus

    Das Debug > Sinzuhtor Stimrrkrs ermglicht es, eine Stimulus-Datei fiird e n M P L A B - S I M S i m u l a t o r z u f f n e n . B e i ,,Run- o d e rEinzelschrittbetrieb des Prozessors werden die entsprechenden Wertedann eingeprgt, wenn die Stoppuhr mit der angegebenen Zeitbereinstimmt oder wenn der Befehl mit der entsprechenden Nummetausgefhrt wird. Die Stimulus-Dateien des lteren MS-DOS MPSIMsind mit den MPLAB-SIM Stimulus-Dateien kompatibel.Die erste Zeile der Datei besteht immer aus der berschrift der Spalten.Zuerst steht das Wort ,,STEP und dann die Pins, die manipuliertwerden sollen. Die Daten unter der dem Wort ,,Step beinhalten denSchritt der Manipulation, die Daten unter den einzelnen Pins den Wert.Es knnen Kommentare eingefgt werden . Diesen mu e inAusrufezeichen (!) vorgestellt werden.

    Asynchronous StimulusDieses Kommando ffnet eine Dialogbox, die es ermglicht, asynchroneEreignisse zu simulieren. Damit kann man z.B. sehr gut externeInterrupts oder Resets nachbilden, indem man eine der speziellengekennzeichneten Schaltflchen der Dialogbox bettigt. Die Dialogboxermglicht das Zuordnen von 4 Typen von Signalen zu jedem Schalter:l Highl Lowl Togglel Pulse

    -46-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Ein asynchrones Ereignis kann nur dann eingeprgt werden, wenn sichder Simulator im ,,Run-Modus befindet. Falls der Prozessor angehaltenist, dann mu das entsprechende Pin manuell gesetzt oder gelschtwerden.

    Glock StimulusEs ist mglich, einen sich stndig wiederholenden Takt zu einem I/O-Pin zuzuordnen, indem man die Periode des Taktsignales festlegt unddie Anzahl der Takte, in denen das Signal H oder L sein soll.Taktsignale sind synchrone Ereignisse, die an jedes Eingangspinangelegt werden knnen.Die maximale Anzahl der Taktsignale, die insgesamt angelegt werdenknnen, ist 12.

    Register StimulusDiese Funktion schreibt immer genau dann den Wert einer DOS-Textdatei i n d e n s i m u l i e r t e n PIC-Microcontroller, w e n n d e rProgrammzhler einem bestimmten Wert entspricht.Diese Funktion ist dann ganz ntzlich, wenn ein PIC16C71 oder 74 oderein anderer Baustein mit A/D-Wandler simuliert werden soll (natrlichgeht das Prinzip auch mit anderen Modulen). Der MPLAB-SIMSimulator kann natrlich keine reale A/D-Wandlung durchfhren.Deswegen nutzt man einen Register Stimulus, mit dessen Hilfe manimmer dann einen Wert in das ADRES (A/D-Resultat) Register schreibt,wenn eine Wandlung htte stattfinden sollen. Der Registerwert wirdimmer dann ber t ragen , wenn e in bes t immter S tand desProgrammzhlers erreicht ist.Das Format der entsprechenden Textdatei ist ein Hexadezimal-Wert proZeile, z.B.:OXAAOX5BOXAA0x55und so weiter...

    -47-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    6.4. Datei-Endungen, die von MPILAB genutzt werden

    Die blichen Datei-Endungen, die von MPLAB genutzt werden, lautenfolgendermaen:*.COD Beinhaltet symbolische Inforn- ationen und Object Code.*.PJT Beinhaltet die meisten Informationen, die zu einem Projekt

    gehren.*.c Reinhaltet einen C Quelltext.H Beinhaltet eine C lnclude-Datei*.ASM Beinhaltet einen Assembler Quelltext*.INC Beinhaltet eine Assembler lnclude-Datei*.HEX Maschinencode im Hex-Format*.CFG Konfigurations- und Setup-Datei*.TRC Inhalt des Trace-Speichers*.TBR Datei, in der die Werkzeugleisten gespeichert sind*.LST List-Datei, die vom Assetnbler/Compiler erzeugt wurde*.ERR Fehler-Datei, die vom AssemblerKompiler erzeugt wurde*.WAT Watch-Fenster Datei*.TPL Template*.KEY MPLAB Keyboard Datei*.TB Trace-Speicher Datei nach Haltepunkt*.STI Pin-Stimulus Datei*.REG Register-Stimulus Datei

    -4%

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    7. Beispielapplikation fr den PIC16F84

    7.1. Besonderheiten und Aufbau des PICl6FS4

    Der Baustein PIC16F84 ist ein Mitglied der Mid-Range-Familie, dasbedeutet, sein Programmspeicher ist in 14 Bit breiten Programmwortenorganisiert. Die Besonderheit dieses Bausteins besteht darin, da derProgrammspeicher als Flash ausgefhrt ist. Deswegen kann der Inhaltdes Programmspeichers immer wieder aktualisiert werden. Somit sindUpdates der Software, die in dem Baustein luft, immer wieder mglich.Da die Bausteine auerdem seriell programmiert werden knnen,scheint der Einsatz insbesondere in solchen Applikationen sinnvoll, beidenen in der Anwendung Vernderungen am Programm durchgefhrtwerden mssen. Neben dem Flash-Programmspeicher und dem blichenRAM-Datenspeicher gibt es auerdem noch einen EEPROM alsDatenspeicher. Auerdem gibt es Bauteile mit einem ROM alsProgrammspeicher, auch wenn diese weit weniger blich als die

    EEPROM Data Memory

    110 POrtSl l

    RA4TTOCK

    RB7 RB1

    RBOIINT

    Abbildung 17: Blockschaltbild des Aufbaus eines PIC 16F83 / PICl6F84

    -49-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Flash-Varianten sind. In der folgenden Tabelle sind alle Speicherartender PICF8x-Familie aufgefhrt:

    Baustein

    PIC16F83PIC 16CR83PIC 16F84

    PIC 16CR84

    Programmspeicher DatenspeicherRAM

    512 x 14 Flash 36 Byte512 x 14 ROM 36 Bytelk x 14 Flash 68 Bytelk x 14 ROM 68 Byte

    Wenn man den Aufbau eines PIC16F84 ansieht (Abbildung 17) dannwird deutlich, da es auer dem blichen Timer 1 keine weiterenPeripherieelemente gibt. Der Baustein kommt im 18Pin Gehuse undhat eine maximale Taktfrequenz von IO MHz. Im Datenblatt kann mansehen, da der Baustein pinkompatibel zu vielen Mitgliedern derPIClGCSx-Familie i s t . D e m z u f o l g e k a n n m a n i h n a u c h frEntwicklungszwecke gut einsetzen. 1.2 dem Starterkit PICSTART Plusist z.B. ein PIClGF8x-Baustein enthalten.Um ein Programm mit einem PICl6F84 Microcontroller zu schreiben,sollte die Software folgendes Grudgerust aufweisen:

    ; 1st Sample Program on the I?icDem-1 with the PIC16F84

    LIST p=16F84Include "c:\mplak~\P16F84.inc"CONFIG H'3FF3'=20

    Count EQUDone EQUDLYl EQUDLY2 EQUPUSH EQUDly2def

    ORGGOTO

    oxocD'14'OxODOxOEOxOFEQU 0x10

    0Init

    ORG H'lO'

    Init

    -50..

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    CLRF PUSH

    MOVLW 0x00 =09MOVWF PORTB ; Set all LEDs offBSF STATUS, RP0MOVWF TRISBBCF STATUS, RP0

    MOVLW 0x02BSF STATUS, RP0MOVWF TRISABCF STATUS, RP0

    Start

    ; Hauptprogramm

    End

    Die PIC16F8x-Bausteine sind zwar momentan die einzigen Contollervon Microchip mit Flash als Programmspeicher, aber das soll nicht sobleiben. Wie man dem ,,Future Product Guide entnehmen kann, ist frdas Jahr 1998 eine ganze Familie von neuen Controllern mit Flash-Programmspeicher geplant.

    7.2. Einfaches Lauflicht

    Hier wollen wir nun ein einfaches Beispiel fr eine Schaltung mit einemPICl6F84 besprechen. Als Aufgabe wurde die Programmierung einesLauflichtes gewhlt, weil dieses als Beispiel fr eine einfacheAblaufsteuerung angesehen werden kann. Und gerade die einfachenAblaufsteuerungen sind eine Applikation, in der solche Microcontrollerwie die PICmicros oft genutzt werden (z.B. Waschmaschinen-Steuerungen, Anzeigen, Tastenabfragen usw.).Das Schaltbild des Lauflichtes ist in Abbildung 18 zu sehen. AlsHardwareplattform wurde das Demokit PICDEM 1 gewhlt. DiesesDemokit besteht aus einer Leiterplatte, die bereits mit externenBauelementen und verschiedenen Sockeln bestckt ist. In die Sockelknnen nun diverse PIC-Microcontroller eingesteckt werden, um dieFunktion oder bestimmte Programme, Programmteile oderPeripherieelemente (z.B. auch A/D Wandler oder Schnittstellen) zu

    -5l-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    testen. Das Demokit PICDEM 1 kann man kuflich erwerben. Natrlichkann man sich die Schaltung nach Abbildung 18 auch selbst auf einStck Leiterplatte aufbauen.

    5F84

    -ED

    Abbildung 18: Schaltplan eines Lauflichts mit PICDEM 1

    Hier ist nun die Auflistung des Programms fr ein einfaches Lauflicht.Die genaue Bedeutung der einzelnen Befehle entnehmen Sie bitte demDatenblatt und der Beschreibung des .4ssemblers MPASM.

    ; 1st Sample Program on the PicDem-1 with the PIC16F84.

    LIST p=16F84Include ~'c:\mplah\Pl6F84.inc"CONFIG H'3FF3'=20-

    Count EQU oxocDone EQU D'14'DLYl EQU OxODDLY2 EQU OxOEPUSH EQU OxOFDly2def EQU 0 x 1 0

    ORG 0GOTO Init

    ORG H'lO'

    -52-

  • Future Electronics / FAI - Handbuch fr PTC-Starter

    InitCLRF PUSH

    MOVLW 0x00 =09MOVWF PORTB ; Set all LEDs offBSF STATUS, RP0MOVWF TRISBBCF STATUS, RP0

    MOVLW 0x02BSF STATUS, RP0MOVWF TRISABCF STATUS, RP0

    StartCLRF Count

    LoopMOVE' Count, 0CALL TableMOVWF PORTB

    MOVF PUSH, 0SUBLW D'O'BTFSC STATUS, 2GOTO DlydefO

    MOVF PUSH, 0SUBLW D'l'BTFSC STATUS, 2GOTO Dlydefl=09

    MOVF PUSH, 0SUBLW 0'2'BTFSC STATUS, 2GOTO Dlydef2=09

    MOVF PUSH, 0SUBLW D'3'BTFSC STATUS, 2GOTO Dlydef3

    ; Reset counter

    MOVF PUSH, 0SUBLW D'4'BTFSC STATUS, 2

    -53-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    GOTO Dlydef4

    CLRF PUSHGOTO Start

    ContINCF Count, 1MOVLW Done ; Check if last value reachedSUHWJ? Count, 0BTFSS STATUS, 2GOTO Loop

    GOTO Start

    Pushed=09BTFSS PORTA, IGOTO PushedINCF PUSH, 1GOTO Loop

    DlydefOMOVLW D'100'MOVWF Dly2defGOTO Delay

    DlydeflMOVLW D'75'MOVWF Dly2defGOTO Delay

    Dlydef2MOVLW D'50'MOVWF Dly2defGOTO Delay

    Dlydef3MOVLW D'35'MOVWF Dly2defGOTO Delay

    DlydeflMOVLW D'30'MOVWF Dly2defGOTO Delay

    -54L

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    DelayCLRF DLYl

    DelaylINCF DLYl, 1CLRF DLY2

    Delay2BTFSS PORTA, 1GOTO Pushed

    INCF DLY2, 1MOVF Dly2def, 0SJ-BW-F DLY2, 0BTFSS STATUS, 2GOTO Delay2

    MOVLW D'50'SUBWF DLYl, 0BTFSS STATUS, 2GOTO DelaylGOTO Cont

    TableADDWF PCL, 1

    DT H'FE', H'FD', H'FB', H'F7', H'EF', H'DF',H'BF',

    H'7F', H'BF', H'DF', H'EF', H'F7', H'FB', HFD

    End

    Die Besonderheit dieses Programms besteht darin, da das Bitmuster,welches den Lauflichteffekt erzeugt, mit einer Tabelle erzeugt wird.Diese Tabelle ldt eine vorgespeicherte Konstante in das W-Register.Wichtig ist, da dieser Befehl sowie RETLW und MOVLW in derHarvard-Architektur die einzigen Mglichkeiten sind, Konstanten, dieim Programmspeicher stehen, in den Datenspeicher zu transferieren. Beider Von-Neumann Architektur geht man einfach an die spezielle Stelle,wo der jeweilige Wert gespeichert ist und liest diesen aus. In derHarvard-Architektur dagegen sind die entsprechenden Befehle ntig.

    -55-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    8. Beispielapplikationen fr den PIC12C508

    8.1. Besonderheiten und Aufbau des PICl2C508

    Der PIC 12C508 ist ein Mitglied der PIC12Cxxx Familie. Daswesentliche Merkmal dieser Farn ilie besteht darin, da alleMicrocontroller in einem S-Pin Gehuse angeboten werden. Das bedingteinige Besonderheiten im Aufbau (siehe Abbildung 19). So gibt esneben der Betriebsspannung und der Masse noch 6 weitere Pins, die frEin- bzw. Ausgnge zur Verfgung stehen. Damit diese Pins effektivgenutzt werden, besteht die Mglichke It anstelle eines externen Quarzesoder Resonators einen internen RC-Oszillator zu nutzen. Dieserschwingt mit einer Frequenz von 4 MHz, die interne Taktfrequenzbetrgt dann also 1 MHz. Damit die immer vorhandenen Streuungen derFrequenz des internen RC-Oszillators ausgeglichen werden knnen, gibtes ein spezielles Register OSCCAL, in welches ein Kalibrierwerteingetragen werden kann. Dieser Wert dient zur Feinanpassung derTaktfrequenz des internen RC-Oszillators.

    Proaram Counter

    General Purpose IIC

    GPOGPlGPZ/TOC KlGP3lml?NpGP410SC2GPSIOSClICLKIN

    Vdd,

    Abbildung 19: Blockschaltbild dcs Aufbaus eines PIC 12C508 / 509

    -56-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    Dabei ist zu beachten, da auf diese Weise zwar dieproduktionsbedingten Streuungen zwischen einzelnen RC-Oszillatorenausgeglichen werden knnen, nicht jedoch deren Temperaturgang.Trotzdem lt sich so eine fr viele Anwendungen hinreichend genaueKalibrierung des RC-Oszillators durchfhren. In demProgrammspeicher aller PlC12Cxxx Controller ist auf der letztenSpeicherstelle ein Befehl MOVLW xx abgelegt. Dieser ist bereits abWerk mit einem Kalibrierwert versehen. Die Kalibrierung selbst erfolgtdurch den ersten Befehl, dieser mu MOVWF OSCCAL lauten, damitwird der Inhalt des W-Registers (im dem der Kalibrierwert stehen sollte)in das OSCCAL-Register geladen. Neben dem vorgegebenenKalibrierwert kann man sich auch Kalibrierwerte selbst errechnen, wennman im Programm Zeitnormale (z.B. eine Netzfrequenz) zur Verfugunghat. Wenn man die errechneten Kalibrierwerte permanent nachldt kannman so auch temperaturbedingte Ungenauigkeiten ausgleichen.Von den meisten PIC 12Cxxx Microcontrollern gibt es Ausfhrungen imKeramikgehuse mit Fenster, die ZLI Entwicklungszwecken beliebt sind,weil sie es ermglichen, den Programmspeicher durch UV-Licht zulschen. Die vom Werk vorprogrammierten Kalibrierwerte fr den RC-Oszillator stehen aber wie gesagt in Form eines MOVLW-Befehls ander letzten Stelle des Programmspeichers. Deswegen ist es notwendig,da man diesen Kalibriewert zuerst ausliest, bevor man mit demFenstertypen weiterarbeitet und den Wert dann lscht. Zum Auslesendes Kalibriet-wertes schliet man ein PICSTART Plus Programmiergertan und nachdem die Kommunikation erfolgreich hergestellt wurde, kannman den Kalibrierwert mit auslesen.Der Controllerkern der PIC12Cxxx Microcontroller ist identisch mit denKernen der PICI 6C5x bzw. PIC IOCxx Familien, hat also entwedereinen 12 oder einen 14 Bit breiten Programmspeicher.Der PIC 12C.508 / 509 ist vom PIC 16C54 abgeleitet und hnelt diesemim Aufbau (Abbildun g 19), hat aber natrlich weniger Pins. Wie diePIC 1 GCSx-Controller hat er einen 12 Bit breiten Programmspeicher undeinen 2 Ebenen tiefen Stack-Speicher. Das einzige Peripherieelement istder Timer.Eine wichtige Besonderheit der 8-Pin Familie ist die generell serielleProgrammierung des Programmspeichers. Da nicht gengend Pins freine parallele Programmierun, zur Verfugung stehen, mu auf eine

    -57-

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    serielle Programmierun g zurckgegriffen werden. Dazu werden dieblichen 5 Leitungen verwendet (siehe auch Kapitel IO).Als weitere Besonderheit haben clie PIC 12Cxxx-Microcontrollerschlielich an verschiedenen Port-Pins interne Pull-Up-Widerstnde, dieeine externe Beschaltung erbrigen. Auerdem ist eine ,,Wake Up OnPin Change Funktion implementiert, das bedeutet, wenn sich derBaustein im Sleep-Modus befindet, wird er geweckt, sobald sich eineVernderung an einem der Port-Pins ergibt.Yn dem grundlegenden Programmkrper fr einen PIC12C.508 mu derProze der Kalibrierung des Oszillators und der Konfigurierung desOption-Registers (hier werden die wichtigsten Eigenschaften festgelegt)eingebunden werden:

    ; Programmkrper PIC12C508LIST P=PIC12C508, r=HEX

    #include "P12C508.1NC1'

    ; Register definitionsRegl EQU 0x08 ; Register 1Reg2 EQU 0x09 ; Register 2Reg3 EQU OxOA ; Register 3Reg4 EQU OxOB ; Register 4Reg5 EQU oxoc ; Register 5; Configure FusesCONFIG MCLRE OFF& CP OFF& WDT OFF& IntRC OSC- - - - - - - - -

    ; Calibration ValueORG OxlFFMOVLW 0x30

    ; Reset vectorORG 0x00

    BEGINmovwf OSCCAL

    movlw B'OOOOOOOO'OPTIONCLRF GPIO

    END

    ; Kalibrierwert entsprechend des; Wertes aus dem Keramikgehuse; nicht notwendig bei OTP

    ; W Reg. in Kalibrier-Reg. laden; Wert fr Option Register; in das Option Register laden; GPIO definiert auf 0 setzen

    -5%

  • Future Electronics / FAI - Handbuch fr PIC-Starter

    8.2. Serielle Kommunikation

    Die folgende Beispielschaltun,0 soll ein Signal, das mit einer seriellenSchnittstelle empfangen wird, identifizieren und zurcksenden, undzwar mit der gleichen Baudrate wie das empfangen Signal.Als Hardwaregrundlage fr die Schaltung (Abbildung 20) wirdwiederum das Demokit PICDEM 1 verwendet. Der Schnittstellen-schaltkreis und die RS232 - Buchse sowie die LEDs sind auf der Platinedes Demokits bereits enthalten. Es mu lediglich ein 8-Pin Sockel aufdem Board ergnzt und verdrahtet werden.

    PICI 2C508VCC

    R4

    GPD GP5

    GPl GP4- T Z I TZ0 - - - 0

    . GP2 GP3 -5RIO Ri I -

    v s s - RZ0 RZI -RS 232

    Abbildung 20: Schaltbild fr eine serielle Kommunikation

    Die Schaltung soll folgendermaen funktionieren:Ein Signal wird ber die serielle Sch