TI MSP430

TI MSP430
Designer Texas instrument
Bits 16-bitars
Introducerad 14 februari 1992
Typ Minne-minne
Endianness liten endian
Tillägg MSP430X
Register
16, R0 – Program Counter, R1 – Stack Pointer, R2 – Status Register, R2/R3 – Constant Generator
MSP 430 FG438 driver en glukosmätare
Foto av två experimenterkort för MSP430-chipset från Texas Instruments. Till vänster den större chipversionen, till höger en liten version i USB-format.

MSP430 är en mikrokontrollerfamilj med blandade signaler från Texas Instruments , som först introducerades den 14 februari 1992. Byggd kring en 16-bitars CPU , är MSP430 designad för inbyggda applikationer med låg kostnad och, specifikt, låg strömförbrukning.

Ansökningar

Aktivmed GlucoCheck Comfort glukosmätare - Tryckt kretskort under LCD-skärmen som är värd för en MSP 430 CPU

MSP430 kan användas för inbyggda enheter med låg effekt . Strömmen som dras i viloläge kan vara mindre än 1 µA. Den högsta CPU-hastigheten är 25 MHz. Den kan strypas tillbaka för lägre strömförbrukning. MSP430 använder också sex olika lågeffektlägen, som kan inaktivera onödiga klockor och CPU. Dessutom kan MSP430 väckas på under 1 mikrosekund, vilket gör att kontrollern kan stanna i viloläge längre, vilket minimerar den genomsnittliga strömanvändningen. Enheten kommer i en mängd olika konfigurationer med den vanliga kringutrustningen:

Några mindre vanliga perifera alternativ inkluderar komparatorer (som kan användas med timers för att göra enkel ADC), operationsförstärkare på kretsen (op-amp) för signalbehandling , 12-bitars digital-till-analog-omvandlare (DAC), flytande kristaller display (LCD) drivrutin, hårdvarumultiplikator , USB och direkt minnesåtkomst (DMA) för ADC-resultat. Bortsett från vissa äldre raderbara programmerbara läsminne ( EPROM , såsom MSP430E3xx) och högvolymmask ROM (MSP430Cxxx) versioner, är alla enheter in-systemprogrammering aktiverade via Joint Test Action Group ( JTAG ), full fyrtrådig eller Spy-Bi-Wire ), en inbyggd bootstrapping loader (BSL) som använder UART som RS-232 eller USB på enheter med USB-stöd. Ingen BSL ingår i enheter i familjen F20xx, G2xx0, G2xx1, G2xx2 eller I20xx.

Minnesbegränsningar

Det finns dock gränser som utesluter dess användning i mer komplexa inbyggda system . MSP430 har ingen extern minnesbuss , så den är begränsad till on-chip-minne, upp till 512 KB flashminne och 66 KB random-access memory ( RAM), vilket kan vara för litet för applikationer som behöver stora buffertar eller datatabeller . Även om den har en DMA-kontroller är det mycket svårt att använda den för att flytta data från chippet på grund av bristen på en DMA-utgångsstrobe.

MSP430 generationer

Det finns sex generella generationer av MSP430-processorer. I utvecklingsordning är de: '3xx generation, '1xx generation, '4xx generation, '2xx generation, '5xx generation och '6xx generation. Siffran efter generationen identifierar modellen (vanligtvis är högre modellnummer större och mer kapabla), den tredje siffran identifierar mängden minne som ingår, och den fjärde, om den finns, identifierar en mindre modellvariant. Den vanligaste varianten är en annan on-chip analog-till-digital-omvandlare .

Generationerna 3xx och 1xx är begränsade till ett 16-bitars adressutrymme. I de senare generationerna utökades detta till att inkludera '430X'-instruktioner som tillåter ett 20-bitars adressutrymme. Som hände med andra processorarkitekturer (t.ex. processorn i PDP-11 ), introducerade en utvidgning av adresseringsintervallet bortom 16-bitars ordstorleken vissa egenheter och ineffektiviteter för program större än 64 kByte.

I följande lista hjälper det att tänka på den typiska kapaciteten på 200 mA·Hr för en CR2032 litiummyntcell som 200 000 μA·Hr , eller 22,8 μA·år. Således, med tanke på endast CPU-draget, skulle ett sådant batteri kunna leverera 0,7 μA strömförbrukning i 32 år. (I verkligheten skulle batteriets självurladdning minska detta antal.)

Betydelsen av RAM-retention kontra realtidsklockläget är att i realtidsklockläget kan CPU:n gå i viloläge med en klocka igång som kommer att väcka den vid en specifik framtida tidpunkt. I RAM-retentionsläge krävs någon extern signal för att väcka den, t.ex. in-/utgångsstiftsignal (I/O) eller SPI-slavmottagningsavbrott.

MSP430x1xx-serien

MSP430x1xx-serien är den grundläggande generationen utan en inbyggd LCD- kontroller. De är i allmänhet mindre än '3xx-generationen. Dessa flash- eller ROM-baserade MCU:er med ultralåg effekt erbjuder 8 MIPS, 1,8–3,6 V-drift, upp till 60 KB blixt och ett brett utbud av analog och digital kringutrustning.

  • Effektspecifikationsöversikt, så låg som:
    • 0,1 μA RAM-retention
    • 0,7 μA realtidsklockläge
    • 200 μA / MIPS aktiv
    • Har snabb väckning från standby-läge på mindre än 6 µs.
  • Enhetsparametrar
    • Flash-alternativ: 1–60 KB
    • ROM-alternativ: 1–16 KB
    • RAM: 128 B–10 KB
    • GPIO-alternativ: 14, 22, 48 stift
    • ADC-alternativ: Slope, 10 & 12-bitars SAR
    • Annan integrerad kringutrustning: 12-bitars DAC, upp till 2 16-bitars timer, watchdog-timer, brown-out-återställning, SVS, USART-modul (UART, SPI), DMA, 16×16 multiplikator, Comparator_A, temperatursensor

MSP430F2xx-serien

MSP430F2xx-serien liknar '1xx-generationen, men fungerar med ännu lägre effekt, stöder upp till 16 MHz-drift och har en mer exakt (±2%) on-chip-klocka som gör det lättare att använda utan en extern kristall. Dessa blixtbaserade enheter med ultralåg effekt erbjuder 1,8–3,6 V-drift. Inkluderar oscillatorn med mycket låg effekt (VLO), interna pull-up/pull-down-motstånd och alternativ för lågt antal stift.

  • Effektspecifikationsöversikt, så låg som:
    • 0,1 μA RAM-retention
    • 0,3 μA standbyläge (VLO)
    • 0,7 μA realtidsklockläge
    • 220 μA / MIPS aktiv
    • Med ultrasnabb väckning från standbyläge på mindre än 1 μs
  • Enhetsparametrar
    • Flash-alternativ: 1–120 KB
    • RAM-alternativ: 128 B – 8 KB
    • GPIO-alternativ: 10, 11, 16, 24, 32 och 48 stift
    • ADC-alternativ: Slope, 10 & 12-bitars SAR, 16 & 24-bitars Sigma Delta
    • Andra integrerade kringutrustning: operationsförstärkare, 12-bitars DAC, upp till 2 16-bitars timer, watchdog-timer, brown-out-återställning, SVS, USI-modul (I²C, SPI), USCI-modul, DMA, 16×16 multiplikator, Comparator_A+, temperatursensor

MSP430G2xx-serien

MSP430G2xx Value Series har blixtbaserade MCU:er med ultralåg effekt upp till 16 MIPS med 1,8–3,6 V-drift. Inkluderar Very-Low Power Oscillator (VLO), interna pull-up/pull-down-motstånd och alternativ med lågt antal stift, till lägre priser än MSP430F2xx-serien.

  • Ultralåg effekt, så låg som (@2,2 V):
    • 0,1 μA RAM-retention
    • 0,4 μA Standby-läge (VLO)
    • 0,7 μA realtidsklockläge
    • 220 μA / MIPS aktiv
    • Ultrasnabb väckning från standbyläge på <1 μs
  • Enhetsparametrar
    • Flash-alternativ: 0,5–56 KB
    • RAM-alternativ: 128 B–4 KB
    • GPIO-alternativ: 10, 16, 24, 32 stift
    • ADC-alternativ: Slope, 10-bitars SAR
    • Annan integrerad kringutrustning: Kapacitiv Touch I/O, upp till 3 16-bitars timer, watchdog-timer, brown-out-återställning, USI-modul (I²C, SPI), USCI-modul, Comparator_A+, Tempsensor

