2  Digitale I/O-Ports

Je nach Gehäuseform und Ausstattung besitzen die Mikrocontroller der MSP430-Familie eine Anzahl mehrerer universeller I/O-Ports. Ein Port ist hierbei eine Gruppierung von acht bidirektionalen I/O-Anschlüssen, die über ein Register des Prozessors angesteuert werden. Diese I/O-Anschlüsse werden als Pins bezeichnet. Da der Mikrocontroller mehr Peripherie-Funktionalität als Beinchen besitzt, existiert eine funktionelle Mehrfachbelegung der Ein- und Ausgangsports. Das heißt, verschiedene interne Peripheriemodule müssen sich einen Ausgangspin teilen und es muss per Konfiguration festgelegt werden, welche nun den Ausgang verwenden kann.


PIC

Bild 2.1.: Anschlussbelegung des MSP430F149 [Tex04]


In Abbildung 2.1 ist die Anschlussbelegung des MSP430F149 dargestellt. Alle digitalen I/O-Ports werden mit der Kennung P, gefolgt von der Nummer des Byteports, einem Punkt und der Nummer des Pins gekennzeichnet. P2.5 ist demnach der Pin 5 (Zählung beginnt bei 0!) des Byteports 2 (Zählung beginnt bei 1). Insgesamt verfügt beispielsweise der MSP430F149 über 6 Ports mit jeweils 8 Bit = 48 digitale I/O-Pins.

Um mit einem Digitalport arbeiten zu können, muss dieser zunächst initialisiert werden. Um jetzt einem Port die Funktion ”Digital I/O” zuzuweisen, besitzt jeder Port ein spezielles Register, das Function-Select- Register (PxSEL). Mit diesem wird die gewünschte Funktion ausgewählt, ob jetzt der Port als allgemeiner I/O Port genutzt werden kann oder ein internes Funktionsmodul (z.B. der A/D Wandler) Zugriff auf den Port hat. Als Nächstes muss der CPU des MSP430 mitgeteilt werden, ob auf den Port lesend oder schreibend zugegriffen werden soll. Dazu besitzt jeder Byteport P1 bis P6 ein Richtungsregister (Direction-Register, PxDIR). Den Status eines Ports kann man dann mit dem Input- (PxIN) und Output- (PxOUT) Register lesen bzw. setzen.


DigitalportInputOutput Function-SelectDirection
     
P1 P1INP1OUTP1SEL P1DIR
P2 P2INP2OUTP2SEL P2DIR
P3 P3INP3OUTP3SEL P3DIR
P4 P4INP4OUTP4SEL P4DIR
P5 P5INP5OUTP5SEL P5DIR
P6 P6INP6OUTP6SEL P6DIR
     

Tabelle 2.1.: Die wichtigsten Register für die digitalen I/O-Ports des MSP430F149

Eine Übersicht über die wichtigsten Register für die digitalen I/O-Ports ist in Tabelle 2.1 aufgelistet. Port1 und Port2 verfügen darüber hinaus noch über spezielle Register für Interrupts. Alle Register liegen im Speicher des Controllers ab der Adresse 0x0020h bis 0x001Bh. In der Software erfolgt der Zugriff auf das Register entweder über die absolute Adresse (umständlich und schlecht portierbar) oder über die symbolischen Konstanten gleichen Namens. Jedes Register kann eine 8 Bit breite Zahl aufnehmen. Die sich daraus ergebende binäre Darstellung in 0 und 1 definiert für jeden einzelnen Pin eines Byteports die Datenrichtung, Funktion oder Ein- und Ausgabestatus.

 2.1  Digitale Eingänge
  2.1.1  Anschluss von Tastern
  2.1.2  Entprellen von Eingängen
 2.2  Interrupteingänge
 2.3  Digitale Ausgänge
  2.3.1  Software-Ansteuerung von digitalen Ausgängen
  2.3.2  Ansteuerung kleiner Lasten
  2.3.3  Leistungsausgänge
 2.4  Programmbeispiele
  2.4.1  Drehimpulsgeber
 2.5  Aufgaben