Ich arbeite an einer Ultra-Low-Power-Anwendung und möchte nur einen Pin als Ausgang und einen Pin als Eingang aktivieren und darauf zugreifen. Ich verwende den MSP430-Mikrocontroller und CCS zum Programmieren. Ich habe zwei Fragen.
Das MSP430 ermöglicht den Zugriff auf einen ganzen Port. Ist es möglich, nur auf die erforderlichen zwei Pins als Eingang und Ausgang zuzugreifen (was in PIC möglich ist)?
Verbraucht der Zugriff (und die Aktivierung) des gesamten Ports (8 Pins) nicht mehr Strom als der Zugriff (und die Aktivierung) auf einen einzelnen Pin?
Der MSP430 organisiert die GPIO-Bits in Ports, aber wenn C-Anweisungen verwendet werden, die einzelne Bits setzen/löschen, generiert der Compiler Befehle zum Setzen/Löschen von Bits, die nur einzelne Bits (BIS/BIC) betreffen:
if (P1IN & BIT1) {
P1OUT |= BIT4;
} else {
P1OUT &= ~BIT4;
}
Dies verbraucht keinen Strom für irgendwelche Bits, auf die nicht zugegriffen wird.
Im Allgemeinen verbrauchen GPIO-Pins keinen Strom, es sei denn
In der Bedienungsanleitung erfahren Sie, wie Sie unbenutzte Pins konfigurieren: als Ausgang oder als Eingang mit einem Pull-up/-down. (Die Standardeinstellung ist die Eingabe ohne Pull-up/-down, was keinen Strom spart, aber die sicherste Einstellung ist, während der Chip noch im Reset ist.)
1) Ja, Sie können Pins einzeln auswählen. Um beispielsweise Pin 4 von Port 1 als Ausgang und High zu setzen:
P1DIR |= (1 << 4);
P1OUT |= (1 << 4);
Um denselben Pin als Eingang festzulegen, löschen Sie das DIR
Bit:
P1DIR &= ~(1 << 4);
Obwohl die Register P1DIR
und P1OUT
den gesamten Port 1 als Ganzes beschreiben, steuern die einzelnen Bits in diesem Register einzelne Pins: Das niedrigstwertige Bit steuert den ersten Pin für diesen Port und so weiter. Gleiches gilt für die anderen Ports, von denen jeder acht Pins hat.
2) Pins sind in einigen Modi immer "aktiviert". Es gibt DIR
ein Flag für jeden Pin (das auswählt, ob sich der Pin im Eingangs- oder Ausgangsmodus befindet) und es gibt SEL
auch ein Flag (wählt aus, ob der Pin im Daten- oder Funktionsmodus ist). Der Standardmodus (nach dem Neustart) für einen Pin ist Daten+Eingabe. Der Energieverbrauch hängt davon ab, was Sie an den Pin angeschlossen haben; es gibt keine einzige Antwort.
Jayesh Parmar
DoxyLover
Passant