MSP430x3xx-serien

MSP430x3xx-serien är den äldsta generationen, designad för bärbar instrumentering med en inbyggd LCD-kontroller . Detta inkluderar även en frekvenslåst looposcillator som automatiskt kan synkroniseras till en låghastighetskristall (32 kHz). Denna generation stöder inte EEPROM- minne, endast mask-ROM och UV-raderbart och engångsprogrammerbart EPROM . Senare generationer tillhandahåller endast flashminne och mask ROM- alternativ. Dessa enheter erbjuder 2,5–5,5 V-drift, upp till 32 KB ROM.

  • Effektspecifikationsöversikt, så låg som:
    • 0,1 μA RAM-retention
    • 0,9 μA realtidsklockläge
    • 160 μA / MIPS aktiv
    • Har snabb väckning från standby-läge på mindre än 6 µs.
  • Enhetsparametrar:
    • ROM-alternativ: 2–32 KB
    • RAM-alternativ: 512 B–1 KB
    • GPIO-alternativ: 14, 40 stift
    • ADC-alternativ: Slope, 14-bitars SAR
    • Annan integrerad kringutrustning: LCD-kontroller, multiplikator

MSP430x4xx-serien

MSP430x4xx-serien liknar '3xx-generationen, men inkluderar en integrerad LCD-kontroller och är större och mer kapabel. Dessa flash- eller ROM-baserade enheter erbjuder 8–16 MIPS vid 1,8–3,6 V-drift, med FLL och SVS. Idealisk för lågeffektmätning och medicinska tillämpningar.

  • Effektspecifikationsöversikt, så låg som:
    • 0,1 μA RAM-retention
    • 0,7 μA realtidsklockläge
    • 200 μA / MIPS aktiv
    • Har snabb väckning från standby-läge på mindre än 6 µs.
  • Enhetsparametrar:
    • Flash/ROM-alternativ: 4 – 120 KB
    • RAM-alternativ: 256 B – 8 KB
    • GPIO-alternativ: 14, 32, 48, 56, 68, 72, 80 stift
    • ADC-alternativ: Slope, 10 & 12-bitars SAR, 16-bitars Sigma Delta
    • Annan integrerad kringutrustning: SCAN_IF, ESP430, 12-bitars DAC, Op Amps, RTC, upp till 2 16-bitars timer, watchdog-timer, grundläggande timer, brown-out-återställning, SVS, USART-modul (UART, SPI), USCI-modul, LCD-kontroller, DMA, 16×16 & 32x32 multiplikator, Comparator_A, temperatursensor, 8 MIPS CPU-hastighet

MSP430x5xx-serien

MSP430x5xx-serien kan köra upp till 25 MHz, har upp till 512 KB flashminne och upp till 66 KB RAM. Denna blixtbaserade familj har låg aktiv strömförbrukning med upp till 25 MIPS vid 1,8–3,6 V-drift (165 uA/MIPS). Inkluderar en innovativ strömhanteringsmodul för optimal strömförbrukning och integrerad USB.

  • Effektspecifikationsöversikt, så låg som:
    • 0,1 μA RAM-retention
    • 2,5 μA realtidsklocka läge
    • 165 μA / MIPS aktiv
    • Har snabb väckning från standby-läge på mindre än 5 µs.
  • Enhetsparametrar:
    • Flash-alternativ: upp till 512 KB
    • RAM-alternativ: upp till 66 KB
    • ADC-alternativ: 10 & 12-bitars SAR
    • GPIO-alternativ: 29, 31, 47, 48, 63, 67, 74, 87 stift
    • Andra valfria integrerade kringutrustningar: 12-bitars DAC, högupplöst PWM, 5 VI/O, USB, reservbatteriswitch, upp till 4 16-bitars timer, watchdog-timer, realtidsklocka, återställning av brun-out, SVS, USCI-modul , DMA, 32x32 multiplikator, Comp B, temperaturgivare

MSP430x6xx-serien

MSP430x6xx-serien kan köra upp till 25 MHz, har upp till 512 KB flashminne och upp till 66 KB RAM. Denna blixtbaserade familj har låg aktiv strömförbrukning med upp till 25 MIPS vid 1,8–3,6 V-drift (165 uA/MIPS). Inkluderar en innovativ strömhanteringsmodul för optimal strömförbrukning och integrerad USB.

  • Effektspecifikationsöversikt, så låg som:
    • 0,1 μA RAM-retention
    • 2,5 μA realtidsklocka läge
    • 165 μA / MIPS aktiv
    • Har snabb väckning från standby-läge på mindre än 5 µs.
  • Enhetsparametrar:
    • Flash-alternativ: upp till 512 KB
    • RAM-alternativ: upp till 66 KB
    • ADC-alternativ: 12-bitars SAR
    • GPIO-alternativ: 74 stift
    • Andra integrerade kringutrustning: USB, LCD, DAC, Comparator_B, DMA, 32x32 multiplikator, strömhanteringsmodul (BOR, SVS, SVM, LDO), watchdog-timer, RTC, Tempsensor

RF SoC (CC430)-serien

RF SoC (CC430)-serien ger en tät integration mellan mikrokontrollerns kärna, kringutrustning, programvara och RF-sändtagare. Har <1 GHz RF-sändtagare, med 1,8 V–3,6 V drift. Programmering med Arduinos integrerade utvecklingsmiljö (IDE) är möjlig via panStamp API .

  • Effektspecifikationsöversikt, så låg som:
    • 1 μA RAM-retention
    • 1,7 μA realtidsklockläge
    • 180 μA / MIPS aktiv
  • Enhetsparametrar:
    • Hastighetsalternativ: upp till 20 MHz
    • Flash-alternativ: upp till 32 KB
    • RAM-alternativ: upp till 4 KB
    • ADC-alternativ: 12-bitars SAR
    • GPIO-alternativ: 30 & 44 stift
    • Annan integrerad kringutrustning: LCD-styrenhet, upp till 2 16-bitars timer, watchdog-timer, RTC, strömhanteringsmodul (BOR, SVS, SVM, LDO), USCI-modul, DMA, 32x32 multiplikator, Comp B, temperatursensor

FRAM-serien

FRAM -serien från Texas Instruments ger enhetligt minne med dynamisk partitionering och minnesåtkomsthastigheter 100 gånger snabbare än flash. FRAM klarar också av noll strömtillståndsretention i alla strömlägen, vilket innebär att skrivningar garanteras, även i händelse av strömavbrott. Med en skrivuthållighet på över 100 biljoner cykler behövs inte längre EEPROM. Aktiv strömförbrukning vid mindre än 100μA/MHz.

  • Effektspecifikationsöversikt, så låg som:
    • 320 nA RAM-retention
    • 0,35 μA realtidsklockläge
    • 82 μA / MIPS aktiv
  • Enhetsparametrar:
    • Hastighetsalternativ: 8 till 24 MHz
    • FRAM-alternativ: 4 till 256 KB
    • RAM-alternativ: 0,5 till 8 KB
    • ADC-alternativ: 10 eller 12-bitars SAR
    • GPIO-alternativ: 17 till 83 GPIO-stift
    • Andra möjliga integrerade kringutrustning: MPU, upp till 6 16-bitars timer, watchdog-timer, RTC, strömhanteringsmodul (BOR, SVS, SVM, LDO), USCI-modul, DMA, multiplikator, Comp B, temperatursensor, LCD-drivrutin, I2C och UART BSL, Extended Scan Interface, 32 bitars multiplikator, AES, CRC, signalbehandlingsacceleration, kapacitiv touch, IR-modulering

Lågspänningsserie

