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 |
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
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:
- intern oscillator ,
- timer inklusive pulsbreddsmodulering (PWM),
- watchdog timer (watchdog),
- USART ,
- Serial Peripheral Interface (SPI) buss,
- Inter-integrerad krets ( I²C ),
- 10/12/14/16/24-bitars analog-till-digital-omvandlare ( ADC),
- och brownout - återställningskretsar .
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.
- Effektspecifikationsöversikt, så låg som:
- 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
- Enhetsparametrar
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
- Effektspecifikationsöversikt, så låg som:
- 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
- Enhetsparametrar
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
- Ultralåg effekt, så låg som (@2,2 V):
- 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
- Enhetsparametrar
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.
- Effektspecifikationsöversikt, så låg som:
- 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
- Enhetsparametrar:
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.
- Effektspecifikationsöversikt, så låg som:
- 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
- Enhetsparametrar:
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.
- Effektspecifikationsöversikt, så låg som:
- 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
- Enhetsparametrar:
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.
- Effektspecifikationsöversikt, så låg som:
- 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
- Enhetsparametrar:
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
- Effektspecifikationsöversikt, så låg som:
- 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
- Enhetsparametrar:
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
- Effektspecifikationsöversikt, så låg som:
- 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
- Enhetsparametrar:
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
- Effektspecifikationsöversikt, så låg som:
- 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
- Enhetsparametrar:
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
- Enhetsdefinitioner:
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.
|
|
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).
-
- Watchdog (WDT+)
- 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-
ochResHi
-registren också initieras.
- Om en multiplicera-ackumuleringsoperation önskas måste
- 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 teckenSumExt-
värdet kombineras med den mest signifikanta biten av det tidigareSumHi-
innehållet för att bestämma det sanna genomföringsresultatet (-1, 0 eller +1).
- Sedan, varje gång en skrivning utförs till
- 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:
- MSP-EXP430F5529LP har MSP430F5529 USB-enhetskompatibel MCU med 128KB blixt och 8KB SRAM
- MSP-EXP430FR5969 har MSP430FR5969 FRAM MCU med 64KB FRAM och 2KB SRAM
- MSP-EXP430FR4133 har MSP430FR4133 FRAM MCU med 16KB FRAM, 2KB SRAM och inbyggd LCD
- MSP-EXP430FR6989 har MSP430FR6989 FRAM MCU med 128KB FRAM, 2KB SRAM, inbyggd LCD och Extended Scan Interface kringutrustning
- MSP-EXP430FR2311 har MSP430FR2311 FRAM MCU med 4KB FRAM, 1KB SRAM, OpAmp och Transimpedance Amplifier kringutrustning
- MSP-EXP430FR2433 har MSP430FR2433 FRAM MCU med 15,5KB FRAM, 4KB SRAM
- MSP-EXP430FR2355 har MSP430FR2355 FRAM MCU med 32KB FRAM, 4KB SRAM, 12-bitars ADC, 12-bitars DAC, OpAmp/PGA, ICC för kapslade avbrott
- MSP-EXP430FR5994 har MSP430FR5994 FRAM MCU med 256KB FRAM, 8KB SRAM, 12-bitars ADC och LEA DSP kringutrustning
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.
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.
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:
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:
- Ett begränsat antal 20-bitars instruktioner för vanliga operationer, och
- 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:
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.
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.
- ^ 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 .
- ^ MSP430 kommer att köras på druvor – video på YouTube
- ^ 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
- ^ Lägsta effekt MSP430 mikrokontroller från Texas Instruments
- ^ a b http://www.ti.com/lit/slau445 [ bar URL PDF ]
- ^ http://www.energia.nu , Energias hemsida
- ^ MSP430-artikel [ permanent död länk ] publicerad i IEEE- tidningen.
- ^ Visuella lösningar
- ^ MSP430 LaunchPad (MSP-EXP430G2) , Texas Instruments Embedded Processors Wiki
- ^ "MSP430 Ultra-Low-Power Microcontroller" (PDF) . Texas Instruments . Hämtad 9 juli 2008 . [ permanent död länk ]
-
^ Storleksbiten heter
A/L
, därL
(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
- TI MSP430 hemsida
- MSP430 TITAN Development Board
- TI E2E MSP430 Community-forum
- MSP430-gemenskapen sponsrad av Texas Instruments
- MSP430 Yahoo!-grupp
- MSP430.info
- MSP430 engelsk-japanskt forum
- 43oh.com – MSP430 Nyheter, projekt och forum
- TinyOS-MSP430 – TinyOS- port
- MSP430 Egel projektsidor – Cirka 50 exempel med källor, scheman, väldokumenterade.
Visuell programmering C-kodgeneratorer
Kompilatorer, assemblerare och IDE:er
Gratis kompilator och IDE
- Arduino IDE Arduino IDE
- Code Composer Studio Eclipse-baserad IDE
- Code Composer Studio Cloud
- IAR Embedded Workbench Kickstart IDE (storlek begränsad till 4/8/16 KB – beror på vilken enhet som används)
- GCC-verktygskedja för MSP430-mikrokontroller
- MSP430 utvecklingssystem
- naken_asm Open-Source MSP430 assembler, disassembler, simulator.
- Förbyggda MSP430 GCC 4.x binärer för Windows
- MSP430 16-bitars noForth kompilator Med assembler, disassembler och källor.
- FastForth med 5 MBds terminal, assembler, SD_Card-drivrutin...
Mest populära obegränsade IDE:er och kompilatorer
- IAR Embedded Workbench för TI MSP430
- Rowley CrossWorks för MSP430 (endast en 30-dagars utvärderingsperiod)
- GCC-verktygskedja för MSP430-mikrokontroller (gratis C-kompilator)
- MSP430 utvecklingssystem
- En plugin för Visual Studio som stöder MSP430 via MSP430-GCC ( 30-dagars utvärdering)
Diverse IDE
- AQ430 utvecklingsverktyg för MSP430 mikrokontroller
- ImageCraft C-verktyg
- ForthInc Forth-kompilator
- MPE Forth IDE & Cross-Compiler för MSP430 för närvarande i Beta
- HI-TECH C för MSP430 (upphävde MSP430-stödet 2009)
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
- WSim – en mjukvarudriven emulator för fullständiga plattformsuppskattningar och felsökning
- MSPSim – en Java-baserad MSP430-emulator/simulator
- MSP430Static – ett reverse engineering-verktyg i Perl
- GoodFET – en öppen MSP430 JTAG-debugger i C och Python
- mspdebug – en MSP430 JTAG-felsökare med öppen källkod
- Trace32 MSP430 SIM – Nedladdningsområde med MSP430 Instruction Set Simulator gratis för utvärdering
- ERIKA Enterprise – en kostnadsfri RTOS-implementering med öppen källkod av ISO 17356 API (härlett från OSEK/VDX API)
- Energia är baserat på Wiring och Arduino och använder Processing IDE. Hårdvaruplattformen är baserad på TI MSP430 LaunchPad