TI MSP430 - TI MSP430
Designer | Texas Instruments |
---|---|
Bits | 16-Bit |
Typ | Speicher-Speicher |
Endianität | kleiner endian |
Erweiterungen | MSP430X |
Register | |
16, R0 – Programmzähler, R1 – Stapelzeiger, R2 – Statusregister, R2/R3 – Konstantengenerator |
Der MSP430 ist eine Mixed-Signal- Mikrocontroller- Familie von Texas Instruments , die erstmals am 14. Februar 1992 vorgestellt wurde. Der MSP430 basiert auf einer 16-Bit- CPU und wurde für kostengünstige und insbesondere energiesparende Embedded-Anwendungen entwickelt.
Anwendungen
Der MSP430 kann für eingebettete Geräte mit geringer Leistung verwendet werden . Die Stromaufnahme im Ruhemodus kann weniger als 1 µA betragen. Die maximale CPU-Geschwindigkeit beträgt 25 MHz. Es kann für einen geringeren Stromverbrauch gedrosselt werden. Der MSP430 verwendet außerdem sechs verschiedene Energiesparmodi, die nicht benötigte Takte und CPU deaktivieren können. Darüber hinaus kann der MSP430 in Zeiten von weniger als 1 Mikrosekunde aufwachen, sodass der Controller länger im Schlafmodus bleiben kann, wodurch der durchschnittliche Stromverbrauch minimiert wird. Das Gerät ist in verschiedenen Konfigurationen mit der üblichen Peripherie erhältlich: interner Oszillator , Timer inklusive Pulsweitenmodulation (PWM), Watchdog-Timer (Watchdog), USART , Serial Peripheral Interface (SPI) Bus, Inter-Integrated Circuit ( I²C ), 10/12/14/16/24-Bit- Analog-Digital-Wandler (ADC) und Brownout- Reset- Schaltung . Einige weniger übliche Peripherieoptionen umfassen Komparatoren (die mit den Timern verwendet werden können, um einen einfachen ADC zu machen), On-Chip- Operationsverstärker (Op-Amp) zur Signalkonditionierung , 12-Bit- Digital-Analog-Wandler (DAC), Flüssigkristall Display (LCD)-Treiber, Hardware-Multiplikator , USB und Direct Memory Access (DMA) für ADC-Ergebnisse. Abgesehen von einigen älteren löschbaren programmierbaren Nur - Lese-Speicher ( EPROM , wie MSP430E3xx) und hochvolumige Masken - ROM (MSP430Cxxx) Versionen, alle Geräte sind in-System - Programmierung aktiviert über Joint Test Action Group ( JTAG ), Vollvierdraht oder Spy-Bi-Wire ), einen integrierten Bootstrapping- Loader (BSL) mit UART wie RS232 oder USB auf Geräten mit USB-Unterstützung. In den Geräten der F20xx-, G2xx0-, G2xx1-, G2xx2- oder I20xx-Familie ist kein BSL enthalten.
Es gibt jedoch Grenzen, die den Einsatz in komplexeren eingebetteten Systemen ausschließen . Der MSP430 hat keinen externen Speicherbus , daher ist er auf On-Chip-Speicher, bis zu 512 KB Flash-Speicher und 66 KB Random Access Memory (RAM) beschränkt, was für Anwendungen, die große Puffer oder Datentabellen benötigen, möglicherweise zu klein ist . Auch wenn es einen DMA-Controller hat, ist es aufgrund des Fehlens eines DMA-Ausgangs-Strobes sehr schwierig, ihn zum Verschieben von Daten vom Chip zu verwenden.
MSP430-Generationen
Es gibt sechs allgemeine Generationen von MSP430-Prozessoren. In der Reihenfolge der Entwicklung sind dies: '3xx Generation, '1xx Generation, '4xx Generation, '2xx Generation, '5xx Generation und '6xx Generation. Die Ziffer nach der Generierung identifiziert das Modell (in der Regel sind höhere Modellnummern größer und leistungsfähiger), die dritte Ziffer bezeichnet den enthaltenen Speicher und die vierte, falls vorhanden, eine kleinere Modellvariante. Die häufigste Variante ist ein anderer Analog-Digital-Wandler auf dem Chip .
Die Generationen 3xx und 1xx sind auf einen 16-Bit-Adressraum beschränkt. In späteren Generationen wurde dies um '430X'-Befehle erweitert, die einen 20-Bit-Adressraum ermöglichen. Wie bei anderen Prozessorarchitekturen (zB dem Prozessor des PDP-11 ) führte die Erweiterung des Adressierungsbereichs über die 16-Bit-Wortgröße hinaus zu einigen Besonderheiten und Ineffizienzen für Programme mit einer Größe von mehr als 64 kByte.
In der folgenden Liste ist es hilfreich, sich die typische Kapazität von 200 mA·Hr einer CR2032- Lithium- Knopfzelle mit 200.000 µA·Hr oder 22,8 µA·Jahr vorzustellen. Betrachtet man also nur den CPU-Bezug, könnte eine solche Batterie 32 Jahre lang eine Stromaufnahme von 0,7 μA liefern. (In Wirklichkeit würde die Selbstentladung der Batterie diese Zahl reduzieren.)
Die Bedeutung der RAM-Retention gegenüber dem Echtzeituhrmodus besteht darin, dass die CPU im Echtzeituhrmodus mit einer laufenden Uhr in den Ruhezustand gehen kann, die sie zu einem bestimmten zukünftigen Zeitpunkt aufweckt. Im RAM-Aufbewahrungsmodus ist ein externes Signal erforderlich, um es aufzuwecken, z. B. ein Eingangs-/Ausgangs- (I/O)-Pin-Signal oder ein SPI-Slave-Empfangsinterrupt.
MSP430x1xx-Serie
Die MSP430x1xx-Serie ist die Basisgeneration ohne eingebetteten LCD- Controller. Sie sind im Allgemeinen kleiner als die '3xx-Generation. Diese Flash- oder ROM-basierten Ultra-Low-Power-MCUs bieten 8 MIPS, 1,8–3,6 V-Betrieb, bis zu 60 KB Flash und eine breite Palette analoger und digitaler Peripheriegeräte.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- 0,1 μA RAM-Retention
- 0,7 μA Echtzeituhrmodus
- 200 μA / MIPS aktiv
- Bietet schnelles Aufwachen aus dem Standby-Modus in weniger als 6 µs.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- Geräteparameter
- Flash-Optionen: 1–60 KB
- ROM-Optionen: 1–16 KB
- RAM : 128 B–10 KB
- GPIO-Optionen: 14, 22, 48 Pins
- ADC-Optionen: Steilheit, 10- und 12-Bit-SAR
- Weitere integrierte Peripherie: 12-Bit-DAC, bis zu 2 16-Bit-Timer, Watchdog-Timer, Brown-Out-Reset, SVS, USART-Modul (UART, SPI), DMA, 16×16-Multiplikator, Comparator_A, Temperatursensor
- Geräteparameter
MSP430F2xx-Serie
Die MSP430F2xx-Serie ähnelt der '1xx-Generation, arbeitet jedoch mit noch geringerer Leistung, unterstützt bis zu 16 MHz und verfügt über einen genaueren (±2%) On-Chip-Takt, der den Betrieb ohne externen Quarz erleichtert. Diese Flash-basierten Ultra-Low-Power-Bausteine bieten einen Betrieb von 1,8–3,6 V. Enthält den sehr stromsparenden Oszillator (VLO), interne Pull-Up/Pull-Down-Widerstände und Optionen mit niedriger Pinanzahl.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- 0,1 μA RAM-Retention
- 0,3 μA Standby-Modus (VLO)
- 0,7 μA Echtzeituhrmodus
- 220 μA / MIPS aktiv
- Ultraschnelles Aufwachen aus dem Standby-Modus in weniger als 1 μs
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- Geräteparameter
- Flash-Optionen: 1–120 KB
- RAM-Optionen: 128 B – 8 KB
- GPIO-Optionen: 10, 11, 16, 24, 32 und 48 Pins
- ADC-Optionen: Steilheit, 10 & 12-Bit SAR, 16 & 24-Bit Sigma Delta
- Weitere integrierte Peripherie: Operationsverstärker, 12-Bit-DAC, bis zu 2 16-Bit-Timer, Watchdog-Timer, Brown-Out-Reset, SVS, USI-Modul (I²C, SPI), USCI-Modul, DMA, 16×16-Multiplikator, Comparator_A+, Temperatursensor
- Geräteparameter
MSP430G2xx-Serie
Die MSP430G2xx Value-Serie bietet Flash-basierte Ultra-Low-Power-MCUs mit bis zu 16 MIPS bei 1,8–3,6 V-Betrieb. Beinhaltet den Very-Low-Power-Oszillator (VLO), interne Pull-Up/Pull-Down-Widerstände und Optionen mit niedriger Pinanzahl zu niedrigeren Preisen als die MSP430F2xx-Serie.
- Ultra-Low Power, so niedrig wie (@2,2 V):
- 0,1 μA RAM-Retention
- 0,4 μA Standby-Modus (VLO)
- 0,7 μA Echtzeituhrmodus
- 220 μA / MIPS aktiv
- Ultraschnelles Aufwachen aus dem Standby-Modus in <1 μs
- Ultra-Low Power, so niedrig wie (@2,2 V):
- Geräteparameter
- Flash-Optionen: 0,5–56 KB
- RAM-Optionen: 128 B–4 KB
- GPIO-Optionen: 10, 16, 24, 32 Pins
- ADC-Optionen: Steilheit, 10-Bit-SAR
- Weitere integrierte Peripherie: Capacitive Touch I/O, bis zu 3 16-Bit-Timer, Watchdog-Timer, Brown-Out-Reset, USI-Modul (I²C, SPI), USCI-Modul, Comparator_A+, Temperatursensor
- Geräteparameter
MSP430x3xx-Serie
Die MSP430x3xx-Serie ist die älteste Generation und wurde für tragbare Messgeräte mit einem eingebetteten LCD-Controller entwickelt. Dazu gehört auch ein frequenzgeregelter Schleifenoszillator , der sich automatisch auf einen langsamen (32 kHz) Quarz synchronisieren kann. Diese Generation unterstützt keinen EEPROM- Speicher, nur Masken-ROM und UV-löschbares und einmal programmierbares EPROM . Spätere Generationen bieten nur Flash-Speicher- und Masken-ROM- Optionen. Diese Geräte bieten 2,5–5,5 V-Betrieb, bis zu 32 KB ROM.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- 0,1 μA RAM-Retention
- 0,9 μA Echtzeituhrmodus
- 160 μA / MIPS aktiv
- Bietet schnelles Aufwachen aus dem Standby-Modus in weniger als 6 µs.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- Geräteparameter:
- ROM-Optionen: 2–32 KB
- RAM-Optionen: 512 B–1 KB
- GPIO-Optionen: 14, 40 Pins
- ADC-Optionen: Steilheit, 14-Bit-SAR
- Weitere integrierte Peripheriegeräte: LCD-Controller, Multiplikator
- Geräteparameter:
MSP430x4xx-Serie
Die MSP430x4xx-Serie ähnelt der '3xx-Generation, enthält jedoch einen integrierten LCD-Controller und ist größer und leistungsfähiger. Diese Flash- oder ROM-basierten Geräte bieten 8–16 MIPS bei 1,8–3,6 V Betrieb, mit FLL und SVS. Ideal für niedrige Leistungsmessung und medizinische Anwendungen.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- 0,1 μA RAM-Retention
- 0,7 μA Echtzeituhrmodus
- 200 μA / MIPS aktiv
- Bietet schnelles Aufwachen aus dem Standby-Modus in weniger als 6 µs.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- Geräteparameter:
- Flash-/ROM-Optionen: 4 – 120 KB
- RAM-Optionen: 256 B – 8 KB
- GPIO-Optionen: 14, 32, 48, 56, 68, 72, 80 Pins
- ADC-Optionen: Steilheit, 10- und 12-Bit-SAR, 16-Bit-Sigma-Delta
- Weitere integrierte Peripheriegeräte: SCAN_IF, ESP430, 12-Bit-DAC, Op Amps, RTC, bis zu 2 16-Bit-Timer, Watchdog-Timer, Basic-Timer, Brown-Out-Reset, SVS, USART-Modul (UART, SPI), USCI-Modul, LCD-Controller, DMA, 16×16 & 32x32 Multiplikator, Comparator_A, Temperatursensor, 8 MIPS CPU-Geschwindigkeit
- Geräteparameter:
MSP430x5xx-Serie
Die MSP430x5xx-Serie kann mit bis zu 25 MHz betrieben werden, verfügt über bis zu 512 KB Flash-Speicher und bis zu 66 KB RAM. Diese Flash-basierte Familie zeichnet sich durch einen geringen aktiven Stromverbrauch mit bis zu 25 MIPS bei 1,8–3,6 V Betrieb (165 uA/MIPS) aus. Inklusive innovativem Power-Management-Modul für optimalen Stromverbrauch und integriertem USB.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- 0,1 μA RAM-Retention
- 2,5 μA Echtzeituhrmodus
- 165 μA / MIPS aktiv
- Bietet schnelles Aufwachen aus dem Standby-Modus in weniger als 5 µs.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- Geräteparameter:
- Flash-Optionen: bis zu 512 KB
- RAM-Optionen: bis zu 66 KB
- ADC-Optionen: 10 und 12-Bit-SAR
- GPIO-Optionen: 29, 31, 47, 48, 63, 67, 74, 87 Pins
- Weitere optional integrierte Peripheriegeräte: 12-Bit-DAC, hochauflösende PWM, 5 VI/Os, USB, Backup-Batterieschalter, bis zu 4 16-Bit-Timer, Watchdog-Timer, Echtzeituhr, Brown-Out-Reset, SVS, USCI-Modul , DMA, 32x32 Multiplikator, Comp B, Temperatursensor
- Geräteparameter:
MSP430x6xx-Serie
Die MSP430x6xx-Serie kann mit bis zu 25 MHz betrieben werden, verfügt über bis zu 512 KB Flash-Speicher und bis zu 66 KB RAM. Diese Flash-basierte Familie zeichnet sich durch einen geringen aktiven Stromverbrauch mit bis zu 25 MIPS bei 1,8–3,6 V Betrieb (165 uA/MIPS) aus. Inklusive innovativem Power-Management-Modul für optimalen Stromverbrauch und integriertem USB.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- 0,1 μA RAM-Retention
- 2,5 μA Echtzeituhrmodus
- 165 μA / MIPS aktiv
- Bietet schnelles Aufwachen aus dem Standby-Modus in weniger als 5 µs.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- Geräteparameter:
- Flash-Optionen: bis zu 512 KB
- RAM-Optionen: bis zu 66 KB
- ADC-Optionen: 12-Bit-SAR
- GPIO-Optionen: 74 Pins
- Weitere integrierte Peripheriegeräte: USB, LCD, DAC, Comparator_B, DMA, 32x32-Multiplikator, Power-Management-Modul (BOR, SVS, SVM, LDO), Watchdog-Timer, RTC, Temperatursensor
- Geräteparameter:
HF-SoC (CC430)-Serie
Die RF-SoC-Serie (CC430) bietet eine enge Integration zwischen Mikrocontroller-Kern, Peripheriegeräten, Software und RF-Transceiver. Merkmale <1 GHz HF-Transceiver mit 1,8 V–3,6 V Betrieb. Die Programmierung mit der integrierten Entwicklungsumgebung (IDE) von Arduino ist über die panStamp-API möglich .
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- 1 μA RAM-Aufbewahrung
- 1,7 μA Echtzeituhrmodus
- 180 μA / MIPS aktiv
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- Geräteparameter:
- Geschwindigkeitsoptionen: bis zu 20 MHz
- Flash-Optionen: bis zu 32 KB
- RAM-Optionen: bis zu 4 KB
- ADC-Optionen: 12-Bit-SAR
- GPIO-Optionen: 30 & 44 Pins
- Weitere integrierte Peripheriegeräte: LCD-Controller, bis zu 2 16-Bit-Timer, Watchdog-Timer, RTC, Power-Management-Modul (BOR, SVS, SVM, LDO), USCI-Modul, DMA, 32x32-Multiplikator, Comp B, Temperatursensor
- Geräteparameter:
FRAM-Serie
Die FRAM-Serie von Texas Instruments bietet einheitlichen Speicher mit dynamischer Partitionierung und Speicherzugriffsgeschwindigkeiten, die 100-mal schneller sind als Flash. FRAM ist außerdem in der Lage, in allen Leistungsmodi einen Null-Power-State-Retention durchzuführen, was bedeutet, dass Schreibvorgänge auch im Falle eines Stromausfalls garantiert sind. Mit einer Schreibdauer von über 100 Billionen Zyklen wird kein EEPROM mehr benötigt. Wirkleistungsaufnahme unter 100μA/MHz.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- 320 nA RAM-Speicherung
- 0,35 μA Echtzeituhrmodus
- 82 μA / MIPS aktiv
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- Geräteparameter:
- Geschwindigkeitsoptionen: 8 bis 24 MHz
- FRAM-Optionen: 4 bis 256 KB
- RAM-Optionen: 0,5 bis 8 KB
- ADC-Optionen: 10 oder 12-Bit-SAR
- GPIO-Optionen: 17 bis 83 GPIO-Pins
- Weitere mögliche integrierte Peripherie: MPU, bis zu 6 16-Bit-Timer, Watchdog-Timer, RTC, Power-Management-Modul (BOR, SVS, SVM, LDO), USCI-Modul, DMA, Multiplikator, Comp B, Temperatursensor, LCD-Treiber, I2C und UART BSL, Extended Scan Interface, 32-Bit-Multiplikator, AES, CRC, Signalverarbeitungsbeschleunigung, kapazitiver Touch, IR-Modulation
- Geräteparameter:
Niederspannungsserie
Die Niederspannungsserie umfasst die Teile MSP430C09x und MSP430L092. Diese 2 Serien von Niederspannungs-16-Bit-Mikrocontrollern verfügen über Konfigurationen mit zwei 16-Bit-Timern, einem 8-Bit-Analog-Digital-(A/D)-Wandler, einem 8-Bit-Digital-Analog-(D/A)-Wandler, und bis zu 11 I/O-Pins.
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- 1 μA RAM-Aufbewahrung
- 1,7 μA Echtzeituhrmodus
- 180 μA / MIPS aktiv
- Übersicht über die Leistungsspezifikationen, so niedrig wie:
- Geräteparameter:
- Geschwindigkeitsoptionen: 4 MHz
- ROM-Optionen: 1–2 kB
- SRAM-Optionen: 2 kB
- ADC-Optionen: 8-Bit-SAR
- GPIO-Optionen: 11 Pins
- Weitere integrierte Peripherie: bis zu 2 16-Bit-Timer, Watchdog-Timer, Brown-Out-Reset, SVS, Komparator, Temperatursensor
- Geräteparameter:
Andere MSP430-Familien
Weitere Familien innerhalb des MSP430 umfassen Fixed Function- , Automotive- und Extended Temp- Teile.
Feste Funktion : Der 16-Bit-Mikrocontroller MSP430BQ1010 ist ein fortschrittliches Gerät mit fester Funktion, das auf der Empfängerseite die Steuerungs- und Kommunikationseinheit für die drahtlose Energieübertragung in tragbaren Anwendungen bildet. MSP430BQ1010 entspricht der Wireless Power Consortium (WPC)-Spezifikation. Weitere Informationen finden Sie unter Kontaktlose Stromversorgung .
Automotive : Automotive MSP430 Mikrocontroller (MCUs) von Texas Instruments (TI) sind RISC-basierte 16-Bit-Mixed-Signal-Prozessoren, die AEC-Q100-qualifiziert und für Automobilanwendungen in Umgebungen bis 105 °C Umgebungstemperatur geeignet sind. LIN-konforme Treiber für die MSP430 MCU von der IHR GmbH.
Extended Temp : MSP430-Geräte sind aufgrund ihres geringen Stromverbrauchs und ihrer innovativen analogen Integration in rauen Umgebungen wie der industriellen Sensorik sehr beliebt. Einige Anwendungen in rauen Umgebungen umfassen Transport/Automobil, erneuerbare Energien, Militär/Raumfahrt/Avionik, Mineralienexploration, Industrie und Sicherheit.
- Gerätedefinitionen:
- HT: -55 °C bis 150 °C
- EP: Verbesserte Produkte -55 °C bis 125 °C
- Q1: Automotive Q100 qualifiziert -40 °C bis 105 °C
- T: Erweiterte Temperatur -40 °C bis 105 °C Anwendungen
- Gerätedefinitionen:
Beachten Sie, dass bei einer Flash-Größe von über 64 KB (128 KB) Befehlsadressen nicht mehr in nur zwei Bytes kodiert werden können. Diese Änderung der Zeigergröße verursacht einige Inkompatibilitäten mit früheren Teilen.
Peripheriegeräte
Die MSP430-Peripheriegeräte sind im Allgemeinen einfach zu verwenden, mit (meist) konsistenten Adressen zwischen den Modellen und ohne Nur-Schreib-Register (außer dem Hardware-Multiplikator).
Allzweck-E/A-Ports 0–10
Wenn das Peripheriegerät nicht benötigt wird, kann der Pin für allgemeine E/A verwendet werden. Die Pins sind in 8-Bit-Gruppen unterteilt, die als "Ports" bezeichnet werden und von denen jeder von einer Reihe von 8-Bit-Registern gesteuert wird. In einigen Fällen sind die Ports paarweise angeordnet, auf die als 16-Bit-Register zugegriffen werden kann.
Die MSP430-Familie definiert 11 I/O-Ports, P0 bis P10, obwohl kein Chip mehr als 10 davon implementiert. P0 ist nur bei der '3xx-Familie implementiert. P7 bis P10 sind nur bei den größten Mitgliedern (und den Versionen mit der höchsten Pinanzahl) der '4xx- und '2xx-Familien implementiert. Die neuesten '5xx- und '6xx-Familien haben P1 bis P11, und die Steuerregister werden neu zugewiesen, um mehr Portpaare bereitzustellen. Jeder Port wird von den folgenden Registern gesteuert. Ports, die bestimmte Merkmale nicht implementieren (wie Interrupt bei Zustandsänderung) implementieren nicht die entsprechenden Register.
- P x IN
- Port- X- Eingang. Dies ist ein schreibgeschütztes Register und spiegelt den aktuellen Status der Pins des Ports wider.
- P x AUS
- Port x ausgegeben. Die in dieses Lese-/Schreibregister geschriebenen Werte werden aus den entsprechenden Pins getrieben, wenn sie für die Ausgabe konfiguriert sind.
- P x DIR
- Datenrichtung Port x . Als 1 geschriebene Bits konfigurieren den entsprechenden Pin für die Ausgabe. Als 0 geschriebene Bits konfigurieren den Pin für die Eingabe.
- P x SEL
- Port x Funktionsauswahl. Als 1 geschriebene Bits konfigurieren den entsprechenden Pin für die Verwendung durch das spezialisierte Peripheriegerät. Als 0 geschriebene Bits konfigurieren den Pin für universelle E/A. Port 0 (nur '3xx-Teile) wird nicht mit anderen Peripheriegeräten gemultiplext und hat kein P0SEL-Register.
- P x REN
- Port x Widerstand aktivieren (nur '2xx & '5xx). In diesem Register gesetzte Bits aktivieren schwache Pull-Up- oder Pull-Down-Widerstände an den entsprechenden I/O-Pins, selbst wenn sie als Eingänge konfiguriert sind. Die Richtung des Ziehens wird durch das in das P x OUT-Register geschriebene Bit festgelegt .
- P x DS
- Port x Laufwerksstärke (nur '5xx). In diesem Register gesetzte Bits aktivieren Hochstromausgänge. Dies erhöht die Ausgangsleistung, kann jedoch elektromagnetische Störungen (EMI) verursachen.
Die Ports 0–2 können Interrupts erzeugen, wenn sich die Eingänge ändern. Weitere Register konfigurieren diese Fähigkeit:
- P x IES
- Port x Interrupt-Flanke-Auswahl. Wählt die Flanke aus, die bewirkt, dass das P x IFG-Bit gesetzt wird. Wenn sich das Eingangsbit von Übereinstimmung mit dem Zustand P x IES zu Nicht-Übereinstimmung ändert (dh immer dann, wenn sich ein Bit in P x IES XOR P x IN von gelöscht auf gesetzt ändert), wird das entsprechende P x IFG-Bit gesetzt.
- P x IE
- Port x Interrupt aktivieren. Wenn dieses Bit und das entsprechende P x IFG-Bit beide gesetzt sind, wird ein Interrupt erzeugt.
- P x IFG
- Interrupt-Flag für Port x . Wird immer dann gesetzt, wenn der entsprechende Pin die von P x IES angeforderte Zustandsänderung durchführt . Kann nur per Software gelöscht werden. (Kann auch per Software eingestellt werden.)
- P x IV
- Port x Interrupt-Vektor (nur '5xx). Dieses 16-Bit-Register ist ein Prioritätscodierer, der verwendet werden kann, um Pin-Change-Interrupts zu handhaben. Wenn n das niedrigste Interrupt-Bit ist, das in P x IFG anhängig und in P x IE aktiviert ist , liest sich dieses Register als 2 n +2. Wenn kein solches Bit vorhanden ist, wird es als 0 gelesen. Der Skalierungsfaktor von 2 ermöglicht die direkte Verwendung als Offset in einer Verzweigungstabelle . Das Lesen dieses Registers löscht auch das gemeldete P x IFG-Flag.
Einige Pins haben spezielle Zwecke entweder als Eingänge oder Ausgänge. (Zum Beispiel können Timer-Pins als Capture-Eingänge oder PWM-Ausgänge konfiguriert werden.) In diesem Fall steuert das P x DIR-Bit, welche der beiden Funktionen der Pin ausführt, wenn das P x SEL-Bit gesetzt ist. Wenn nur eine Sonderfunktion vorhanden ist, wird P x DIR im Allgemeinen ignoriert. Das P x IN-Register ist noch lesbar, wenn das P x SEL-Bit gesetzt ist, aber die Interrupt-Erzeugung ist gesperrt. Wenn P x SEL gelöscht ist, wird der Eingang der Sonderfunktion eingefroren und vom externen Pin getrennt. Außerdem wird durch die Konfiguration eines Pins für den Allzweckausgang die Interrupt-Erzeugung nicht deaktiviert.
|
|
Integrierte Peripheriegeräte
- Analog
-
- Analog-Digital-Wandler
- Die MSP430-Reihe bietet zwei Arten der Analog-Digital-Wandlung (ADC). 10- und 12-Bit- Wandler mit sukzessiver Approximation sowie ein 16-Bit- Sigma-Delta- Wandler. Datenübertragungscontroller und ein 16-Wort-Konvertierungs- und Steuerpuffer ermöglichen es dem MSP430, Samples ohne CPU-Eingriff zu konvertieren und zu speichern, wodurch der Stromverbrauch minimiert wird.
-
- Analoger Pool
- Das Analog Pool (A-POOL) Modul kann als ADC, DAC, Komparator, SVS oder Temperatursensor konfiguriert werden. Es ermöglicht dem Benutzer die Flexibilität, eine Reihe von analogen Funktionen mit nur einem Setup zu programmieren.
-
- Komparator A, A+
- Das Komparatormodul des MSP430 bietet präzise Analog-Digital-Wandlungen mit Flankensteilheit. Überwacht externe analoge Signale und bietet Spannungs- und Widerstandswertmessung. Auswählbare Leistungsmodi möglich.
-
- DAC12
- Das DAC12-Modul ist ein 12-Bit-DAC mit Spannungsausgang mit interner/externer Referenzauswahl und programmierbarer Einschwingzeit für optimalen Stromverbrauch. Es kann im 8- oder 12-Bit-Modus konfiguriert werden. Wenn mehrere DAC12-Module vorhanden sind, können sie für den synchronen Aktualisierungsvorgang gruppiert werden.
-
- Operationsverstärker
- Verfügt über Einzelversorgung, Niederstrombetrieb mit Rail-to-Rail-Ausgängen und programmierbaren Einschwingzeiten. Über die Software wählbare Konfigurationsoptionen: Einheitsverstärkungsmodus, Komparatormodus, invertierender PGA, nicht invertierender PGA, Differenz- und Instrumentenverstärker.
-
- Sigma-Delta (SD)
- Die Module SD16/SD16_A/SD24_A verfügen jeweils über 16-/24-Bit-Sigma-Delta-A/D-Wandler mit interner 1,2-V-Referenz. Jeder Wandler verfügt über bis zu acht vollständig differentielle Multiplex-Eingänge, einschließlich eines integrierten Temperatursensors. Die Wandler sind Oversampling-Sigma-Delta-Modulatoren zweiter Ordnung mit wählbaren Oversampling-Verhältnissen von bis zu 1024 (SD16_A/SD24_A) bzw. 256 (SD16).
- Timer
-
- Basistimer (BT)
- Das BT verfügt über zwei unabhängige 8-Bit-Timer, die kaskadiert werden können, um einen 16-Bit-Timer/Zähler zu bilden. Beide Timer können per Software gelesen und geschrieben werden. Das BT wird um eine integrierte RTC erweitert. Ein interner Kalender gleicht Monate mit weniger als 31 Tagen aus und beinhaltet eine Schaltjahrkorrektur.
-
- Echtzeituhr
- RTC_A/B sind 32-Bit-Hardware-Zählermodule, die Uhrzähler mit einem Kalender, einem flexibel programmierbaren Alarm und einer Kalibrierung bereitstellen. Der RTC_B enthält ein umschaltbares Batterie-Backup-System, das es dem RTC ermöglicht, zu arbeiten, wenn die Primärversorgung ausfällt.
-
- 16-Bit-Timer
- Timer_A, Timer_B und Timer_D sind asynchrone 16-Bit-Timer/Zähler mit bis zu sieben Capture/Compare-Registern und verschiedenen Betriebsarten. Die Timer unterstützen mehrere Erfassung/Vergleiche, PWM-Ausgänge und Intervall-Timing. Sie haben auch umfangreiche Interrupt-Fähigkeiten. Timer_B führt zusätzliche Funktionen wie programmierbare Timer-Längen (8-, 10-, 12- oder 16-Bit) und doppelt gepufferte Vergleichsregisteraktualisierungen ein, während Timer_D einen hochauflösenden (4 ns) Modus einführt.
-
- Watchdog (WDT+)
- Der WDT+ führt nach einem Softwareproblem einen kontrollierten Systemneustart durch. Wenn das gewählte Zeitintervall abläuft, wird ein Systemreset generiert. Wird die Watchdog-Funktion in einer Anwendung nicht benötigt, kann das Modul als Intervall-Timer konfiguriert werden und in ausgewählten Zeitintervallen Interrupts generieren.
- System
-
- Erweiterter Verschlüsselungsstandard (AES)
- Das AES-Beschleunigermodul führt die Verschlüsselung und Entschlüsselung von 128-Bit-Daten mit 128-Bit-Schlüsseln gemäß dem fortschrittlichen Verschlüsselungsstandard in Hardware durch und kann mit Benutzersoftware konfiguriert werden.
-
- Brown-Out-Reset (BOR)
- Die BOR-Schaltung erkennt niedrige Versorgungsspannungen und setzt das Gerät durch Auslösen eines Power-On-Reset (POR)-Signals zurück, wenn die Stromversorgung angelegt oder entfernt wird. Die Nullleistungs-BOR-Schaltung der MSP430-MCU wird kontinuierlich eingeschaltet, auch in allen Energiesparmodi.
-
- Controller für direkten Speicherzugriff (DMA)
- Der DMA-Controller überträgt Daten von einer Adresse zur anderen über den gesamten Adressbereich ohne CPU-Eingriff. Der DMA erhöht den Durchsatz von Peripheriemodulen und reduziert den Stromverbrauch des Systems. Das Modul verfügt über bis zu drei unabhängige Übertragungskanäle.
- Obwohl das DMA-Subsystem des MSP430 sehr leistungsfähig ist, weist es mehrere Mängel auf, von denen der wichtigste das Fehlen eines externen Transfer-Strobes ist. Obwohl ein DMA-Transfer extern ausgelöst werden kann, gibt es keine externe Anzeige des Abschlusses eines Transfers. Folglich ist DMA zu und von externen Quellen auf externe Trigger-pro-Byte-Transfers beschränkt und nicht auf vollständige Blöcke automatisch über DMA. Dies kann bei der Implementierung von Prozessor-zu-Prozessor- oder Prozessor-zu-USB-Kommunikation zu einer erheblichen Komplexität führen (z. B. indem umfangreiche manuelle Anpassungen des Codes erforderlich sind). Die zitierte Referenz verwendet einen obskuren Zeitgebermodus, um Hochgeschwindigkeits-Strobes für DMA-Übertragungen zu erzeugen. Die Zeitgeber sind nicht flexibel genug, um das Fehlen eines externen DMA-Transfer-Strobes einfach auszugleichen.
- DMA-Operationen, die Wortübertragungen zu Byte-Stellen beinhalten, bewirken eher eine Kürzung auf 8 Bits als eine Umwandlung in 2-Byte-Übertragungen. Dies macht DMA mit A/D- oder D/A-16-Bit-Werten weniger nützlich, als es sein könnte (obwohl es bei einigen Versionen des MSP 430 möglich ist, diese Werte über Port A oder B zu DMA zu verwenden, indem ein extern sichtbarer Trigger pro Übertragung verwendet wird, wie z ein Timer-Ausgang).
-
- Erweitertes Emulationsmodul (EEM)
- Das EEM bietet verschiedene Debug-Funktionen wie 2-8 Hardware-Breakpoints, komplexe Breakpoints, Unterbrechung beim Lesen/Schreiben an einer bestimmten Adresse und mehr. Eingebettet in alle Flash-basierten MSP430-Geräte.
-
- Hardware-Multiplikator
- Einige MSP430-Modelle enthalten ein speicherabgebildetes Hardware-Multiplizierer-Peripheriegerät, das verschiedene 16 × 16 + 32 → 33-Bit-Multiplikations-Akkumulations-Operationen durchführt. Ungewöhnlich für die MSP430 geht diese Peripherie umfasst eine implizites 2-Bit - Nur - Schreib-Register, was es praktisch unmöglich macht Kontextwechsel . Dieses Peripheriegerät stört die CPU-Aktivitäten nicht und kann vom DMA angesprochen werden. Der MPY auf allen MSP430F5xx- und einigen MSP430F4xx-Geräten bietet bis zu 32-Bit x 32-Bit.
- Die 8 verwendeten Register sind:
Die Anschrift Name Funktion 0x130 MPY Operand1 für vorzeichenlose Multiplikation 0x132 MPYS Operand1 für vorzeichenbehaftete Multiplikation 0x134 MAC Operand1 für vorzeichenlose multiplizieren-akkumulieren 0x136 MACS Operand1 für vorzeichenbehaftetes Multiplizieren-Akkumulieren 0x138 OP2 Zweiter Operand für Multiplikationsoperation 0x13A ResLo Niedriges Wort des Multiplikationsergebnisses 0x13C ResHi Hohes Wort des Multiplikationsergebnisses 0x13E SummeExt Ausführen von Multiplizieren-Akkumulieren
- Der erste Operand wird in eines von vier 16-Bit-Registern geschrieben. Die geschriebene Adresse bestimmt die durchgeführte Operation. Während der geschriebene Wert aus jedem der Register zurückgelesen werden kann, kann die geschriebene Registernummer nicht wiederhergestellt werden.
- Wenn eine Multiplikations-Akkumulations-Operation gewünscht wird, müssen auch die Register
ResLo
undResHi
initialisiert werden.
- Wenn eine Multiplikations-Akkumulations-Operation gewünscht wird, müssen auch die Register
- Dann wird jedes Mal, wenn in das
OP2
Register geschrieben wird, eine Multiplikation durchgeführt und das Ergebnis gespeichert oder zu den Ergebnisregistern addiert. DasSumExt
Register ist ein Nur-Lese-Register, das den Übertrag der Addition (0 oder 1) bei einer vorzeichenlosen Multiplikation oder die Vorzeichenerweiterung der 32-Bit-Summe (0 oder -1) bei einer vorzeichenlosen enthält multiplizieren. Im Fall einer vorzeichenbehafteten Multiplikations-Akkumulation muss derSumExt
Wert mit dem höchstwertigen Bit des vorherigenSumHi
Inhalts kombiniert werden , um das wahre Übertragsergebnis (-1, 0 oder +1) zu bestimmen.
- Dann wird jedes Mal, wenn in das
- Das Ergebnis steht nach drei Verzögerungstaktzyklen zur Verfügung, was der Zeit entspricht, die erforderlich ist, um einen folgenden Befehl und ein folgendes Indexwort abzurufen. Somit ist die Verzögerung typischerweise unsichtbar. Eine explizite Verzögerung ist nur erforderlich, wenn zum Abrufen des Ergebnisses ein indirekter Adressierungsmodus verwendet wird.
-
- Speicherschutzeinheit (MPU)
- Die FRAM-MPU schützt vor versehentlichem Schreiben in bestimmte Nur-Lese-Speichersegmente oder vor der Ausführung von Code aus einem konstanten Speicher. Die MPU kann jede Speicheraufteilung mit Bit-Level-Adressierung einstellen, wodurch der gesamte Speicher für Lese-, Schreib- und Ausführungsoperationen in FRAM-Bauelementen zugänglich wird.
-
- Energieverwaltungsmodul (PMM)
- Das PMM erzeugt eine Versorgungsspannung für die Kernlogik und bietet mehrere Mechanismen zur Überwachung und Überwachung sowohl der an das Gerät angelegten Spannung als auch der für den Kern erzeugten Spannung. Es ist mit einem Low-Dropout-Spannungsregler (LDO), Brown-Out-Reset (BOR) und einer Versorgungsspannungsüberwachung und -überwachung integriert.
-
- Versorgungsspannungsüberwacher (SVS)
- Das SVS ist ein konfigurierbares Modul zur Überwachung der AVCC-Versorgungsspannung oder einer externen Spannung. Das SVS kann so konfiguriert werden, dass es ein Flag setzt oder einen Power-On-Reset (POR) erzeugt, wenn die Versorgungsspannung oder die externe Spannung unter einen vom Benutzer gewählten Schwellenwert fällt.
- Kommunikation und Schnittstelle
-
- Kapazitive Touch-Sense-I/Os
- Das integrierte kapazitive Touch-Sense-E/A-Modul bietet mehrere Vorteile für Touch-Button- und Touch-Slider-Anwendungen. Das System benötigt keine externen Komponenten, um die Eigenschwingung zu erzeugen (Reduzierung der Stückliste) und der Kondensator (der die Frequenz der Eigenschwingung definiert) kann direkt angeschlossen werden. Darüber hinaus sind keine externen MUXs erforderlich, um mehrere Pads zuzulassen, und jedes I/O-Pad kann direkt als Cap-Sense-Eingang dienen. Eine Hysterese von ~0,7 V gewährleistet einen robusten Betrieb. Die Steuerung und Sequenzierung erfolgt vollständig in Software.
-
- Allzweck-E/As
- MSP430-Geräte verfügen über bis zu 12 implementierte digitale I/O-Ports. Jeder Port hat acht I/O-Pins. Jeder I/O-Pin kann entweder als Eingang oder Ausgang konfiguriert und einzeln gelesen oder beschrieben werden. Die Ports P1 und P2 haben Interrupt-Fähigkeit. MSP430F2xx, F5xx und einige F4xx-Geräte verfügen über integrierte, individuell konfigurierbare Pull-Up- oder Pull-Down-Widerstände.
-
- Sub-GHz-HF-Frontend
- Der flexible Sub-1-GHz-Transceiver CC1101 bietet die erforderliche Empfindlichkeit und Blockierleistung für erfolgreiche Kommunikationsverbindungen in jeder HF-Umgebung. Es zeichnet sich zudem durch einen geringen Stromverbrauch aus und unterstützt flexible Datenraten und Modulationsformate.
-
- USART (UART, SPI, I²C)
- Die universelle synchrone/asynchrone Empfangs-/Sende-(USART)-Peripherieschnittstelle unterstützt asynchrone RS-232- und synchrone SPI-Kommunikation mit einem Hardwaremodul. Die MSP430F15x/16x USART-Module unterstützen auch I²C, programmierbare Baudrate und unabhängige Interrupt-Fähigkeit für Empfang und Übertragung.
-
- USB
- Das USB-Modul ist vollständig konform mit der USB 2.0-Spezifikation und unterstützt Control-, Interrupt- und Bulk-Transfers mit einer Datenrate von 12 Mbit/s (Full Speed). Das Modul unterstützt USB-Suspend-, Resume- und Remote-Wake-up-Operationen und kann für bis zu acht Eingangs- und acht Ausgangsendpunkte konfiguriert werden. Das Modul enthält eine integrierte physikalische Schnittstelle (PHY); eine Phasenregelschleife (PLL) für die USB-Takterzeugung; und ein flexibles Stromversorgungssystem, das bus- und selbstversorgte Geräte ermöglicht.
-
- USCI (UART, SPI, I²C, LIN, IrDA)
- Das Universal Serial Communication Interface (USCI)-Modul verfügt über zwei unabhängige Kanäle, die gleichzeitig verwendet werden können. Der asynchrone Kanal (USCI_A) unterstützt den UART-Modus; SPI-Modus; Pulsformung für IrDA; und automatische Baudratenerkennung für die LIN-Kommunikation. Der synchrone Kanal (USCI_B) unterstützt I²C- und SPI-Modi.
-
- USI (SPI, I²C)
- Das Universal Serial Interface (USI)-Modul ist eine synchrone serielle Kommunikationsschnittstelle mit einer Datenlänge von bis zu 16 Bit und kann mit minimaler Software SPI- und I²C-Kommunikation unterstützen.
-
- Infrarot-Modulation
- Diese Funktion ist auf den Chips der Serien MSP430FR4xxx und MSP430FR2xxx verfügbar und wird über den SYSCFG-Registersatz konfiguriert. Dieses Peripheriegerät ist mit anderen Peripheriegeräten (Timer, eUSCI_A) verbunden, um ein IR-moduliertes Signal an einem Ausgangspin zu erzeugen. (Seite 43)
- Messung
-
- ESP430 (integriert in FE42xx-Geräten)
- Das ESP430CE-Modul führt Messberechnungen unabhängig von der CPU durch. Das Modul verfügt über einen separaten SD16, einen HW-Multiplikator und die eingebettete ESP430-Prozessor-Engine für einphasige Energiemessanwendungen.
-
- Scan-Schnittstelle (SIF)
- Das SIF-Modul, eine programmierbare Zustandsmaschine mit analogem Frontend, dient der automatischen Messung von Linear- oder Rotationsbewegungen bei geringstmöglichem Stromverbrauch. Das Modul bietet Unterstützung für verschiedene Arten von LC- und Widerstandssensoren sowie für die Quadraturkodierung.
- Anzeige
-
- LCD/LCD_A/LCD_B
- Der LCD/LCD_A-Controller steuert LCDs für bis zu 196 Segmente direkt an. Unterstützt statische, 2-Mux-, 3-Mux- und 4-Mux-LCDs. Das LCD_A-Modul verfügt über eine integrierte Ladungspumpe zur Kontraststeuerung. LCD_B ermöglicht das Blinken einzelner Segmente mit separatem Blinkspeicher.
-
- LCD_E
- Der LCD_E-Controller wird mit den neueren Mikrocontrollern der MSP430FR4xxx-Serie geliefert und steuert LCDs mit bis zu 448 Segmenten direkt an. Unterstützt statische, 2-mux, 3-mux, 4-mux, 5-mux, 6-mux, 7-mux, 8-mux (1/3 Vorspannung) LCDs. Segment- und Common-Pins können auf verfügbare LCD-Treiberpins umprogrammiert werden. Dieses Peripheriegerät kann im LPM3.5-Modus betrieben werden (RTC läuft + Haupt-CPU-Kern herunterfahren im Energiesparmodus).
Softwareentwicklungsumgebung
Texas Instruments bietet verschiedene Hardware- Experimentierboards , die große (ca. 2 cm²) und kleine (ca. 1 mm²) MSP430-Chips unterstützen. TI bietet auch Softwareentwicklungstools sowohl direkt als auch in Zusammenarbeit mit Partnern (siehe die vollständige Liste der Compiler, Assembler und IDEs ). Eine solche Toolchain ist der IAR C/C++- Compiler und die integrierte Entwicklungsumgebung oder IDE. Eine Kickstart-Edition kann kostenlos von TI oder IAR heruntergeladen werden; es ist auf 8 KB C/C++-Code im Compiler und Debugger beschränkt ( Assemblersprachenprogramme jeder Größe können mit dieser kostenlosen Toolchain entwickelt und debuggt werden).
TI kombiniert auch eine Version seines eigenen Compilers und Tools mit seiner Eclipse- basierten Code Composer Studio IDE (CCS). Es verkauft Vollversionen und bietet eine kostenlose Version zum Download an, die eine Codegrößenbeschränkung von 16 KB hat. CCS unterstützt In-Circuit-Emulatoren und enthält einen Simulator und andere Tools; es kann auch mit anderen von TI verkauften Prozessoren arbeiten.
Für diejenigen, die mit Arduino vertraut sind , gibt es auch eine weitere Software Energia Energia , eine Open-Source-Elektronik-Prototyping-Plattform mit dem Ziel, das Wiring- und Arduino-Framework auf das Texas Instruments MSP430-basierte LaunchPad zu bringen, wo Arduino-Code für die Programmierung von MSP430 exportiert werden kann Chips. Die neueste Version von Energia unterstützt MSP-EXP430G2xxx, MSP-EXP430FR5739, MSP-EXP430FR5969, MSP-EXP430FR5994, MSP-EXP430F5529LP, Stellaris EK-LM4F120XL, Tiva-C EK-TM4C123GXL, Tiva-C WiFi LaunchPad, CC-TM4C1220094
Die Open-Source- Community produziert ein frei verfügbares Toolset für die Softwareentwicklung, das auf dem GNU-Toolset basiert . Der GNU-Compiler wird derzeit in drei Versionen abgelehnt:
( MSPGCC )
( MSPGCC Uniarch )
TI hat sich mit RedHat beraten, um dem C/C++-Compiler der GNU Compiler Collection offiziellen Support für die MSP430-Architektur bereitzustellen . Dieser msp430-elf-gcc-Compiler wird von TIs Code Composer Studio Version 6.0 und höher unterstützt.
Es gibt ein sehr frühes llvm-msp430- Projekt, das möglicherweise eine bessere Unterstützung für MSP430 in LLVM bietet .
Andere kommerzielle Entwicklungstoolsets, die Editor, Compiler, Linker, Assembler, Debugger und in einigen Fällen Code-Assistenten umfassen, sind verfügbar. VisSim , eine Blockdiagrammsprache für die modellbasierte Entwicklung, generiert effizienten Festkomma- C-Code direkt aus dem Diagramm. VisSim generierter Code für eine geschlossene ADC+PWM-basierte PID-Steuerung auf dem F2013 kompiliert auf weniger als 1 KB Flash und 100 Byte RAM. VisSim verfügt über On-Chip-Peripherieblöcke für die gesamte MSP430-Familie I²C, ADC, SD16, PWM.
Kostengünstige Entwicklungsplattformen
Das MSP430F2013 und seine Geschwister zeichnen sich dadurch aus, dass es (mit Ausnahme des MSP430G2 Value Line ) das einzige MSP430-Teil ist, das in einem Dual-In-Line-Paket (DIP) erhältlich ist. Andere Varianten dieser Familie sind nur in verschiedenen Aufbaugehäusen erhältlich. TI hat sich einige Mühe gegeben, die eZ430-Entwicklungsplattform zu unterstützen, indem die Rohchips für Bastler einfach in Prototypen verwendet werden können.
eZ430-F2013
TI hat das Low-Budget-Problem gelöst, indem es ein sehr kleines Experimentierboard, das eZ430-F2013 , auf einem USB-Stick anbietet . Dies macht es Designern leicht, den MSP430-Chip für kostengünstige Entwicklungsplattformen zu wählen, die mit einem Computer verwendet werden können. Das eZ430-F2013 enthält einen MSP430F2013-Mikrocontroller auf einem abnehmbaren Prototyping-Board und eine beiliegende CD mit Entwicklungssoftware. Es ist hilfreich für Schulen, Bastler und Werkstatterfinder. Es wird auch von Ingenieuren in großen Unternehmen begrüßt, die Prototypen von Projekten mit Kapitalbudgetproblemen erstellen.
MSP430 LaunchPad
Texas Instruments hat das MSP430 LaunchPad im Juli 2010 auf den Markt gebracht. Das MSP430 LaunchPad verfügt über einen integrierten Flash-Emulator , USB , 2 programmierbare LEDs und 1 programmierbare Drucktaste. Als Ergänzung zum Experimentieren mit dem LaunchPad steht ein Shield Board zur Verfügung.
TI hat seitdem mehrere neue LaunchPads basierend auf der MSP430-Plattform bereitgestellt:
- MSP-EXP430F5529LP verfügt über die MSP430F5529 USB-Geräte-fähige MCU mit 128 KB Flash und 8 KB SRAM
- MSP-EXP430FR5969 verfügt über die MSP430FR5969 FRAM-MCU mit 64 KB FRAM und 2 KB SRAM
- MSP-EXP430FR4133 verfügt über die MSP430FR4133 FRAM-MCU mit 16 KB FRAM, 2 KB SRAM und integriertem LCD
- MSP-EXP430FR6989 verfügt über die MSP430FR6989 FRAM-MCU mit 128 KB FRAM, 2 KB SRAM, integriertem LCD und Extended Scan Interface Peripherie
- MSP-EXP430FR2311 verfügt über die MSP430FR2311 FRAM-MCU mit 4 KB FRAM, 1 KB SRAM, OpAmp und Transimpedanzverstärker-Peripherie
- MSP-EXP430FR2433 verfügt über die MSP430FR2433 FRAM-MCU mit 15,5 KB FRAM, 4 KB SRAM
- MSP-EXP430FR2355 verfügt über die MSP430FR2355 FRAM-MCU mit 32 KB FRAM, 4 KB SRAM, 12-Bit-ADC, 12-Bit-DAC, OpAmp/PGA, ICC für verschachtelte Interrupts
- MSP-EXP430FR5994 verfügt über die MSP430FR5994 FRAM-MCU mit 256 KB FRAM, 8 KB SRAM, 12-Bit-ADC und LEA DSP-Peripherie
Alle drei dieser LaunchPads enthalten einen eZ-FET JTAG-Debugger mit Backchannel-UART mit Geschwindigkeiten von 1 Mbit/s. Die FRAM LaunchPads (zB MSP-EXP430FR5969, MSP-EXP430FR4133) beinhalten EnergyTrace, eine von TIs Code Composer Studio IDE unterstützte Funktion zur Überwachung und Analyse des Stromverbrauchs.
Debugging-Schnittstelle
Wie andere Mikrocontroller-Anbieter hat TI eine Zweidraht-Debugging-Schnittstelle entwickelt, die auf einigen ihrer MSP430-Teile zu finden ist und die größere JTAG-Schnittstelle ersetzen kann. Das eZ430-Entwicklungstool enthält ein vollständiges USB-angeschlossenes Flash-Emulationstool (FET) für dieses neue Zweidrahtprotokoll namens Spy-Bi-Wire von TI. Spy-Bi-Wire wurde ursprünglich nur bei den kleinsten Geräten der 'F2xx-Familie mit einer begrenzten Anzahl von I/O-Pins, wie MSP430F20xx, MSP430F21x2 und MSP430F22x2, eingeführt. Die Unterstützung für Spy-Bi-Wire wurde mit der Einführung der neuesten '5xx-Familie erweitert, bei der alle Geräte zusätzlich zu JTAG eine Spy-Bi-Wire-Schnittstelle unterstützen.
Der Vorteil des Spy-Bi-Wire-Protokolls besteht darin, dass es nur zwei Kommunikationsleitungen verwendet, von denen eine die dedizierte _RESET-Leitung ist. Die JTAG-Schnittstelle an den MSP430-Teilen mit niedrigerer Pinanzahl wird mit Allzweck-E/A-Leitungen gemultiplext. Dies macht es relativ schwierig, Schaltungen zu debuggen, die um die kleinen Chips mit niedrigem I/O-Budget herum aufgebaut sind, da die vollständige 4-Pin-JTAG-Hardware mit allem anderen in Konflikt geraten wird, das mit diesen I/O-Leitungen verbunden ist. Dieses Problem wird mit den Spy-Bi-Wire-fähigen Chips gemildert, die zur Abwärtskompatibilität mit den alten Entwicklungstools noch mit der normalen JTAG-Schnittstelle kompatibel sind.
JTAG-Debugging- und Flash-Programmiertools, die auf OpenOCD basieren und in der ARM-Architekturgemeinschaft weit verbreitet sind, sind für den MSP430 nicht verfügbar. Speziell für den MSP430 entwickelte Programmiertools sind geringfügig günstiger als JTAG-Schnittstellen, die OpenOCD verwenden. Sollte jedoch während des Projekts festgestellt werden, dass mehr MIPS, mehr Speicher und mehr I/O-Peripheriegeräte benötigt werden, werden diese Tools nicht auf einen Prozessor eines anderen Anbieters übertragen.
MSP430-CPU
Die MSP430-CPU verwendet eine von Neumann-Architektur mit einem einzigen Adressraum für Anweisungen und Daten. Der Speicher ist byteadressiert, und Bytepaare werden Little-Endian zu 16-Bit- Wörtern kombiniert .
Der Prozessor enthält 16 16-Bit-Register, von denen vier für spezielle Zwecke bestimmt sind: R0 ist der Programmzähler , R1 ist der Stack-Zeiger , R2 ist das Statusregister und R3 ist ein "Konstantengenerator", der als Null liest und ignoriert schreibt. Zusätzliche Adreßmoduscodierungen mit R3 und R2 ermöglichen insgesamt sechs häufig verwendete Konstantenwerte (0, 1, 2, 4, 8 und –1), ohne dass ein unmittelbares Operandenwort erforderlich ist. R4 bis R15 stehen für den allgemeinen Gebrauch zur Verfügung.
Der Befehlssatz ist sehr einfach: 27 Befehle existieren in drei Familien. Die meisten Befehle kommen in den Suffix-Versionen .B (8-Bit-Byte) und .W (16-Bit-Wort) vor, abhängig vom Wert eines S/W-Bits: Das Bit wird für 8-Bit auf 1 und für 16-Bit auf 0 gesetzt. Bit. Ein fehlendes Suffix entspricht .W. Byteoperationen an den Speicher wirken sich nur auf das adressierte Byte aus, während Byteoperationen an Registern das höchstwertige Byte löschen.
fünfzehn | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Anweisung |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 | Opcode | S/W | Wie | registrieren | Einzeloperandenarithmetik | ||||||
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | S/W | Wie | registrieren | RRC Nach rechts drehen (1 Bit) durch Übertrag | ||||
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | Wie | registrieren | SWPB Swap-Bytes | ||||
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | S/W | Wie | registrieren | RRA Nach rechts drehen (1 Bit) Arithmetik | ||||
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | Wie | registrieren | SXT- Zeichen erweitern Byte zu Wort | ||||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | S/W | Wie | registrieren | PUSH Wert auf Stack übertragen | ||||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | Wie | registrieren | CALL Unterprogrammaufruf; PC drücken und Quelle auf PC verschieben | ||||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | RETI Rückkehr vom Interrupt; Pop SR dann Pop PC |
0 | 0 | 1 | Zustand | 10-Bit-Offset mit Vorzeichen | Bedingter Sprung; PC = PC + 2×Offset | |||||||||||
0 | 0 | 1 | 0 | 0 | 0 | 10-Bit-Offset mit Vorzeichen | JNE / JNZ Sprung wenn ungleich/Null | |||||||||
0 | 0 | 1 | 0 | 0 | 1 | 10-Bit-Offset mit Vorzeichen | JEQ / JZ Sprung wenn gleich/null | |||||||||
0 | 0 | 1 | 0 | 1 | 0 | 10-Bit-Offset mit Vorzeichen | JNC / JLO Jump, wenn kein Carry/Low | |||||||||
0 | 0 | 1 | 0 | 1 | 1 | 10-Bit-Offset mit Vorzeichen | JC / JHS Jump wenn Carry/höher oder gleich | |||||||||
0 | 0 | 1 | 1 | 0 | 0 | 10-Bit-Offset mit Vorzeichen | JN Sprung wenn negativ | |||||||||
0 | 0 | 1 | 1 | 0 | 1 | 10-Bit-Offset mit Vorzeichen | JGE Jump wenn größer oder gleich | |||||||||
0 | 0 | 1 | 1 | 1 | 0 | 10-Bit-Offset mit Vorzeichen | JL Springen wenn weniger | |||||||||
0 | 0 | 1 | 1 | 1 | 1 | 10-Bit-Offset mit Vorzeichen | JMP- Sprung (bedingungslos) | |||||||||
Opcode | Quelle | Anzeige | S/W | Wie | Ziel | Zwei-Operanden-Arithmetik | ||||||||||
0 | 1 | 0 | 0 | Quelle | Anzeige | S/W | Wie | Ziel | MOV Quelle zum Ziel verschieben | |||||||
0 | 1 | 0 | 1 | Quelle | Anzeige | S/W | Wie | Ziel | HINZUFÜGEN Quelle zum Ziel hinzufügen | |||||||
0 | 1 | 1 | 0 | Quelle | Anzeige | S/W | Wie | Ziel | ADDC Quelle hinzufügen und zum Ziel übertragen | |||||||
0 | 1 | 1 | 1 | Quelle | Anzeige | S/W | Wie | Ziel | SUBC Quelle vom Ziel subtrahieren (mit Übertrag) | |||||||
1 | 0 | 0 | 0 | Quelle | Anzeige | S/W | Wie | Ziel | SUB Quelle vom Ziel subtrahieren | |||||||
1 | 0 | 0 | 1 | Quelle | Anzeige | S/W | Wie | Ziel | CMP Vergleichen (so tun, als würden Sie subtrahieren) Quelle vom Ziel | |||||||
1 | 0 | 1 | 0 | Quelle | Anzeige | S/W | Wie | Ziel | DADD Dezimal Quelle zum Ziel hinzufügen (mit Übertrag) | |||||||
1 | 0 | 1 | 1 | Quelle | Anzeige | S/W | Wie | Ziel | BIT Testbits von Quelle UND Ziel | |||||||
1 | 1 | 0 | 0 | Quelle | Anzeige | S/W | Wie | Ziel | BIC Bit löschen (Ziel &= ~src) | |||||||
1 | 1 | 0 | 1 | Quelle | Anzeige | S/W | Wie | Ziel | BIS Bit gesetzt (logisches ODER) | |||||||
1 | 1 | 1 | 0 | Quelle | Anzeige | S/W | Wie | Ziel | XOR Exklusiv oder Quelle mit Ziel | |||||||
1 | 1 | 1 | 1 | Quelle | Anzeige | S/W | Wie | Ziel | UND Logische UND- Quelle mit Ziel (dest &= src) |
Anweisungen bestehen aus 16 Bit, gefolgt von bis zu zwei 16-Bit-Erweiterungswörtern. Adressierungsmodi werden durch das 2-Bit-As-Feld und das 1-Bit-Ad-Feld spezifiziert. Einige spezielle Versionen können mit R0 konstruiert werden, und andere Modi als das direkte Register mit R2 (dem Statusregister) und R3 (dem Konstantengenerator) werden speziell interpretiert. Ad kann nur eine Teilmenge der Adressierungsmodi für As verwenden.
Indizierte Adressierungsmodi fügen dem Befehl ein 16-Bit-Erweiterungswort hinzu. Wenn sowohl Quelle als auch Ziel indiziert sind, steht das Quellerweiterungswort an erster Stelle. x bezieht sich auf das nächste Erweiterungswort im Befehlsstrom in der folgenden Tabelle.
Wie | Anzeige | Registrieren | Syntax | Beschreibung |
---|---|---|---|---|
00 | 0 | n | R n | Direkt anmelden. Der Operand ist der Inhalt von R n . |
01 | 1 | n | x (R n ) | Indiziert. Der Operand befindet sich im Speicher an der Adresse R n + x . |
10 | — | n | @R n | Registrieren Sie sich indirekt. Der Operand befindet sich im Speicher an der in R n gehaltenen Adresse . |
11 | — | n | @R n + | Indirektes Autoinkrement. Wie oben wird das Register dann um 1 oder 2 inkrementiert. |
Adressierungsmodi mit R0 (PC) | ||||
01 | 1 | 0 (PC) | ADDR | Symbolisch. Entspricht x(PC). Der Operand befindet sich im Speicher an der Adresse PC+ x . |
11 | — | 0 (PC) | # x | Sofort. Entspricht @PC+. Der Operand ist das nächste Wort im Befehlsstrom. |
Adressierungsmodi mit R2 (SR) und R3 (CG), Sonderfalldecodierung | ||||
01 | 1 | 2 (SR) | & ADDR | Absolut. Der Operand befindet sich im Speicher an der Adresse x . |
10 | — | 2 (SR) | #4 | Konstante. Der Operand ist die Konstante 4. |
11 | — | 2 (SR) | #8 | Konstante. Der Operand ist die Konstante 8. |
00 | — | 3 (CG) | #0 | Konstante. Der Operand ist die Konstante 0. |
01 | — | 3 (CG) | #1 | Konstante. Der Operand ist die Konstante 1. Es gibt kein Indexwort. |
10 | — | 3 (CG) | #2 | Konstante. Der Operand ist die Konstante 2. |
11 | — | 3 (CG) | #−1 | Konstante. Der Operand ist die Konstante −1. |
Befehle benötigen im Allgemeinen 1 Zyklus pro abgerufenem oder gespeichertem Wort, daher reichen die Befehlszeiten von 1 Zyklus für einen einfachen Register-Register-Befehl bis zu 6 Zyklen für einen Befehl, bei dem sowohl Quelle als auch Ziel indiziert sind.
Die MSP430X-Erweiterung mit 20-Bit-Adressierung fügt zusätzliche Befehle hinzu, die bis zu 10 Taktzyklen benötigen können. Das Setzen oder Löschen eines Peripheriebits dauert zwei Takte. Ein Sprung, gemacht oder nicht, dauert zwei Takte. Bei der 2xx-Serie sind 2 MCLKs 125 ns bei 16 MHz.
Bewegungen zum Programmzähler sind erlaubt und führen Sprünge aus. Die Rückkehr aus dem Unterprogramm wird beispielsweise als MOV @SP+,PC implementiert .
Wenn R0 (PC) oder R1 (SP) mit dem Autoinkrement-Adressierungsmodus verwendet werden, werden sie immer um zwei erhöht. Andere Register (R4 bis R15) werden um die Operandengröße erhöht, entweder 1 oder 2 Byte.
Das Statusregister enthält 4 arithmetische Statusbits, eine globale Unterbrechungsfreigabe und 4 Bits, die verschiedene Taktgeber deaktivieren, um in den Energiesparmodus einzutreten. Bei der Verarbeitung eines Interrupts sichert der Prozessor das Statusregister auf dem Stack und löscht die Low-Power-Bits. Wenn der Interrupt-Handler das gespeicherte Statusregister nicht modifiziert, wird die Rückkehr vom Interrupt den ursprünglichen Niedrigenergiemodus wieder aufnehmen.
Pseudo-Operationen
Viele hinzugefügte Befehle werden als Aliase für Formen des Obigen implementiert. Beispielsweise gibt es keine spezielle Anweisung "Rückkehr aus Unterprogramm", sondern wird als "MOV @SP+,PC" implementiert. Emulierte Anweisungen sind:
Emuliert | Tatsächlich | Beschreibung |
---|---|---|
ADC . x dst | ADDC. x #0, dst | Carry zum Ziel hinzufügen |
BR dst | MOV dst ,PC | Abzweig zum Ziel |
CLR . x dst | BEWEG. x #0, dst | Ziel löschen |
CLRC | BIC #1,SR | Übertragsbit löschen |
CLRN | BIC #4,SR | Negatives Bit löschen |
CLRZ | BIC #2,SR | Nullbit löschen |
DADC . x dst | Papa. x #0, dst | Dezimal Carry zum Ziel hinzufügen |
DEZ . x dst | SUB. x #1, dst | Dekrement |
DECD . x dst | SUB. x #2, dst | Doppelte Abnahme |
DINT | BIC #8,SR | Unterbrechungen deaktivieren |
EINT | BIS #8,SR | Unterbrechungen aktivieren |
INC . x dst | HINZUFÜGEN. x #1, dst | Zuwachs |
INCD . x dst | HINZUFÜGEN. x #2, dst | Doppelte Erhöhung |
INV . x dst | XOR. x #−1, dst | Umkehren |
NOP | MOV #0,R3 | Keine Operation |
POP dst | MOV @SP+, dst | Pop vom Stapel |
RET | MOV @SP+,PC | Rückkehr aus Unterprogramm |
RLA . x dst | HINZUFÜGEN. x dst , dst | Arithmetik nach links drehen (um 1 Bit nach links verschieben) |
RLC . x dst | ADDC. x dst , dst | Durch das Tragen nach links drehen |
SBC . x dst | SUBC. x #0, dst | Ausleihe (1−carry) vom Ziel abziehen |
SETC | BIS #1,SR | Übertragsbit setzen |
SETN | BIS #4,SR | Negatives Bit setzen |
SETZ | BIS #2,SR | Nullbit setzen |
TST . x dst | CMP. x #0, dst | Testziel |
Beachten Sie, dass die unmittelbaren Konstanten −1 (0xffff), 0, 1, 2, 4 und 8 in einer Einzelwort-Anweisung angegeben werden können, ohne dass ein separater unmittelbarer Operand erforderlich ist.
MSP430X 20-Bit-Erweiterung
Der grundlegende MSP430 kann nicht mehr Speicher (ROM + RAM + Peripheriegeräte) als seinen 64K-Adressraum unterstützen. Um dies zu unterstützen, verwendet eine erweiterte Form des MSP430 20-Bit-Register und einen 20-Bit-Adressraum, der bis zu 1 MB Speicher ermöglicht. Dies verwendet den gleichen Befehlssatz wie die Grundform, jedoch mit zwei Erweiterungen:
- Eine begrenzte Anzahl von 20-Bit-Befehlen für allgemeine Operationen und
- Ein allgemeiner Präfix-Wort-Mechanismus, der jeden Befehl auf 20 Bit erweitern kann.
Die erweiterten Befehle umfassen einige zusätzliche Fähigkeiten, insbesondere Multibit-Verschiebungen und Multiregister-Lade-/Speicheroperationen.
20-Bit-Operationen verwenden das Längensuffix "A" (für Adresse) anstelle von .B oder .W. .W ist immer noch die Standardeinstellung. Im Allgemeinen löschen kürzere Operationen die höherwertigen Bits des Zielregisters.
Die neuen Anweisungen lauten wie folgt:
fünfzehn | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Zweites Wort | Anweisung |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | Quelle | 0 | 0 | Opcode | Ziel | Erweiterte Speicherregisterbewegungen | ||||||||
0 | 0 | 0 | 0 | src | 0 | 0 | 0 | 0 | dst | — | MOVA @R src ,R dst | ||||||
0 | 0 | 0 | 0 | src | 0 | 0 | 0 | 1 | dst | — | MOVA @R src +,R dst | ||||||
0 | 0 | 0 | 0 | Adresse[19:16] | 0 | 0 | 1 | 0 | dst | Adresse[15:0] | MOVA &abs20,R dst | ||||||
0 | 0 | 0 | 0 | src | 0 | 0 | 1 | 1 | dst | x[15:0] | MOVA x(R src ),R dst | ||||||
0 | 0 | 0 | 0 | n−1 | op. | 0 | 1 | 0 | W/A | Ziel | Bitverschiebungen (1–4 Bitpositionen) | ||||||
0 | 0 | 0 | 0 | n−1 | 0 | 0 | 0 | 1 | 0 | W/A | dst | — | RRCM . x # n ,R dst (Durch Übertrag nach rechts drehen .) | ||||
0 | 0 | 0 | 0 | n−1 | 0 | 1 | 0 | 1 | 0 | W/A | dst | — | RRAM . x # n ,R dst (Arithmetik nach rechts drehen , auch bekannt als Vorzeichen nach rechts verschieben.) | ||||
0 | 0 | 0 | 0 | n−1 | 1 | 0 | 0 | 1 | 0 | W/A | dst | — | RLAM . x # n ,R dst (Arithmetik nach links drehen , auch nach links verschieben.) | ||||
0 | 0 | 0 | 0 | n−1 | 1 | 1 | 0 | 1 | 0 | W/A | dst | — | RRUM . x # n ,R dst ( Nach rechts ohne Vorzeichen drehen , auch bekannt als logisch nach rechts verschieben.) | ||||
0 | 0 | 0 | 0 | Quelle | 0 | 1 | 1 | op. | Ziel | Erweiterte Registerspeicherbewegungen | |||||||
0 | 0 | 0 | 0 | src | 0 | 1 | 1 | 0 | Adresse[19:16] | Adresse[15:0] | MOVA R src ,&abs20 | ||||||
0 | 0 | 0 | 0 | src | 0 | 1 | 1 | 1 | dst | x[15:0] | MOVA R src ,x(R dst ) | ||||||
0 | 0 | 0 | 0 | Quelle | 1 | Opcode | Ziel | Erweiterte ALU-Operationen | |||||||||
0 | 0 | 0 | 0 | imm[19:16] | 1 | 0 | 0 | 0 | dst | imm[15:0] | MOVA #imm20,R dst | ||||||
0 | 0 | 0 | 0 | imm[19:16] | 1 | 0 | 0 | 1 | dst | imm[15:0] | CMPA #imm20,R dst | ||||||
0 | 0 | 0 | 0 | imm[19:16] | 1 | 0 | 1 | 0 | dst | imm[15:0] | HINZUFÜGEN #imm20,R dst | ||||||
0 | 0 | 0 | 0 | imm[19:16] | 1 | 0 | 1 | 1 | dst | imm[15:0] | SUBA #imm20,R dst | ||||||
0 | 0 | 0 | 0 | src | 1 | 1 | 0 | 0 | dst | — | MOVA R src ,R dst | ||||||
0 | 0 | 0 | 0 | src | 1 | 1 | 0 | 1 | dst | — | CMPA R src ,R dst | ||||||
0 | 0 | 0 | 0 | src | 1 | 1 | 1 | 0 | dst | — | ADDA R src ,R dst | ||||||
0 | 0 | 0 | 0 | src | 1 | 1 | 1 | 1 | dst | — | SUBA R src ,R dst | ||||||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | op. | Modus | variiert | CALLA | ||||||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | RETI (wie MSP430) |
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | Wie | registrieren | CALLA- Quelle | |||||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | Bauchmuskeln[19:16] | Bauchmuskeln[15:0] | CALLA &abs20 | |||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | x[19:16] | x[15:0] | ANRUF x(PC) | |||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | — | — | (reserviert) | |||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | imm[19:16] | imm[15:0] | CALLA #imm20 | |||
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | — | — | (reserviert) | |||||
0 | 0 | 0 | 1 | 0 | 1 | dir | W/A | n−1 | registrieren | Push/Pop n Register, die mit angegeben enden | |||||||
0 | 0 | 0 | 1 | 0 | 1 | 0 | W/A | n−1 | src | — | PUSHM . x # n ,R src Push R src , R( src −1), ... R( src − n +1) | ||||||
0 | 0 | 0 | 1 | 0 | 1 | 1 | W/A | n−1 | dst−n+1 | — | POPM . x # n ,R dst Pop R( dst − n +1), R( dst − n +2), ... R dst |
Allen anderen Befehlen kann ein Präfixwort hinzugefügt werden, das sie auf 20 Bit erweitert. Das Präfixwort enthält ein hinzugefügtes Operandengrößenbit, das mit dem vorhandenen S/W-Bit kombiniert wird, um die Operandengröße anzugeben. Eine nicht verwendete Größenkombination existiert; Hinweise deuten darauf hin, dass es in Zukunft für eine 32-Bit-Operandengröße verwendet werden kann.
Das Präfixwort gibt es in zwei Formaten, und die Wahl zwischen ihnen hängt von der folgenden Anweisung ab. Wenn der Befehl irgendwelche Nicht-Register-Operanden hat, wird die einfache Form verwendet, die 2 4-Bit-Felder bereitstellt, um jeden Offset oder jede unmittelbare Konstante im Befehlsstrom auf 20 Bits zu erweitern.
Wenn der Befehl von Register zu Register erfolgt, wird ein anderes Erweiterungswort verwendet. Dazu gehört ein "ZC"-Flag, das den Übertrag unterdrückt (nützlich für Befehle wie DADD, die immer das Übertragsbit verwenden) und einen Wiederholungszähler. Ein 4-Bit-Feld im Erweiterungswort codiert entweder einen Wiederholungszähler (0–15 Wiederholungen zusätzlich zur anfänglichen Ausführung) oder eine Registernummer, die einen 4-Bit-Wiederholungszähler enthält.
fünfzehn | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Anweisung |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 1 | — | A/L | 0 | 0 | — | Erweiterungswort | ||||||
0 | 0 | 0 | 1 | 1 | src[19:16] | A/L | 0 | 0 | dst[19:16] | Speicheroperandenerweiterung | ||||||
0 | 0 | 0 | 1 | 1 | 0 | 0 | ZC | 0 | A/L | 0 | 0 | n−1 | Operandenerweiterung registrieren (sofortige Wiederholungszahl) | |||
0 | 0 | 0 | 1 | 1 | 0 | 0 | ZC | 1 | A/L | 0 | 0 | Rn | Operandenerweiterung registrieren (Wiederholungszähler registrieren) |
MSP430-Adressraum
Das allgemeine Layout des MSP430-Adressraums ist:
- 0x0000–0x0007
- Prozessor-Sonderfunktionsregister (Interrupt-Steuerregister)
- 0x0008–0x00FF
- 8-Bit-Peripheriegeräte. Auf diese muss mit 8-Bit-Laden und -Speichern zugegriffen werden.
- 0x0100–0x01FF
- 16-Bit-Peripheriegeräte. Auf diese muss mit 16-Bit-Laden und -Speichern zugegriffen werden.
- 0x0200–0x09FF
- Bis zu 2048 Byte RAM .
- 0x0C00–0x0FFF
- 1024 Byte Bootstrap-Loader-ROM (nur Flash-Teile).
- 0x1000–0x10FF
- 256 Byte Daten- Flash-ROM (nur Flash-Teile).
- 0x1800-0x19FF
- 512 Byte Daten- FRAM (die meisten FRAM-MCUs, vom Benutzer beschreibbar, keine Kalibrierdaten enthalten)
- 0x1100–0x38FF
- Erweiterter RAM bei Modellen mit mehr als 2048 Byte RAM. (0x1100–0x18FF ist eine Kopie von 0x0200–0x09FF)
- 0x1100–0xFFFF
- Bis zu 60 Kilobyte Programm-ROM. Kleinere ROMs beginnen bei höheren Adressen. Die letzten 16 bzw. 32 Bytes sind Interrupt-Vektoren .
Einige Modelle enthalten mehr als 2048 Byte RAM; in diesem Fall beginnt RAM bei 0x1100. Die ersten 2048 Byte (0x1100–0x18FF) werden aus Kompatibilitätsgründen auf 0x0200–0x09FF gespiegelt. Außerdem biegen einige neuere Modelle die 8-Bit- und 16-Bit-Peripherieregeln ab und ermöglichen den 16-Bit-Zugriff auf Peripheriegeräte im 8-Bit-Peripherieadressbereich.
Es gibt eine neue erweiterte Version der Architektur (mit dem Namen MSP430X), die einen 20-Bit- Adressraum ermöglicht . Es ermöglicht das Hinzufügen von Programm-ROM ab 0x10000.
Die '5xx-Serie verfügt über einen stark überarbeiteten Adressraum, wobei die ersten 4K für Peripheriegeräte und bis zu 16K RAM vorgesehen sind.
Verweise
- ^ Evanczuk, Stephen (20. August 2013). „Diashow: Die beliebtesten MCUs aller Zeiten“ . edn.com . Netzwerk für Elektronikdesign . Abgerufen am 3. September 2020 .
- ^ MSP430 läuft auf Trauben – Video auf YouTube
- ^ a b D. Peters, D. Raskovic und D. Thorsen, "Ein energieeffizientes paralleles eingebettetes System für kleine Satellitenanwendungen" , ISAST Transactions on Computers and Intelligent Systems , vol. 1(2), 2009
- ^ MSP430-Mikrocontroller mit dem niedrigsten Stromverbrauch von Texas Instruments
- ^ a b http://www.ti.com/lit/slau445
- ^ [1] , Energia-Website
- ^ MSP430-Artikel im IEEE- Magazin veröffentlicht.
- ^ Visuelle Lösungen
- ^ MSP430 LaunchPad (MSP-EXP430G2) , Texas Instruments Embedded Processors Wiki
- ^ "MSP430 Ultra-Low-Power-Mikrocontroller" (PDF) . Texas-Instrumente . Abgerufen am 9. Juli 2008 .
-
^ Das Größenbit heißt
A/L
, wobeiL
(long) von anderen Prozessoren verwendet wird, um 32-Bit-Operanden anzuzeigen. Auch die Beschreibung des SXTX-Befehls (MSP430F5xx Family Benutzerhandbuch alau208f Seite 237) beschreibt die Wirkung des Befehls in den Registerbits 20–31.
Externe Links
Community- und Informationsseiten
- TI MSP430 Homepage
- MSP430 TITAN-Entwicklungsboard
- TI E2E MSP430 Community-Forum
- MSP430-Community, gesponsert von Texas Instruments
- MSP430 Yahoo!group
- MSP430.info
- MSP430 Englisch-Japanisches Forum
- 43oh.com – MSP430 News, Projekte und Foren
- TinyOS-MSP430 TinyOS- Port
- MSP430 Egel Projektseiten – Etwa 50 Beispiele mit Quellen, Schaltplänen, gut dokumentiert.
C-Code-Generatoren für visuelle Programmierung
Compiler, Assembler und IDEs
Kostenloser Compiler und IDEs
- Arduino-IDE Arduino-IDE
- Code Composer Studio Eclipse-basierte IDE
- Code Composer Studio Cloud
- IAR Embedded Workbench Kickstart IDE (Größe begrenzt auf 4/8/16 KB – abhängig vom verwendeten Gerät)
- GCC-Toolchain für die MSP430-Mikrocontroller
- MSP430-Entwicklungssystem
- naken_asm Open-Source MSP430 Assembler, Disassembler, Simulator.
- Vorgefertigte MSP430 GCC 4.x-Binärdateien für Windows
- MSP430 16-Bit-NoForth-Compiler Mit Assembler, Disassembler und Sourcen.
- FastForth mit 5 MBds Terminal, Assembler, SD_Card Treiber...
Die beliebtesten uneingeschränkten IDEs und Compiler
Verschiedene IDEs
- AQ430-Entwicklungstools für MSP430-Mikrocontroller
- ImageCraft C-Tools
- ForthInc Forth-Compiler
- MPE Forth IDE & Cross-Compiler für MSP430 derzeit in Beta
- HI-TECH C für MSP430 (MSP430-Unterstützung wurde 2009 eingestellt)
Liste der Debugging-Tools (nicht vollständig)
Name | Hersteller | Schnittstelle | Protokoll(e) | Status |
---|---|---|---|---|
MSP-FET430PIF | TI | Parallel-Port | JTAG | |
MSP-FET430UIF | TI | USB-Schnittstelle | JTAG, Spy-Bi-Wire | |
MSP-FET | TI | USB-Schnittstelle | JTAG, Spy-Bi-Wire | |
MSP-430 LaunchPad | TI | USB-Schnittstelle | Spy-Bi-Wire | |
MSP-430 LaunchPad eZ-FET | TI | USB-Schnittstelle | Spy-Bi-Wire | |
eZ430-F2013 | TI | USB-Schnittstelle | Spy-Bi-Wire | |
eZ430-RF2500 | TI | USB-Schnittstelle | Spy-Bi-Wire | |
FETP | SoftBaugh | Parallel-Port | JTAG | |
USBP | SoftBaugh | USB-Schnittstelle | JTAG, Spy-Bi-Wire | abgesetzt |
MSP430-JTAG | Olimex | Parallel-Port | JTAG | |
MSP430-JTAG-ISO | Olimex | USB-Schnittstelle | JTAG, Spy-Bi-Wire | obsolet |
MSP430-JTAG-ISO-MK2 | Olimex | USB-Schnittstelle | JTAG, Spy-Bi-Wire | |
MSP430-JTAG-Tiny | Olimex | USB-Schnittstelle | JTAG, Spy-Bi-Wire | nicht gefunden |
MSP430-JTAG-TINY-V2 | Olimex | USB-Schnittstelle | JTAG?, Spy-Bi-Wire | |
MSP430-JTAG-RF | Olimex | USB-Schnittstelle | JTAG, Spy-Bi-Wire | |
FlashPro-CC | Elprotronik | USB-Schnittstelle | JTAG, Spy-Bi-Wire, BSL | |
VisSim /ECD | Visuelle Lösungen | USB-Schnittstelle | JTAG, Spy-Bi-Wire | |
LA-3713 | Lauterbach | USB-Schnittstelle / Ethernet | JTAG, Spy-Bi-Wire |
Andere Werkzeuge
- WSim – ein softwaregesteuerter Emulator für vollständige Plattformschätzungen und Fehlerbehebung
- MSPSim – ein Java-basierter MSP430-Emulator/Simulator
- MSP430Static – ein Reverse-Engineering-Tool in Perl
- GoodFET – ein offener MSP430 JTAG-Debugger in C und Python
- mspdebug – ein Open-Source-MSP430-JTAG-Debugger
- Trace32 MSP430 SIM – Downloadbereich mit MSP430 Instruction Set Simulator kostenlos zur Evaluierung
- ERIKA Enterprise – eine kostenlose Open Source RTOS-Implementierung der ISO 17356 API (abgeleitet von der OSEK/VDX API)
- Energia basiert auf Wiring und Arduino und verwendet die Processing IDE. Die Hardwareplattform basiert auf dem TI MSP430 LaunchPad