Lågspänningsserien inkluderar delarna MSP430C09x och MSP430L092 , som kan köras vid 0,9 V. Dessa två serier av lågspännings 16-bitars mikrokontroller har konfigurationer med två 16-bitars timer, en 8-bitars analog-till-digital (A/D) ) omvandlare, en 8-bitars digital-till-analog (D/A)-omvandlare och upp till 11 I/O-stift.

  • Effektspecifikationsöversikt, så låg som:
    • 1 μA RAM-retention
    • 1,7 μA realtidsklockläge
    • 180 μA / MIPS aktiv
  • Enhetsparametrar:
    • Hastighetsalternativ: 4 MHz
    • ROM-alternativ: 1–2 kB
    • SRAM-alternativ: 2 kB
    • ADC-alternativ: 8-bitars SAR
    • GPIO-alternativ: 11 stift
    • Annan integrerad kringutrustning: upp till 2 16-bitars timer, watchdog-timer, brown-out-återställning, SVS, komparator, temperatursensor

Andra MSP430-familjer

Fler familjer inom MSP430 inkluderar delar med fast funktion , bil och utökad temp .

Fast funktion : MSP430BQ1010 16-bitars mikrokontroller är en avancerad enhet med fasta funktioner som bildar kontroll- och kommunikationsenheten på mottagarsidan för trådlös kraftöverföring i bärbara applikationer. MSP430BQ1010 uppfyller specifikationen för Wireless Power Consortium (WPC). För mer information, se Contactless Power [ permanent död länk ] .

Fordon : Automotive MSP430-mikrokontroller (MCU) från Texas Instruments (TI) är 16-bitars, RISC-baserade, blandade signalprocessorer som är AEC-Q100-kvalificerade och lämpliga för fordonstillämpningar i miljöer upp till 105 °C omgivningstemperatur. LIN-kompatibla drivrutiner för MSP430 MCU från IHR GmbH.

Extended Temp : MSP430-enheter är mycket populära i tuffa miljöer som industriell avkänning för sin låga strömförbrukning och innovativa analoga integration. Vissa tillämpningar för tuff miljö inkluderar transport/fordon, förnybar energi, militär/rymd/flygelektronik, mineralutforskning, industri och säkerhet och säkerhet.

  • Enhetsdefinitioner:
    • HT: -55 °C till 150 °C
    • EP: Förbättrade produkter -55 °C till 125 °C
    • Q1: Automotive Q100 kvalificerad -40 °C till 105 °C
    • T: Förlängd temperatur -40 °C till 105 °C applikationer

Observera att när flashstorleken är över 64K ord (128 KByte), kan instruktionsadresser inte längre kodas i bara två byte. Denna förändring i pekarens storlek orsakar viss inkompatibilitet med tidigare delar.

Kringutrustning

MSP430 kringutrustning är i allmänhet lätt att använda, med (för det mesta) konsekventa adresser mellan modeller, och inga skrivbara register (förutom hårdvarumultiplikatorn).

I/O-portar för allmänna ändamål 0–10

Om kringutrustningen inte behövs kan stiftet användas för allmän I/O. Stiften är uppdelade i 8-bitars grupper som kallas "portar", som var och en styrs av ett antal 8-bitars register. I vissa fall är portarna arrangerade i par som kan nås som 16-bitars register.

MSP430-familjen definierar 11 I/O-portar, P0 till P10, även om inget chip implementerar mer än 10 av dem. P0 implementeras endast på '3xx-familjen. P7 till P10 är endast implementerade på de största medlemmarna (och högsta pin count versioner) av '4xx och '2xx familjerna. De senaste '5xx- och '6xx-familjerna har P1 till P11, och kontrollregistren omtilldelas för att ge fler portpar. Varje port kontrolleras av följande register. Portar som inte implementerar särskilda funktioner (såsom avbrott vid tillståndsändring) implementerar inte motsvarande register.

