MSP430F169 Übersicht
Der Mikrocontroller MSP430F169 gehört zur MSP430-Familie von Texas Instruments. Er umfasst mehrere Geräte mit unterschiedlichen Peripheriegeräten, die für verschiedene Anwendungen entwickelt wurden. Die Architektur dieser Mikrocontroller wurde in Verbindung mit fünf Energiesparmodi optimiert, um die Batterielebensdauer für tragbare Messanwendungen zu verlängern. Darüber hinaus ermöglicht der digital gesteuerte Oszillator (DCO) schnelle Aufwachzeiten von weniger als 6 µs aus den Energiesparmodi in den aktiven Modus.
Diese Mikrocontroller finden typische Anwendungen in Sensorsystemen, industriellen Steuerungsanwendungen, Handmessgeräten und anderen ähnlichen Bereichen.
Funktionen
- Geringer Stromverbrauch;
- Fünf Energiesparmodi;
- Dreikanaliger interner DMA;
- Serielle Onboard-Programmierung;
- Programmierbarer Code-Schutz durch Sicherheits-Fuse;
- Mit Brownout-Detektor und Bootstrap-Loader;
- Versorgungsspannungsüberwachung mit programmierbarer Pegelerkennung.
Pinbelegungskonfiguration
Der MSP430F169 ist sowohl in einer 64-Pin- als auch in einer 100-Pin-Version mit jeweils unterschiedlichen Pin-Konfigurationen erhältlich.
Bei der 64-Pin-Version gehören zu den wichtigsten Pins:
| Pin-Typen | Pin-Name | Beschreibung |
|---|---|---|
| Versorgungspins | VCC | Eingang für die positive Versorgungsspannung |
| GND | Masse | |
| RST/NMI | Reset-Eingang und nicht maskierbarer Interrupt | |
| TEST | Eingang/Ausgang für den Testmodus | |
| AVSS/AVCC | Masse und Referenzspannung für ADC | |
| DVSS/DVCC | Masse und Referenzspannung für digitale Schaltungen | |
| Eingangs-/Ausgangspins | P1.x-P8.x | Universelle E/A-Pins |
| Kommunikationspins | UCA0CLK | Takteingang/-ausgang des USART-Moduls A0 |
| UCA0STE | STE-Eingang/-Ausgang des USART-Moduls A0 | |
| UCA0TXD | Sendedatenausgang des USART-Moduls A0 | |
| UCA0RXD | Empfangsdateneingang des USART-Moduls A0 | |
| UCB0CLK | Takteingang/-ausgang des SPI-Moduls B0 | |
| UCB0STE | STE-Eingang/-Ausgang des SPI-Moduls B0 | |
| UCB0SIMO | Sendedatenausgang des SPI-Moduls B0 | |
| UCB0SOMI | Empfangsdateneingang des SPI-Moduls B0 | |
| UCB0SDA | Dateneingang/-ausgang des I2C-Moduls B0 | |
| UCB0SCL | Takteingang/-ausgang des I2C-Moduls B0 | |
| Timer und Zähler | TA0CCR0-TA0CCR6 | Timer A0: Capture-/Compare-Register 0-6 |
| Steuerregister des Timers A0 | ||
| TB0CCR0-TB0CCR2 | Timer B0: Capture-/Compare-Register 0-2 | |
| Steuerregister des Timers B0 | ||
| Analoge Pins | ADC12CLK | Takteingang ADC12 |
| ADC12MEM0-ADC12MEM15 | ADC12: Speicherregister 0-15 | |
| AVREF+ | Eingang für die positive ADC-Referenzspannung | |
| AVREF- | Eingang für die negative ADC-Referenzspannung | |
| JTAG-Pins | TCLK | Testtakteingang/-ausgang |
| TDI | Testdateneingang | |
| TDO | Testdatenausgang | |
| Pins mit Sonderfunktionen | ACLK | Eingang für den Quarzoszillator mit 32.768 kHz |
| SMCLK | Ausgang des Systemhaupttakts | |
| RTCCLK | Echtzeittakteingang/-ausgang |

Spezifikation
| Spezifikation | Wert |
|---|---|
| CPU | 16-bit RISC |
| Frequenz | 8 MHz |
| Flash-Speicher | 16 KB |
| RAM | 2 KB |
| Leistung im Bereitschaftsmodus | 1.1 µA |
| Leistung im aktiven Betrieb | 330 µA bei 1 MHz, 2.2 V |
| Aufwachzeit | weniger als 6 µs |
| Befehlszykluszeit | 125 ns |
| Versorgungsspannung | 1.8 V bis 3.6 V |
| A/D-Wandler | 12-bit |
| Zeitgeber/Zähler | 2 * 16-bit |
| Betriebstemperatur | -40 bis 85 ℃ |
| DMA | 3 |
| I2C | 1 |
| SPI | 2 |
| Peripherie | Timer, serielle Schnittstellen, I2C |
| Gehäuse | QFP mit 64 Pins oder QFN mit 64 Pins |
MSP430F169 in Betrieb nehmen: Takt, Versorgung und Debug
Der MSP430F169 ist ein stromsparender 16-Bit-Mikrocontroller, dessen Start von sauberer Versorgung, Taktwahl, Pin-Multiplexing und definiertem Reset abhängt. Mit einem Minimalprogramm beginnen, das den Watchdog bewusst behandelt, einen bestätigten Pin schaltet und Takt sowie Reset sichtbar macht, bevor komplexe Peripherie aktiviert wird.
- Versorgung stabilisieren: lokale Entkopplung setzen sowie Resetanstieg und Stromaufnahme messen.
- Takt bestätigen: internen Oszillator und externe Quarzpfade unterscheiden und eine verfügbare Taktausgabe prüfen.
- Pins zuordnen: Richtung und Peripherieauswahl vor UART, Timer oder ADC konfigurieren.
- Analogreferenz planen: Eingangsspanne, Quellimpedanz, Einschwingzeit und Entkopplung beachten.
- Wiederzugriff erhalten: dokumentierte Programmier- und Debug-Pins zugänglich führen.
Taktsystem des MSP430F169
Das Taktsystem ist für den Einchip-Mikrocomputer sehr wichtig. Der Grund, warum der Einchip-Mikrocomputer MSP430F169 einen so geringen Stromverbrauch hat, liegt in seinem leistungsstarken Taktsystem!

Drei Taktsignalquellen
1. Niederfrequenz LFXT1CLK (32,768 kHz)
Ein Standard-Quarzoszillator, Oszillator oder eine externe Taktquelle kann für die Eingabe von 4 MHz bis 32 MHz verwendet werden. XT1CLK kann als Referenztakt für das interne FLL-Modul verwendet werden.
Der Niederfrequenz-Quarzoszillator (32,768 kHz) ist über die Pins XIN und XOUT direkt mit dem Einchip-Mikrocomputer verbunden, sodass keine weiteren externen Geräte erforderlich sind (im Inneren befindet sich eine Lastkapazität von 12 pF). Zu diesem Zeitpunkt arbeitet der LFXT1-Oszillator im Niederfrequenzmodus (XTS=0).
Wenn die MCU mit einem Hochgeschwindigkeits-Bulk-Oszillator oder Resonator verbunden ist, kann 0SCOFF=0 den LFXT1-Oszillator im Hochfrequenzmodus (XTS=1) arbeiten lassen. Zu diesem Zeitpunkt ist der Hochgeschwindigkeits-Quarzoszillator oder Resonator über die Pins XIN und XOUT angeschlossen, und es ist ein externer Kondensator erforderlich. Die Größe des Kondensators wird entsprechend den Eigenschaften des Quarzoszillators oder Resonators ausgewählt.
Wenn das LFXT1CLK-Signal nicht als SMCLK- oder MCIK-Signal verwendet wird, kann die Software OSCOFF=1 setzen, um den LFXT1 zu deaktivieren und so den Stromverbrauch des Mikrocontrollers zu reduzieren.
BCSCTL1:
XTS(BIT6)——Auswahl des LFXT1-Hoch-/Niedriggeschwindigkeitsmodus. 0: LFXT1 arbeitet im Niedriggeschwindigkeits-Quarzoszillatormodus (Standard); 1: LFXT1 arbeitet im Hochgeschwindigkeits-Quarzoszillatormodus.
2. Hochfrequenz-XT2CLK (8 MHz)
Es kann ein Standard-Quarzoszillator, Oszillator oder eine externe Taktquelle für die Eingabe von 4 MHz bis 32 MHz verwendet werden.
Der XT2-Oszillator erzeugt das Taktsignal XT2CLK und seine Betriebseigenschaften ähneln denen des LFXT1-Oszillators, wenn dieser im Hochfrequenzmodus arbeitet. Wenn XT2CLK nicht als MCLK- und SMCLK-Taktsignal verwendet wird, kann der XT2-Oszillator mit dem Steuerbit XT2OFF deaktiviert werden.
BCSCTL1:
XT2OFF (BIT7) – Steuerung des XT2-Hochgeschwindigkeits-Quarzoszillators. 0: XT2-Hochgeschwindigkeits-Quarzoszillator eingeschaltet; 1: XT2-Hochgeschwindigkeits-Quarzoszillator ausgeschaltet.
3. Interner Oszillator DCOCLK (1 MHz)
Durch das FLL-Modul stabilisiert.
Wenn der Oszillator ausfällt, wird DCO automatisch als Taktquelle für MCLK ausgewählt.
Die Frequenz des DCO-Oszillators kann durch Softwareeinstellung der Bits DCOx. MODx und RSEL.x angepasst werden. Wenn das DCOCLK-Signal nicht als SMCLK- und MCLK-Taktsignal verwendet wird, kann der DC-Generator mit dem Steuerbit SCGO deaktiviert werden.
Nach dem PUC-Signal wird DCOCLK automatisch als MCLK-Taktsignal ausgewählt, und die Taktquelle von MCLK kann zusätzlich je nach Bedarf auf LFXT1 oder XT2 eingestellt werden. Die Einrichtungssequenz ist wie folgt:
- Lass OSCOFF=1;
- OFIFG=0;
- Verzögern und mindestens 50 ps warten;
- Überprüfe OFIFG erneut. Wenn OFIFG=1, wiederhole die Schritte (3) und (4), bis OFIFG=0 ist.
DCOCTL:
DCOx (BIT7, BIT6, BIT5)——DCO-Frequenzauswahl, 8 Frequenzen können ausgewählt werden, und die DCOCLK-Frequenz kann in Abschnitten angepasst werden. Die Frequenzauswahl basiert auf dem von RSELx ausgewählten Frequenzband. Die Beziehung zwischen DCOx, RSELx und dem internen Takt ist wie folgt:

MODx (BIT4, BIT3, BIT2, BIT1, BIT0) – DAC-Modulator-Einstellung. Der Regler schaltet zwischen den beiden von DCOx und DCOx+1 ausgewählten Frequenzen um, um die Ausgangsfrequenz des DCO fein abzustimmen. Wenn die DCOx-Konstante 7 ist, bedeutet dies, dass die höchste Frequenz ausgewählt wurde. In diesem Fall ist MODx ungültig und kann nicht zur Frequenzeinstellung verwendet werden.
BCSCTL1:
RSELx (BIT2, BIT1, BIT0) – Auswahl des Frequenzbandes des DCO-Oszillators. Diese 3 Bits steuern einen internen Widerstand, um die Nennfrequenz zu bestimmen. 0: Auswahl der niedrigsten Nennfrequenz… 7: Auswahl der höchsten Nennfrequenz.
BCSCTL2:
DCOR(BIT0)——Auswahl des DCO-Oszillatorwiderstands. 0: interner Widerstand; 1: externer Widerstand.
Drei Taktquellen
1. ACLK-Hilfstaktgeber
ACLK wird nach der Teilung von LFXT1CLK durch 1, 2, 4 und 8 erhalten. Es kann als Taktsignal für jedes Peripheriemodul verwendet werden und wird in der Regel für Peripheriegeräte mit niedriger Geschwindigkeit verwendet.
BCSCTL1:
DIVAx (BIT5, BIT4) – Auswahl der ACLK-Frequenzteilung, wobei die Auswahl der Frequenzteilung wie folgt erfolgt:

Makrodefinition: DIVA_0 (1 Frequenzteilung/keine Frequenzteilung), DIVA_1 (2 Frequenzteilungen), DIVA_2 (4 Frequenzteilungen), DIVA_3 (8 Frequenzteilungen)
2. MCLK-System-Haupttaktgeber
MCLK kann nach Frequenzteilung durch 1, 2, 4 und 8 aus LFXT1CLK, XT2CLK und DCOCLK gewonnen werden. Es wird häufig für den CPU-Betrieb, die Programmausführung und andere Module verwendet, die Hochgeschwindigkeitstaktgeber verwenden.
BCSCTL2:
SELMx (BIT7, BIT6) – Wählen Sie die MCLK-Taktquelle aus. Die Taktwahlbeziehung ist wie folgt:

Makrodefinition: SELM_0 (DCOCLK-Standard), SELM_1 (DCOCLK), SELM_2 (XT2CLK), SELM_3 (LFXT1CLK)
DIVMx (BIT5, BIT4) – Auswahl der MCLK-Frequenzteilung, die Auswahl der Frequenzteilung verhält sich wie folgt:

Makrodefinition: DIVM_0 (1 Frequenzteilung/keine Frequenzteilung), DIVM_1 (2 Frequenzteilungen), DIVM_2 (4 Frequenzteilungen), DIVM_3 (8 Frequenzteilungen)
3. SMCLK-Subsystem-Taktgeber
SMCLK kann durch Frequenzteilung von XT2CLK und DCOCLK durch 1, 2, 4 und 8 erhalten werden und wird häufig in Hochgeschwindigkeits-Peripheriemodulen verwendet.
BCSCTL2:
SELSx (BIT3) – Wählen Sie die MCLK-Taktquelle aus. Die Taktwahlbeziehung ist wie folgt:

DIVSx (BIT2, BIT1) – Auswahl der SMCLK-Frequenzteilung, die Beziehung zwischen der Auswahl der Frequenzteilung ist wie folgt:

Makrodefinition: DIVS_0 (1 Frequenzteilung/keine Frequenzteilung), DIVS_1 (2 Frequenzteilung), DIVS_2 (4 Frequenzteilung), DIVS_3 (8 Frequenzteilung)
Offizielle Dokumentation
Prüfen Sie die Gerätedaten vor der Freigabe von Schaltplan, Leiterplatte oder Firmware anhand der aktuellen Herstellerunterlagen.