P x IN
Port x ingång. Detta är ett skrivskyddat register och återspeglar det aktuella tillståndet för portens stift.
P x OUT
Port x utgång. Värdena som skrivs till detta läs/skrivregister drivs ut motsvarande stift när de är konfigurerade att mata ut.
P x DIR
Port x datariktning. Bitar skrivna som 1 konfigurerar motsvarande stift för utmatning. Bitar skrivna som 0 konfigurerar stiftet för ingång.
P x SEL
Port x funktionsval. Bitar skrivna som 1 konfigurerar motsvarande stift för användning av den specialiserade kringutrustningen. Bitar skrivna som 0 konfigurerar stiftet för allmän I/O. Port 0 (endast '3xx delar) är inte multiplexerad med annan kringutrustning och har inget P0SEL-register.
P x REN
Port x resistoraktivering (endast '2xx & '5xx). Bitar som ställs in i detta register möjliggör svaga pull-up- eller pull-down-motstånd på motsvarande I/O-stift även när de är konfigurerade som ingångar. Dragens riktning ställs in av biten som skrivs till P x OUT-registret.
P x DS
Port x enhetsstyrka (endast '5xx). Bitar inställda i detta register möjliggör höga strömutgångar. Detta ökar uteffekten, men kan orsaka elektromagnetisk störning (EMI).

Portarna 0–2 kan ge avbrott när ingångarna ändras. Ytterligare register konfigurerar denna förmåga:

P x IES
Port x avbrottskantval. Väljer kanten som gör att P x IFG-biten ställs in. När inmatningsbiten ändras från att matcha P x IES-tillståndet till att inte matcha det (dvs. närhelst en bit i P x IES XOR P x IN ändras från nollställning till set) , sätts motsvarande P x ​​IFG-bit.
P x IE
Port x avbrottsaktivering. När denna bit och den motsvarande Px IFG -biten båda är inställda, genereras ett avbrott.
P x IFG
Port x avbrottsflagga. Ställs in när motsvarande stift gör den tillståndsändring som begärs av P x IES. Kan endast rensas av programvara. (Kan även ställas in med programvara.)
P x IV
Port x avbrottsvektor (endast '5xx). Detta 16-bitars register är en prioritetskodare som kan användas för att hantera stiftbytesavbrott. Om n är den lägsta numrerade avbrottsbiten som väntar i P x IFG och aktiverad i P x IE, läses detta register som 2 n +2. Om det inte finns någon sådan bit läses den som 0. Skalfaktorn 2 tillåter direkt användning som en offset i en grentabell . Genom att läsa detta register rensas även den rapporterade P x ​​IFG-flaggan.

Vissa stift har speciella syften antingen som ingångar eller utgångar. (Till exempel kan timerstift konfigureras som capture-ingångar eller PWM-utgångar.) I detta fall styr P x DIR-biten vilken av de två funktionerna som stiftet utför när P x SEL-biten är inställd. Om det bara finns en specialfunktion ignoreras vanligtvis P x DIR. P x IN-registret är fortfarande läsbart om P x SEL-biten är inställd, men avbrottsgenerering är inaktiverad. Om P x SEL är noll, fryss specialfunktionens ingång och kopplas bort från det externa stiftet. Att konfigurera ett stift för generell utmatning inte heller generering av avbrott.

Adresskarta för allmänna I/O-register
'1xx–'4xx familjer
P x IN P x UT P x DIR P x SEL P x IES P x IE P x IFG P x REN
P0 0x10 0x11 0x12 0x13 0x14 0x15
P1 0x20 0x21 0x22 0x26 0x24 0x25 0x23 0x27
P2 0x28 0x29 0x2a 0x2e 0x2c 0x2d 0x2b 0x2f
P3 0x18 0x19 0x1a 0x1b 0x10
P4 0x1c 0x1d 0x1e 0x1f 0x11
P5 0x30 0x31 0x32 0x33 0x12
P6 0x34 0x35 0x36 0x37 0x13
PA P7 0x38 0x3a 0x3c 0x3e 0x14
P8 0x39 0x3b 0x3d 0x3f 0x15
PB P9 0x08 0x0a 0x0c 0x0e 0x16
P10 0x09 0x0b 0x0d 0x0f 0x17
'5xx–'6xx och '0xx familjer
P x IN P x UT P x DIR P x REN P x DS P x SEL P x IV P x IES P x IE P x IFG
PA P1 0x200 0x202 0x204 0x206 0x208 0x20A 0x20E 0x218 0x21A 0x21C
P2 0x201 0x203 0x205 0x207 0x209 0x20B 0x21E 0x219 0x21B 0x21D
PB P3 0x220 0x222 0x224 0x226 0x228 0x22A
P4 0x221 0x223 0x225 0x227 0x229 0x22B
PC P5 0x240 0x242 0x244 0x246 0x248 0x24A
P6 0x241 0x243 0x245 0x247 0x249 0x24B
PD P7 0x260 0x262 0x264 0x266 0x268 0x26A
P8 0x261 0x263 0x265 0x267 0x269 0x26B
PE P9 0x280 0x282 0x284 0x286 0x288 0x28A
P10 0x281 0x283 0x285 0x287 0x289 0x28B
P11 0x2A0 0x2A2 0x2A4 0x2A6 0x2A8 0x2AA
PJ 0x320 0x322 0x324 0x326 0x328 Endast 4 bitar; delas med JTAG- stift.

Integrerad kringutrustning

Analog
  • analog-till-digital-omvandlare
MSP430-linjen erbjuder två typer av analog-till-digital-konvertering ( ADC). 10- och 12-bitars successiva approximationsomvandlare , såväl som en 16-bitars sigma-delta-omvandlare . Dataöverföringskontroller och en 16-ords omvandlings- och kontrollbuffert gör att MSP430 kan konvertera och lagra prover utan CPU-ingrepp, vilket minimerar strömförbrukningen.
  • Analog pool
Modulen Analog Pool (A-POOL) kan konfigureras som en ADC, DAC, komparator, SVS eller temperaturgivare. Det ger flexibilitet för användaren att programmera en serie analoga funktioner med endast en inställning.
  • Komparator A, A+
MSP430:s komparatormodul ger exakta lutning analog-till-digital omvandlingar. Övervakar externa analoga signaler och ger spännings- och resistorvärdesmätning. Kan välja strömlägen.
  • DAC12
DAC12-modulen är en 12-bitars spänningsutgångs-DAC med intern/extern referensval och programmerbar inställningstid för optimal strömförbrukning. Den kan konfigureras i 8- eller 12-bitarsläge. När flera DAC12-moduler finns kan de grupperas tillsammans för synkron uppdatering.
  • Op Amps
Har enkel strömförsörjning, lågströmdrift med rail-to-rail-utgångar och programmerbara inställningstider. Valbara konfigurationsalternativ för programvara: enhetsförstärkningsläge, komparatorläge, inverterande PGA, icke-inverterande PGA, differential- och instrumentförstärkare.
  • Sigma Delta (SD)
SD16/SD16_A/SD24_A-modulerna har var och en 16-/24-bitars sigma-delta A/D-omvandlare med en intern 1,2-V-referens. Varje omvandlare har upp till åtta helt differentiella multiplexade ingångar, inklusive en inbyggd temperatursensor. Omvandlarna är andra ordningens översamplande sigma-delta-modulatorer med valbara översamplingsförhållanden på upp till 1024 (SD16_A/SD24_A) eller 256 (SD16).
Timers
  • Basic timer (BT)
BT har två oberoende 8-bitars timer som kan kaskadkopplas för att bilda en 16-bitars timer/räknare. Båda timers kan läsas och skrivas av programvara. BT utökas för att tillhandahålla en integrerad RTC. En intern kalender kompenserar för månader med mindre än 31 dagar och inkluderar skottårskorrigering.
  • Realtidsklocka
RTC_A/B är 32-bitars hårdvaruräknarmoduler som förser klockräknare med en kalender, ett flexibelt programmerbart larm och kalibrering. RTC_B inkluderar ett omkopplingsbart batteribackupsystem som ger möjligheten för RTC:n att fungera när den primära strömförsörjningen brister.
  • 16-bitars timers
Timer_A, Timer_B och Timer_D är asynkrona 16-bitars timers/räknare med upp till sju fånga/jämföra register och olika driftlägen. Timrarna stöder flera fånga/jämförelser, PWM-utgångar och intervalltiming. De har också omfattande avbrottsmöjligheter. Timer_B introducerar tilläggsfunktioner som programmerbara timerlängder (8-, 10-, 12- eller 16-bitars) och dubbelbuffrade jämförelseregisteruppdateringar, medan Timer_D introducerar ett högupplöst läge (4 ns).
WDT+ utför en kontrollerad systemomstart efter att ett programvaruproblem uppstår. Om det valda tidsintervallet löper ut genereras en systemåterställning. Om watchdog-funktionen inte behövs i en applikation kan modulen konfigureras som en intervalltimer och kan generera avbrott vid valda tidsintervall.
System
  • Advanced Encryption Standard (AES)
AES-acceleratormodulen utför kryptering och dekryptering av 128-bitars data med 128-bitars nycklar enligt den avancerade krypteringsstandarden i hårdvara, och kan konfigureras med användarprogramvara.
  • Brown-Out Reset (BOR)
BOR-kretsen upptäcker låga matningsspänningar och återställer enheten genom att utlösa en POR-signal (power-on reset) när strömmen kopplas till eller tas bort. MSP430 MCU:s nolleffekt BOR-krets är kontinuerligt påslagen, inklusive i alla lågeffektlägen.
  • DMA-styrenhet (Direct Memory Access)
DMA-styrenheten överför data från en adress till en annan över hela adressintervallet utan CPU-intervention. DMA ökar genomströmningen av perifera moduler och minskar systemets strömförbrukning. Modulen har upp till tre oberoende överföringskanaler.
Även om MSP430:s DMA-delsystem är mycket kapabelt har det flera brister, varav den viktigaste är avsaknaden av en extern överföringsblixt. Även om en DMA-överföring kan triggas externt, finns det ingen extern indikation på att en överföring har slutförts. Följaktligen är DMA till och från externa källor begränsad till extern trigger per byte-överföringar, snarare än fulla block automatiskt via DMA. Detta kan leda till betydande komplexitet (som i att kräva omfattande handjustering av kod) vid implementering av processor till processor eller processor till USB-kommunikation. Den citerade referensen använder en obskyr timermod för att generera höghastighetsstrober för DMA-överföringar. Timrarna är inte tillräckligt flexibla för att enkelt kompensera för bristen på en extern DMA-överföringsblixt.
DMA-operationer som involverar ordöverföringar till byteplatser orsakar trunkering till 8 bitar snarare än konvertering till tvåbyteöverföringar. Detta gör DMA med A/D eller D/A 16 bitars värden mindre användbara än det skulle kunna vara (även om det är möjligt att DMA dessa värden via port A eller B på vissa versioner av MSP 430 med en externt synlig trigger per överföring som t.ex. en timerutgång).
  • Enhanced Emulation Module (EEM)
EEM tillhandahåller olika nivåer av felsökningsfunktioner som t.ex. 2-8 hårdvarubrytpunkter, komplexa brytpunkter, avbrott när läsning/skrivning inträffar på angiven adress, med mera. Inbäddad i alla flash-baserade MSP430-enheter.
  • Hårdvarumultiplikator
Vissa MSP430-modeller inkluderar en minnesmappad maskinvarumultiplikator kringutrustning som utför olika 16×16+32→33-bitars multiplicering-ackumuleringsoperationer. Ovanligt för MSP430 inkluderar den här kringutrustningen ett implicit 2-bitars skrivregister, vilket gör det i praktiken omöjligt att byta kontext . Denna kringutrustning stör inte CPU-aktiviteter och kan nås av DMA. MPY på alla MSP430F5xx och vissa MSP430F4xx-enheter har upp till 32-bitars x 32-bitars.
De 8 registren som används är:
Adress namn Fungera
0x130 MPY Operand1 för osignerad multiplikation
0x132 MPYS Operand1 för signerad multiplikation
0x134 MAC Operand1 för osignerad multiplicera-ackumulera
0x136 MACS Operand1 för signerad multiplicera-ackumulera
0x138 OP2 Andra operanden för multiplikationsoperation
0x13A ResLo Lågt ord av multiplicera resultat
0x13C ResHi Högt ord av multiplicera resultat
0x13E SumExt Utför multiplicera-ackumulera
Den första operanden skrivs till ett av fyra 16-bitars register. Adressen som skrivs avgör operationen som utförs. Medan det inskrivna värdet kan läsas tillbaka från vilket som helst av registren, kan registernumret som skrivits till inte återställas.
Om en multiplicera-ackumuleringsoperation önskas måste ResLo- och ResHi -registren också initieras.
Sedan, varje gång en skrivning utförs till OP2- registret, utförs en multiplikation och resultatet lagras eller adderas till resultatregistren. SumExt - registret är ett skrivskyddat register som innehåller utförandet av additionen (0 eller 1) i händelse av en multiplikation utan tecken), eller teckenförlängningen av 32-bitars summan (0 eller -1) i händelse av en undertecknad multiplicera. I fallet med en multiplicerad ackumulering med tecken SumExt- värdet kombineras med den mest signifikanta biten av det tidigare SumHi- innehållet för att bestämma det sanna genomföringsresultatet (-1, 0 eller +1).
Resultatet är tillgängligt efter tre klockcykler av fördröjning, vilket är den tid som krävs för att hämta en följande instruktion och ett följande indexord. Således är fördröjningen vanligtvis osynlig. En explicit fördröjning krävs endast om du använder ett indirekt adresseringsläge för att hämta resultatet.
  • Memory Protection Unit (MPU)
FRAM MPU skyddar mot oavsiktlig skrivning till angivna skrivskyddade minnessegment eller exekvering av kod från ett konstant minne. MPU:n kan ställa in valfri portionering av minne med bitnivåadressering, vilket gör hela minnet tillgängligt för läsning, skrivning och exekvering av operationer i FRAM-enheter.
  • Power Management Module (PMM)
PMM genererar en matningsspänning för kärnlogiken och tillhandahåller flera mekanismer för övervakning och övervakning av både den spänning som appliceras på enheten och den spänning som genereras för kärnan. Den är integrerad med en lågavbrottsspänningsregulator (LDO), brown-out reset (BOR) och en matningsspänningsövervakare och monitor.
  • Supply-Voltage Supervisor (SVS)
SVS är en konfigurerbar modul som används för att övervaka AVCC-matningsspänningen eller en extern spänning. SVS kan konfigureras för att ställa in en flagga eller generera en startåterställning (POR) när matningsspänningen eller extern spänning sjunker under en användarvald tröskel.
Kommunikation och gränssnitt
  • Kapacitiva Touch Sense I/O
Den integrerade kapacitiva touch Sense I/O-modulen erbjuder flera fördelar för applikationer med pekknappar och pekreglage. Systemet kräver inga externa komponenter för att skapa självsvängningen (reducerande materialförteckning) och kondensatorn (som definierar frekvensen för självsvängningen) kan anslutas direkt. Dessutom finns det inget behov av externa MUX:er för att tillåta flera pads och varje I/O-pad kan direkt fungera som en cap sense-ingång. En hysteres på ~0,7 V säkerställer robust drift. Styrning och sekvensering sker helt i mjukvara.
  • I/O för allmänna ändamål
MSP430-enheter har upp till 12 digitala I/O-portar implementerade. Varje port har åtta I/O-stift. Varje I/O-stift kan konfigureras som antingen ingång eller utgång, och kan läsas individuellt eller skrivas till. Portarna P1 och P2 har avbrottsmöjlighet. MSP430F2xx, F5xx och vissa F4xx-enheter har inbyggda, individuellt konfigurerbara pull-up eller pull-down motstånd.
  • Sub-GHz RF Front End
Den flexibla CC1101 sub-1 GHz transceivern levererar den känslighet och blockerande prestanda som krävs för att uppnå framgångsrika kommunikationslänkar i vilken RF-miljö som helst. Den har också låg strömförbrukning och stöder flexibla datahastigheter och moduleringsformat.
  • USART (UART, SPI, I²C)
Det universella synkrona/asynkrona mottagnings-/sändningsgränssnittet (USART) stöder asynkron RS-232 och synkron SPI-kommunikation med en hårdvarumodul. MSP430F15x/16x USART-modulerna stöder även I²C, programmerbar baudhastighet och oberoende avbrottskapacitet för mottagning och sändning.
  • USB
USB-modulen är helt kompatibel med USB 2.0-specifikationen och stöder kontroll, avbrott och bulköverföringar med en datahastighet på 12 Mbps (full hastighet). Modulen stöder USB-avstängning, återupptagande och fjärrväckning och kan konfigureras för upp till åtta ingångs- och åtta utgångsändpunkter. Modulen inkluderar ett integrerat fysiskt gränssnitt (PHY); en faslåst slinga (PLL) för USB-klockgenerering; och ett flexibelt strömförsörjningssystem som möjliggör bussdrivna och självförsörjande enheter.
  • USCI (UART, SPI, I²C, LIN, IrDA)
Modulen för universellt seriellt kommunikationsgränssnitt (USCI) har två oberoende kanaler som kan användas samtidigt. Den asynkrona kanalen (USCI_A) stöder UART-läge; SPI-läge; pulsformning för IrDA; och automatisk överföringshastighetsdetektering för LIN-kommunikation. Den synkrona kanalen (USCI_B) stöder I²C- och SPI-lägen.
  • USI (SPI, I²C)
Den universella seriella gränssnittsmodulen (USI) är ett synkront seriellt kommunikationsgränssnitt med en datalängd på upp till 16-bitar och kan stödja SPI- och I²C-kommunikation med minimal programvara.
  • Infraröd modulering
Denna funktion är tillgänglig på MSP430FR4xxx- och MSP430FR2xxx-serierna och konfigureras via SYSCFG-registeruppsättningen. Denna kringutrustning knyter an till annan kringutrustning (Timers, eUSCI_A) för att generera en IR-modulerad signal på ett utgångsstift. (sida 43)
Mätning
  • ESP430 (integrerad i FE42xx-enheter)
ESP430CE-modulen utför mätningsberäkningar oberoende av CPU. Modulen har separat SD16, HW-multiplikator och den inbyggda ESP430-processormotorn för enfas energimätningsapplikationer.
  • Scan Interface (SIF)
SIF-modulen, en programmerbar tillståndsmaskin med en analog frontend, används för att automatiskt mäta linjär eller roterande rörelse med lägsta möjliga strömförbrukning. Modulen har stöd för olika typer av LC och resistiva sensorer och för kvadraturkodning.
Display
  • LCD/LCD_A/LCD_B
LCD/LCD_A-styrenheten driver direkt LCD-skärmar för upp till 196 segment. Stöder statiska, 2-mux, 3-mux och 4-mux LCD-skärmar. LCD_A-modulen har integrerad laddpump för kontrastkontroll. LCD_B möjliggör blinkning av enskilda segment med separat blinkande minne.
  • LCD_E
LCD_E-kontrollern kommer med de nyare MSP430FR4xxx-seriens mikrokontroller och driver direkt LCD-skärmar upp till 448 segment. Stöder statiska, 2-mux, 3-mux, 4-mux, 5-mux, 6-mux, 7-mux, 8-mux (1/3 bias) LCD-skärmar. Segment- och Common-stift kan omprogrammeras till tillgängliga LCD-drivstift. Denna kringutrustning kan drivas i LPM3.5 (RTC running+Main CPU core shutdown low-power mode).

Mjukvaruutvecklingsmiljö

Texas Instruments tillhandahåller olika hårdvaruexperimentkort som stöder stora (cirka två kvadratcentimeter) och små (ungefär en millimeter kvadrat) MSP430-chips. TI tillhandahåller också verktyg för programvaruutveckling, både direkt och i samarbete med partners (se hela listan över kompilatorer, assemblerare och IDE) . En sådan verktygskedja är IAR C/C++- kompilatorn och den integrerade utvecklingsmiljön , eller IDE. En Kickstart-utgåva kan laddas ner gratis från TI eller IAR; den är begränsad till 8 KB C/C++-kod i kompilatorn och debuggern ( assembly-språkprogram av alla storlekar kan utvecklas och felsöka med denna gratis verktygskedja).

TI kombinerar också en version av sin egen kompilator och verktyg med sin Eclipse -baserade Code Composer Studio IDE (CCS). Den säljer fullfjädrade versioner och erbjuder en gratisversion för nedladdning som har en kodstorleksgräns på 16 KB. CCS stöder in-circuit emulatorer och inkluderar en simulator och andra verktyg; den kan också fungera med andra processorer som säljs av TI.

För de som är mer bekväma med Arduino finns det också en annan mjukvara Energia , en öppen källkod för elektronikprototypplattform med målet att föra Wiring och Arduino-ramverket till Texas Instruments MSP430-baserade LaunchPad där Arduino-kod kan exporteras för programmering av MSP430-chips . Den senaste versionen av Energia stöder MSP-EXP430G2xxx, MSP-EXP430FR5739, MSP-EXP430FR5969, MSP-EXP430FR5994, MSP-EXP430F5529LP, Stellaris EK-LM4F120XL-4XL-12EK3, Tiva-C4XL, Tiva-C 12EK3, Tiva-C 12EK3, Tiva 4XL, Tiva 4XL, Tiva-C 4XL XL, CC3200 WiFi LaunchPad.

Gemenskapen med öppen källkod producerar en fritt tillgänglig verktygsuppsättning för mjukvaruutveckling baserad på GNU-verktygsuppsättningen . GNU-kompilatorn avvisas för närvarande i tre versioner:

( MSPGCC )

( MSPGCC Uniarch )

TI rådfrågade RedHat för att tillhandahålla officiellt stöd för MSP430-arkitekturen till GNU Compiler Collection C/C++-kompilatorn. Denna msp430-elf-gcc-kompilator stöds av TI:s Code Composer Studio version 6.0 och högre.

Det finns ett mycket tidigt llvm-msp430- projekt, som så småningom kan ge bättre stöd för MSP430 i LLVM .

Andra kommersiella utvecklingsverktygsuppsättningar, som inkluderar redaktör, kompilator, länkare, assembler, debugger och i vissa fall kodguider, är tillgängliga. VisSim , ett blockdiagramspråk för modellbaserad utveckling, genererar effektiv fixpunkt C-Code direkt från diagrammet. VisSim-genererad kod för en ADC+PWM-baserad PID-kontroll med sluten slinga på F2013 kompilerar till mindre än 1 KB flash och 100 byte RAM. VisSim har on-chip perifera block för hela MSP430-familjen I²C, ADC, SD16, PWM.

Lågkostnadsutvecklingsplattformar

MSP430F2013 och dess syskon skiljer sig åt av det faktum att det (förutom MSP430G2 Value Line ) är den enda MSP430-delen som är tillgänglig i ett dubbelt in-line-paket (DIP). Andra varianter i denna familj finns endast i olika ytmonteringspaket. TI har gjort en del problem med att stödja utvecklingsplattformen eZ430 genom att göra råchipsen lätta för hobbyister att använda i prototyper.

eZ430-F2013

TI har tacklat lågbudgetproblemet genom att erbjuda ett mycket litet experimentkort, eZ430-F2013 , på ett USB-minne (nu föråldrat). Detta gjorde det enkelt för designers att välja MSP430-chippet för billiga utvecklingsplattformar som kan användas med en dator. eZ430-F2013 innehåller en MSP430F2013 mikrokontroller på ett löstagbart prototypkort och medföljande CD med utvecklingsprogramvara. Det är användbart [ citat behövs ] för skolor, hobbyister och garageuppfinnare. Det välkomnas också [ citat behövs ] av ingenjörer i stora företag som prototypar projekt med kapitalbudgetproblem.

MSP430 LaunchPad

Texas Instruments släppte MSP430 LaunchPad i juli 2010. MSP430 LaunchPad har en inbyggd blixt-emulator , USB , 2 programmerbara lysdioder och 1 programmerbar tryckknapp. Som ett tillägg till experiment med LaunchPad finns ett sköldkort tillgängligt.

TI har sedan dess tillhandahållit flera nya LaunchPads baserade på MSP430-plattformen:

Alla tre av dessa LaunchPads inkluderar en eZ-FET JTAG-debugger med backchannel UART som kan 1Mbit/s hastigheter. FRAM LaunchPads (t.ex. MSP-EXP430FR5969, MSP-EXP430FR4133) inkluderar EnergyTrace, en funktion som stöds av TI:s Code Composer Studio IDE för övervakning och analys av strömförbrukning.

Felsökningsgränssnitt

I likhet med andra mikrokontrollerleverantörer har TI utvecklat ett tvåtrådsfelsökningsgränssnitt som finns på några av deras MSP430-delar som kan ersätta det större JTAG-gränssnittet. Utvecklingsverktyget eZ430 innehåller ett komplett USB-anslutet flashemuleringsverktyg (FET) för detta nya tvåtrådsprotokoll, kallat Spy-Bi-Wire av TI. Spy-Bi-Wire introducerades initialt på endast de minsta enheterna i 'F2xx-familjen med begränsat antal I/O-stift, som MSP430F20xx, MSP430F21x2 och MSP430F22x2. Stödet för Spy-Bi-Wire har utökats med introduktionen av den senaste '5xx-familjen, där alla enheter har stöd för Spy-Bi-Wire-gränssnitt förutom JTAG.

Fördelen med Spy-Bi-Wire-protokollet är att det bara använder två kommunikationslinjer, varav en är den dedikerade _RESET-linjen. JTAG-gränssnittet på de nedre MSP430-delarna är multiplexerat med allmänna I/O-linjer. Detta gör det relativt svårt att felsöka kretsar byggda kring de små chipsen med låg I/O-budget, eftersom den fullständiga 4-stifts JTAG-hårdvaran kommer i konflikt med allt annat som är kopplat till dessa I/O-linjer. Detta problem lindras med de Spy-Bi-Wire-kapabla chipsen, som fortfarande är kompatibla med det normala JTAG-gränssnittet för bakåtkompatibilitet med de gamla utvecklingsverktygen.

JTAG-felsöknings- och flash-programmeringsverktyg baserade på OpenOCD och ofta använda i ARM- arkitekturgemenskapen är inte tillgängliga för MSP430. Programmeringsverktyg speciellt designade för MSP430 är marginellt billigare än JTAG-gränssnitt som använder OpenOCD. Men skulle det upptäckas mitt i projektet att mer MIPS, mer minne och mer I/O kringutrustning behövs, kommer dessa verktyg inte att överföras till en processor från en annan leverantör.

MSP430 CPU

MSP430-processorn använder en von Neumann-arkitektur , med ett enda adressutrymme för instruktioner och data. Minnet är byte- adresserat, och par av byte kombineras little-endian för att göra 16-bitars ord .

Processorn innehåller 16 16-bitars register, varav fyra är dedikerade för speciella ändamål: R0 är programräknaren, R1 är stackpekaren , R2 är statusregistret och R3 är en "konstant generator" som läser som noll och ignorerar skriver. Tillagda adresslägeskodningar med R3 och R2 tillåter totalt sex vanliga konstanta värden (0, 1, 2, 4, 8 och −1) utan att behöva ett omedelbart operandord. R4 till R15 är tillgängliga för allmänt bruk.

Instruktionsuppsättningen är mycket enkel: 27 instruktioner finns i tre familjer. De flesta instruktioner förekommer i .B (8-bitars byte) och .W (16-bitars ord) suffixversioner, beroende på värdet på en B/W-bit: biten sätts till 1 för 8-bitar och 0 för 16- bit. Ett saknat suffix motsvarar .W. Byteoperationer till minnet påverkar endast den adresserade byten, medan byteoperationer till register rensar den mest signifikanta byten.

MSP430 instruktionsset
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Instruktion
0 0 0 1 0 0 opcode S/V Som Registrera Enkeloperand aritmetik
0 0 0 1 0 0 0 0 0 S/V Som Registrera RRC Rotera åt höger (1 bit) genom att bära
0 0 0 1 0 0 0 0 1 0 Som Registrera SWPB Byt byte
0 0 0 1 0 0 0 1 0 S/V Som Registrera RRA Rotera åt höger (1 bit) aritmetik
0 0 0 1 0 0 0 1 1 0 Som Registrera SXT Sign utöka byte till ord
0 0 0 1 0 0 1 0 0 S/V Som Registrera PUSH Tryck värdet på stapeln
0 0 0 1 0 0 1 0 1 0 Som Registrera RING Subrutinsamtal; tryck på PC och flytta källan till PC
0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 RETI Återgå från avbrott; pop SR sedan pop PC
0 0 1 skick 10-bitars signerad offset Villkorligt hopp; PC = PC + 2×offset + 2
0 0 1 0 0 0 10-bitars signerad offset JNE / JNZ Hoppa om inte lika/noll
0 0 1 0 0 1 10-bitars signerad offset JEQ / JZ Hoppa om lika/noll
0 0 1 0 1 0 10-bitars signerad offset JNC / JLO Hoppa om ingen bär/sänk
0 0 1 0 1 1 10-bitars signerad offset JC / JHS Hoppa om du bär/högre eller samma
0 0 1 1 0 0 10-bitars signerad offset JN Hoppa om negativt
0 0 1 1 0 1 10-bitars signerad offset JGE Hoppa om större eller lika
0 0 1 1 1 0 10-bitars signerad offset JL Hoppa om mindre
0 0 1 1 1 1 10-bitars signerad offset JMP Jump (villkorslöst)
opcode källa Ad S/V Som destination Två-operand aritmetik
0 1 0 0 källa Ad S/V Som destination MOV Flytta källan till destinationen
0 1 0 1 källa Ad S/V Som destination ADD Lägg till källa till destination
0 1 1 0 källa Ad S/V Som destination ADDC Lägg till källa och bär till destinationen
0 1 1 1 källa Ad S/V Som destination SUBC Subtrahera källa från destination (med carry)
1 0 0 0 källa Ad S/V Som destination SUB Subtrahera källa från destination
1 0 0 1 källa Ad S/V Som destination CMP Jämför (låtsas subtrahera) källa från destination
1 0 1 0 källa Ad S/V Som destination DADD Decimal lägg till källa till destination (med carry)
1 0 1 1 källa Ad S/V Som destination BIT Testa bitar av källa OCH destination
1 1 0 0 källa Ad S/V Som destination BIC Bit clear (dest &= ~src)
1 1 0 1 källa Ad S/V Som destination BIS Bit set (logiskt ELLER)
1 1 1 0 källa Ad S/V Som destination XOR Exklusiv eller källa med destination
1 1 1 1 källa Ad S/V Som destination AND Logisk AND källa med destination (dest &= src)

Instruktionerna är 16 bitar, följt av upp till två 16-bitars förlängningsord. Adresseringslägen specificeras av 2-bitars As-fältet och 1-bitars annonsfältet. Vissa specialversioner kan konstrueras med R0, och andra lägen än register direkt med R2 (statusregistret) och R3 (konstantgeneratorn) tolkas speciellt. Annons kan endast använda en delmängd av adresseringslägena för As.

Indexerade adresseringslägen lägger till ett 16-bitars förlängningsord till instruktionen. Om både källa och destination är indexerade, kommer källtilläggsordet först. x hänvisar till nästa förlängningsord i instruktionsströmmen i tabellen nedan.

MSP430 adresseringslägen
Som Ad Registrera Syntax Beskrivning
00 0 n R n Registrera dig direkt. Operanden är innehållet i R n .
01 1 n x ( Rn ) Indexerad. Operanden finns i minnet på adressen Rn + x .
10 n @R n Registrera dig indirekt. Operanden finns i minnet på adressen i Rn .
11 n @ Rn + Indirekt autoinkrement. Som ovan ökar registret med 1 eller 2.
Adresseringslägen med R0 (PC)
01 1 0 (PC) ADDR Symbolisk. Motsvarar x(PC). Operaanden finns i minnet på adressen PC+ x .
11 0 (PC) # x Omedelbar. Motsvarar @PC+. Operanden är nästa ord i instruktionsströmmen.
Adresseringslägen med R2 (SR) och R3 (CG), specialfallsavkodning
01 1 2 (SR) & ADDR Absolut. Operanden finns i minnet på adressen x .
10 2 (SR) #4 Konstant. Operanden är konstant 4.
11 2 (SR) #8 Konstant. Operanden är konstant 8.
00 3 (CG) #0 Konstant. Operanden är konstanten 0.
01 3 (CG) #1 Konstant. Operanden är konstanten 1. Det finns inget indexord.
10 3 (CG) #2 Konstant. Operanden är konstant 2.
11 3 (CG) #−1 Konstant. Operanden är konstanten −1.

Instruktioner tar i allmänhet 1 cykel per ord som hämtas eller lagras, så instruktionstiderna sträcker sig från 1 cykel för en enkel registerregisterinstruktion till 6 cykler för en instruktion med både källa och destination indexerade.

MSP430X-tillägget med 20-bitars adressering lägger till ytterligare instruktioner som kan kräva upp till 10 klockcykler. Att ställa in eller rensa en perifer bit tar två klockor. Ett hopp, taget eller inte, tar två klockor. Med 2xx-serien är 2 MCLKs 125 ns vid 16 MHz.

Flyttningar till programräknaren är tillåtna och utför hopp. Retur från subrutinen implementeras till exempel som MOV @SP+,PC .

När R0 (PC) eller R1 (SP) används med adresseringsläget för autoinkrement, ökas de alltid med två. Andra register (R4 till R15) inkrementeras med operandstorleken, antingen 1 eller 2 byte.

Statusregistret innehåller 4 aritmetiska statusbitar, en global avbrottsaktivering och 4 bitar som inaktiverar olika klockor för att gå in i lågeffektläge. Vid hantering av ett avbrott sparar processorn statusregistret i stacken och rensar lågeffektbitarna. Om avbrottshanteraren inte modifierar det sparade statusregistret, kommer återgång från avbrottet att återuppta det ursprungliga lågenergiläget.

Pseudooperationer

Många tillagda instruktioner implementeras som alias för former av ovanstående. Till exempel finns det ingen specifik "return from subroutine"-instruktion, utan den är implementerad som "MOV @SP+,PC". Emulerade instruktioner är:

MSP430 Emulerade instruktioner
Emulerad Faktisk Beskrivning
ADC . x dst ADDC. x #0, dst Lägg till transport till destinationen
BR dst MOV dst ,PC Filial till destination
CLR . x dst MOV. x #0, dst Rensa destination
CLRC BIC #1,SR Tydlig bärbit
CLRN BIC #4,SR Rensa negativ bit
CLRZ BIC #2,SR Rensa nollbit
DADC . x dst PAPPA. x #0, dst Decimal lägg till bär till destination
DEC . x dst SUB. x #1, dst Minskning
DECD . x dst SUB. x #2, dst Dubbel minskning
DINT BIC #8,SR Inaktivera avbrott
EINT BIS #8,SR Aktivera avbrott
INC . x dst LÄGG TILL. x #1, dst Ökning
INCD . x dst LÄGG TILL. x #2, dst Dubbel ökning
INV . x dst XOR. x #−1, dst Invertera
NEJ MOV #0,R3 Ingen operation
POP dst MOV @SP+, dst Pop från stapeln
RÖTA MOV @SP+,PC Återgå från subrutinen
RLA . x dst LÄGG TILL. x dst , dst Rotera vänster aritmetik (skifta vänster 1 bit)
RLC . x dst ADDC. x dst , dst Vrid åt vänster genom att bära
SBC . x dst SUBC. x #0, dst Subtrahera lån (1−carry) från destinationen
SETC BIS #1,SR Sätt bärbit
SETN BIS #4,SR Ställ in negativ bit
SETZ BIS #2,SR Ställ in noll bit
TST . x dst CMP. x #0, dst Testdestination

Observera att de omedelbara konstanterna −1 (0xffff), 0, 1, 2, 4 och 8 kan specificeras i en enordsinstruktion utan att behöva en separat omedelbar operand.

MSP430X 20-bitars tillägg

Den grundläggande MSP430 kan inte stödja mer minne (ROM + RAM + kringutrustning) än dess 64K adressutrymme. För att stödja detta använder en utökad form av MSP430 20-bitars register och ett 20-bitars adressutrymme, vilket tillåter upp till 1 MB minne. Detta använder samma instruktionsuppsättning som grundformuläret, men med två tillägg:

  1. Ett begränsat antal 20-bitars instruktioner för vanliga operationer, och
  2. En allmän prefix-ord-mekanism som kan utöka vilken instruktion som helst till 20 bitar.

De utökade instruktionerna inkluderar några tillagda förmågor, särskilt multibit-skift och multiregister laddning/lagringsoperationer.

20-bitars operationer använder längdsuffixet "A" (för adress) istället för .B eller .W. .W är fortfarande standard. I allmänhet rensar kortare operationer högordningens bitar i destinationsregistret.

De nya instruktionerna är följande:

MSP430X utökade instruktioner
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Andra ordet Instruktion
0 0 0 0 källa 0 0 opcode destination Förlängda minnesregister flyttas
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 addr[19:16] 0 0 1 0 dst adr[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 destination Bitskiften (1–4 bitars positioner)
0 0 0 0 n−1 0 0 0 1 0 W/A dst RRCM . x # n ,R dst (rotera höger genom bäraren.)
0 0 0 0 n−1 0 1 0 1 0 W/A dst RRAM . x # n ,R dst (Rotera höger aritmetik, aka skift åt höger undertecknad.)
0 0 0 0 n−1 1 0 0 1 0 W/A dst RLAM . x # n ,R dst (Rotera vänster aritmetik, aka skift vänster.)
0 0 0 0 n−1 1 1 0 1 0 W/A dst RRUM . x # n ,R dst (Rotera höger osignerad, aka skift höger logiskt.)
0 0 0 0 källa 0 1 1 op. destination Utökade register-minne flyttar
0 0 0 0 src 0 1 1 0 addr[19:16] adr[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 källa 1 opcode destination Utökad ALU-verksamhet
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] ADDA #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. läge varierar CALLA
0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 RETI (samma som MSP430)
0 0 0 1 0 0 1 1 0 1 Som Registrera CALLA källa
0 0 0 1 0 0 1 1 1 0 0 0 abs[19:16] abs[15:0] CALLA &abs20
0 0 0 1 0 0 1 1 1 0 0 1 x[19:16] x[15:0] CALLA x(PC)
0 0 0 1 0 0 1 1 1 0 1 0 (reserverad)
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 (reserverad)
0 0 0 1 0 1 dir W/A n−1 Registrera Push/pop n register som slutar med specificerad
0 0 0 1 0 1 0 W/A n−1 src PUSHM . x # n ,R src Tryck på 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

Alla andra instruktioner kan ha ett prefixord tillagt som utökar dem till 20 bitar. Prefixordet innehåller en tillagd operandstorleksbit, som kombineras med den befintliga B/W-biten för att specificera operandstorleken. Det finns en oanvänd storlekskombination; indikationer tyder på att den kan användas i framtiden för en 32-bitars operandstorlek.

Prefixordet finns i två format, och valet mellan dem beror på instruktionen som följer. Om instruktionen har några icke-registeroperander används den enkla formen, som tillhandahåller 2 4-bitars fält för att utöka eventuell offset eller omedelbar konstant i instruktionsströmmen till 20 bitar.

Om instruktionen är register-to-register används ett annat förlängningsord. Detta inkluderar en "ZC"-flagga som undertrycker carry-in (användbart för instruktioner som DADD som alltid använder bärbiten), och en upprepningsräkning. Ett 4-bitars fält i tilläggsordet kodar antingen ett upprepningsantal (0–15 repetitioner utöver den initiala exekveringen), eller ett registernummer som innehåller ett 4-bitars upprepningsantal.

MSP430X prefixord
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Instruktion
0 0 0 1 1 A/L 0 0 Förlängningsord
0 0 0 1 1 src[19:16] A/L 0 0 dst[19:16] Minnesoperandförlängning
0 0 0 1 1 0 0 ZC 0 A/L 0 0 n−1 Registrera operandtillägg (omedelbart antal upprepade gånger)
0 0 0 1 1 0 0 ZC 1 A/L 0 0 Rn Registrera operandtillägg (registrera antal upprepade gånger)

MSP430 adressutrymme

Den allmänna layouten för MSP430-adressutrymmet är:

0x0000–0x0007
Processor specialfunktionsregister (avbrottskontrollregister)
0x0008–0x00FF
8-bitars kringutrustning. Dessa måste nås med 8-bitars laddningar och butiker.
0x0100–0x01FF
16-bitars kringutrustning. Dessa måste nås med 16-bitars laddningar och butiker.
0x0200–0x09FF
Upp till 2048 byte RAM .
0x0C00–0x0FFF
1024 byte bootstrap loader ROM (endast flash-delar).
0x1000–0x10FF
256 byte data flash-ROM (endast flash-delar).
0x1800-0x19FF
512 byte data FRAM (de flesta FRAM MCUs, användarskrivbara utan kalibreringsdata)
0x1100–0x38FF
Utökat RAM på modeller med mer än 2048 byte RAM. (0x1100–0x18FF är en kopia av 0x0200–0x09FF)
0x1100–0xFFFF
Upp till 60 kilobyte program-ROM. Mindre ROM börjar på högre adresser. De sista 16 eller 32 byten är avbrottsvektorer .

Några få modeller inkluderar mer än 2048 byte RAM; i så fall börjar RAM-minnet på 0x1100. De första 2048 byten (0x1100–0x18FF) speglas vid 0x0200–0x09FF för kompatibilitet. Vissa nyare modeller böjer också reglerna för 8-bitars och 16-bitars kringutrustning, vilket tillåter 16-bitars åtkomst till kringutrustning i 8-bitars periferiadressintervallet.

Det finns en ny utökad version av arkitekturen (som heter MSP430X) som tillåter ett 20-bitars adressutrymme . Det tillåter tillagd program-ROM från 0x10000.

'5xx-serien har ett kraftigt omdesignat adressutrymme, med den första 4K som ägnas åt kringutrustning och upp till 16K RAM.

  1. ^ Evanczuk, Stephen (20 augusti 2013). "Bildspel: De mest populära MCU:erna någonsin" . edn.com . Nätverk för elektronikdesign . Hämtad 3 september 2020 .
  2. ^ MSP430 kommer att köras på druvor – video på YouTube
  3. ^ a b D. Peters, D. Raskovic och D. Thorsen, "Ett energieffektivt parallellt inbäddat system för små satellittillämpningar", ISAST - transaktioner på datorer och intelligenta system, vol. 1(2), 2009
  4. ^ Lägsta effekt MSP430 mikrokontroller från Texas Instruments
  5. ^ a b http://www.ti.com/lit/slau445 [ bar URL PDF ]
  6. ^ http://www.energia.nu , Energias hemsida
  7. ^ MSP430-artikel [ permanent död länk ] publicerad i IEEE- tidningen.
  8. ^ Visuella lösningar
  9. ^ MSP430 LaunchPad (MSP-EXP430G2) , Texas Instruments Embedded Processors Wiki
  10. ^ "MSP430 Ultra-Low-Power Microcontroller" (PDF) . Texas Instruments . Hämtad 9 juli 2008 . [ permanent död länk ]
  11. ^ Storleksbiten heter A/L , där L (lång) används av andra processorer för att indikera 32-bitars operander. Även beskrivningen av SXTX-instruktionen (MSP430F5xx Family User's Guide alau208f sidan 237) beskriver effekten av instruktionen i registerbitarna 20–31.

externa länkar

Gemenskaps- och informationssidor

Visuell programmering C-kodgeneratorer

Kompilatorer, assemblerare och IDE:er

Gratis kompilator och IDE

Mest populära obegränsade IDE:er och kompilatorer

Diverse IDE

Lista över felsökningsverktyg (ej komplett)

namn Tillverkare Gränssnitt Protokoll Status
MSP-FET430PIF TI Parallell port JTAG
MSP-FET430UIF TI USB-gränssnitt JTAG, Spy-Bi-Wire
MSP-FET TI USB-gränssnitt JTAG, Spy-Bi-Wire
MSP-430 LaunchPad TI USB-gränssnitt Spy-Bi-Wire
MSP-430 LaunchPad eZ-FET TI USB-gränssnitt Spy-Bi-Wire
eZ430-F2013 TI USB-gränssnitt Spy-Bi-Wire föråldrad
eZ430-RF2500 TI USB-gränssnitt Spy-Bi-Wire
FETP SoftBaugh Parallell port JTAG
USBP SoftBaugh USB-gränssnitt JTAG, Spy-Bi-Wire upphört
MSP430-JTAG Olimex Parallell port JTAG
MSP430-JTAG-ISO Olimex USB-gränssnitt JTAG, Spy-Bi-Wire föråldrad
MSP430-JTAG-ISO-MK2 Olimex USB-gränssnitt JTAG, Spy-Bi-Wire
MSP430-JTAG-Tiny Olimex USB-gränssnitt JTAG, Spy-Bi-Wire hittades inte
MSP430-JTAG-TINY-V2 Olimex USB-gränssnitt JTAG?, Spy-Bi-Wire
MSP430-JTAG-RF Olimex USB-gränssnitt JTAG, Spy-Bi-Wire
FlashPro-CC Elprotronic USB-gränssnitt JTAG, Spy-Bi-Wire, BSL
VisSim /ECD Visuella lösningar USB-gränssnitt JTAG, Spy-Bi-Wire
LA-3713 Lauterbach USB-gränssnitt / Ethernet JTAG, Spy-bi-Wire

Andra verktyg