TI MSP430 - TI MSP430

TI MSP430
Návrhář Texas Instruments
Bity 16bitové
Typ Paměť-paměť
Endianness malý Endian
Rozšíření MSP430X
Registry
16, R0 - Program Counter, R1 - Stack Pointer, R2 - Status Register, R2/R3 - Constant Generator
MSP 430 FG438 pohánějící glukometr
Fotografie dvou desek experimentátoru pro čipovou sadu MSP430 od společnosti Texas Instruments. Vlevo větší verze čipu, vpravo malá verze ve formátu USB.

MSP430 je mixed-signal mikrořadič rodina z Texas Instruments , nejprve představil dne 14. února 1992. Je postaven kolem 16-bit CPU , MSP430 je určen pro nízké náklady, a konkrétně s nízkou spotřebou energie vestavěných aplikací.

Aplikace

Měřič glukózy Aktivmed GlucoCheck Comfort- Deska s plošnými spoji pod LCD s procesorem MSP 430

MSP430 lze použít pro vestavěná zařízení s nízkým výkonem . Proudu byly v klidovém stavu může být menší než 1 uA. Nejvyšší rychlost CPU je 25 MHz. Lze jej přiškrtit, aby se snížila spotřeba energie. MSP430 také používá šest různých režimů nízké spotřeby, které mohou deaktivovat nepotřebné hodiny a CPU. Kromě toho se MSP430 dokáže probudit za méně než 1 mikrosekundu, což umožňuje ovladači zůstat déle v režimu spánku a minimalizovat průměrné využití proudu. Zařízení je dodáváno v různých konfiguracích s obvyklými periferiemi: interní oscilátor , časovač včetně modulace šířky impulzů (PWM), časovač hlídacího času (hlídací pes), USART , sběrnice Serial Peripheral Interface (SPI), integrovaný obvod ( I²C ), 10/12/14/16/24-bitový analogově-digitální převodníky (ADC), a zahnědnutí resetovacího obvodu . Některé méně obvyklé periferní možnosti zahrnují komparátory (které lze použít s časovači k provedení jednoduchého ADC), operační zesilovače na čipu (operační zesilovač) pro úpravu signálu , 12bitový převodník digitálního signálu na analogový (DAC), tekuté krystaly displej (LCD), hardwarový multiplikátor , USB a přímý přístup do paměti (DMA) pro výsledky ADC. Kromě některých starších vymazatelných programovatelných pamětí pouze pro čtení ( EPROM , jako je MSP430E3xx) a verzí ROM s velkou maskou (MSP430Cxxx) jsou všechna zařízení programována v systému pomocí Joint Test Action Group ( JTAG ), plně čtyřvodičového nebo Spy-Bi-Wire ), vestavěný bootstrapping nakladačem (BSL) s použitím UART , jako je RS232 , nebo USB na zařízení s podporou USB. V zařízeních řady F20xx, G2xx0, G2xx1, G2xx2 nebo I20xx není zahrnut žádný BSL.

Existují však omezení, která vylučují jeho použití ve složitějších vestavěných systémech . MSP430 nemá externí paměťovou sběrnici , takže je omezena na paměť na čipu, až 512 kB flash paměti a 66 kB paměti s náhodným přístupem (RAM), což může být příliš malé pro aplikace vyžadující velké vyrovnávací paměti nebo datové tabulky . I když má ovladač DMA, je velmi obtížné jej použít k přesunu dat z čipu kvůli nedostatku stroboskopu DMA.

Generace MSP430

Existuje šest obecných generací procesorů MSP430. V pořadí vývoje jsou to: „generace 3xx,“ generace 1xx, „generace 4xx,“ generace 2xx, „generace 5xx a“ generace 6xx. Číslice po generování identifikuje model (obecně vyšší čísla modelů jsou větší a schopnější), třetí číslice určuje množství zahrnuté paměti a čtvrtá, je -li přítomna, identifikuje variantu menšího modelu. Nejběžnější variantou je jiný analogově-digitální převodník na čipu .

Generace 3xx a 1xx jsou omezeny na 16bitový adresní prostor. V pozdějších generacích to bylo rozšířeno o instrukce „430X“, které umožňují 20bitový adresní prostor. Jak se stalo s jinými architekturami procesorů (např. Procesor PDP-11 ), prodloužení rozsahu adresování nad 16bitovou velikost slova přineslo některé zvláštnosti a neefektivity pro programy větší než 64 kByt.

V následujícím seznamu pomáhá uvažovat o typické kapacitě 200 mA · Hr lithiového knoflíkového článku CR2032 jako 200 000 μA · Hr nebo 22,8 μA · rok. Vzhledem k odběru pouze CPU by taková baterie mohla dodávat proud 0,7 μA po dobu 32 let. (Ve skutečnosti by toto číslo snížilo samovybíjení baterie .)

Význam retence paměti RAM oproti režimu hodin reálného času spočívá v tom, že v režimu hodin reálného času může CPU přejít do režimu spánku s běžícími hodinami, které jej probudí v konkrétním budoucím čase. V režimu uchování RAM je k jeho probuzení vyžadován nějaký externí signál, např. Vstupní/výstupní (I/O) pinový signál nebo přerušení příjmu SPI slave.

Řada MSP430x1xx

Řada MSP430x1xx je základní generací bez integrovaného ovladače LCD . Obvykle jsou menší než generace 3xx. Tyto MCU s ultra nízkým výkonem na bázi flash nebo ROM nabízejí 8 MIPS, provoz 1,8–3,6 V, blesk až 60 kB a širokou škálu analogových a digitálních periferií.

  • Přehled specifikace výkonu, tak nízké jako:
    • Zachování paměti 0,1 μA RAM
    • 0,7 μA režim hodin v reálném čase
    • 200 μA / MIPS aktivní
    • Nabízí rychlé probuzení z pohotovostního režimu za méně než 6 µs.
  • Parametry zařízení
    • Možnosti flash: 1–60 KB
    • Možnosti ROM: 1–16 KB
    • RAM: 128 B – 10 KB
    • Možnosti GPIO: 14, 22, 48 pinů
    • Možnosti ADC: sklon, 10 a 12bitový SAR
    • Další integrovaná periferie: 12bitový DAC, až 2 16bitové časovače, hlídací časovač, reset hnědého výstupu, SVS, modul USART (UART, SPI), DMA, multiplikátor 16 × 16, komparátor_A, teplotní senzor

Řada MSP430F2xx

MSP430F2xx řady jsou podobné ‚1xx generaci, ale pracují na ještě nižší výkon, podporuje až provozu 16 MHz, a mají přesnější hodiny (± 2%) na čipu, který usnadňuje provoz bez vnějšího krystalu. Tato zařízení s ultra nízkým výkonem na bázi blesku nabízejí provoz 1,8–3,6 V. Obsahuje oscilátor s velmi nízkým výkonem (VLO), interní výsuvné/stahovací odpory a možnosti nízkého počtu pinů.

  • Přehled specifikace výkonu, tak nízké jako:
    • Zachování paměti 0,1 μA RAM
    • Pohotovostní režim 0,3 μA (VLO)
    • 0,7 μA režim hodin v reálném čase
    • 220 μA / MIPS aktivní
    • Nabízí ultra rychlé probuzení z pohotovostního režimu za méně než 1 μs
  • Parametry zařízení
    • Možnosti flash: 1–120 KB
    • Možnosti RAM: 128 B - 8 KB
    • Možnosti GPIO: 10, 11, 16, 24, 32 a 48 pinů
    • Možnosti ADC: sklon, 10 a 12 bitů SAR, 16 a 24 bitů Sigma Delta
    • Další integrovaná periferie: operační zesilovače, 12bitový DAC, až 2 16bitové časovače, časovač hlídání, reset brown-out, SVS, modul USI (I²C, SPI), modul USCI, DMA, multiplikátor 16 × 16, komparátor_A+, senzor teploty

Řada MSP430G2xx

Řada MSP430G2xx Value je vybavena bleskovými MCU s ultra nízkým výkonem až 16 MIPS s provozem 1,8–3,6 V. Obsahuje oscilátor s velmi nízkým výkonem (VLO), interní výsuvné/stahovací odpory a možnosti nízkého počtu pinů za nižší ceny než řada MSP430F2xx.

  • Extrémně nízká spotřeba (@2,2 V):
    • Zachování paměti 0,1 μA RAM
    • Pohotovostní režim 0,4 μA (VLO)
    • 0,7 μA režim hodin v reálném čase
    • 220 μA / MIPS aktivní
    • Extrémně rychlé probuzení z pohotovostního režimu za <1 μs
  • Parametry zařízení
    • Možnosti blesku: 0,5–56 KB
    • Možnosti RAM: 128 B – 4 KB
    • Možnosti GPIO: 10, 16, 24, 32 pinů
    • Možnosti ADC: sklon, 10bitová SAR
    • Další integrovaná periferní zařízení: Kapacitní dotykové I/O, až 3 16bitové časovače, časovač hlídání, reset zhasnutí, modul USI (I²C, SPI), modul USCI, Comparator_A+, teplotní senzor

Řada MSP430x3xx

Řada MSP430x3xx je nejstarší generací navrženou pro přenosné instrumentace s integrovaným ovladačem LCD. To také zahrnuje frekvenčně uzamčený smyčkový oscilátor, který se může automaticky synchronizovat s nízkorychlostním (32 kHz) krystalem. Tato generace nepodporuje paměť EEPROM , pouze maskuje ROM a UV vymazatelné a jednorázově programovatelné EPROM . Pozdější generace poskytují pouze možnosti flash paměti a masky ROM . Tato zařízení nabízejí provoz 2,5–5,5 V, až 32 KB ROM.

  • Přehled specifikace výkonu, tak nízké jako:
    • Zachování paměti 0,1 μA RAM
    • Režim hodin v reálném čase 0,9 μA
    • 160 μA / MIPS aktivní
    • Nabízí rychlé probuzení z pohotovostního režimu za méně než 6 µs.
  • Parametry zařízení:
    • Možnosti ROM: 2–32 KB
    • Možnosti RAM: 512 B – 1 KB
    • Možnosti GPIO: 14, 40 pinů
    • Možnosti ADC: sklon, 14bitová SAR
    • Další integrované periferie: LCD ovladač, multiplikátor

Řada MSP430x4xx

MSP430x4xx Series jsou podobné ‚3xx generaci, ale mají integrovaný LCD řídicí jednotku, a jsou větší a schopný. Tato zařízení založená na flash nebo ROM nabízejí 8–16 MIPS při provozu 1,8–3,6 V, s FLL a SVS. Ideální pro měření nízkého výkonu a lékařské aplikace.

  • Přehled specifikace výkonu, tak nízké jako:
    • Zachování paměti 0,1 μA RAM
    • 0,7 μA režim hodin v reálném čase
    • 200 μA / MIPS aktivní
    • Nabízí rychlé probuzení z pohotovostního režimu za méně než 6 µs.
  • Parametry zařízení:
    • Možnosti Flash/ROM: 4 - 120 KB
    • Možnosti RAM: 256 B - 8 KB
    • Možnosti GPIO: 14, 32, 48, 56, 68, 72, 80 pinů
    • Možnosti ADC: sklon, 10 a 12bitová SAR, 16bitová Sigma Delta
    • Další integrované periferie: SCAN_IF, ESP430, 12bitový DAC, operační zesilovače, RTC, až 2 16bitové časovače, hlídací časovač, základní časovač, reset hnědého výstupu, SVS, modul USART (UART, SPI), modul USCI, Řadič LCD, DMA, multiplikátor 16 × 16 a 32x32, komparátor_A, teplotní senzor, rychlost procesoru 8 MIPS

Řada MSP430x5xx

MSP430x5xx Series jsou schopny pracovat až do 25 MHz, mají až do flash paměti 512 kB a až 66 kB paměti RAM. Tato rodina založená na blescích nabízí nízkou aktivní spotřebu energie až 25 MIPS při provozu 1,8–3,6 V (165 uA/MIPS). Obsahuje inovativní modul pro správu napájení pro optimální spotřebu energie a integrované USB.

  • Přehled specifikace výkonu, tak nízké jako:
    • Zachování paměti 0,1 μA RAM
    • 2,5 μA režim hodin v reálném čase
    • 165 μA / MIPS aktivní
    • Nabízí rychlé probuzení z pohotovostního režimu za méně než 5 µs.
  • Parametry zařízení:
    • Možnosti flash: až 512 KB
    • Možnosti paměti RAM: až 66 kB
    • Možnosti ADC: 10 a 12bitová SAR
    • Možnosti GPIO: 29, 31, 47, 48, 63, 67, 74, 87 pinů
    • Další volitelná integrovaná periferie: 12bitový DAC, PWM s vysokým rozlišením, 5 VI/O, USB, přepínač záložní baterie, až 4 16bitové časovače, časovač hlídacího času, hodiny reálného času, reset hnědého výstupu, SVS, modul USCI , DMA, multiplikátor 32x32, Comp B, teplotní senzor

Řada MSP430x6xx

MSP430x6xx Series jsou schopny pracovat až do 25 MHz, mají až do flash paměti 512 kB a až 66 kB paměti RAM. Tato rodina založená na blescích nabízí nízkou aktivní spotřebu energie až 25 MIPS při provozu 1,8–3,6 V (165 uA/MIPS). Obsahuje inovativní modul řízení spotřeby pro optimální spotřebu energie a integrované USB.

  • Přehled specifikace výkonu, tak nízké jako:
    • Zachování paměti 0,1 μA RAM
    • 2,5 μA režim hodin v reálném čase
    • 165 μA / MIPS aktivní
    • Nabízí rychlé probuzení z pohotovostního režimu za méně než 5 µs.
  • Parametry zařízení:
    • Možnosti flash: až 512 KB
    • Možnosti paměti RAM: až 66 kB
    • Možnosti ADC: 12bitová SAR
    • Možnosti GPIO: 74 pinů
    • Další integrovaná periferie: USB, LCD, DAC, Comparator_B, DMA, multiplikátor 32x32, modul řízení spotřeby (BOR, SVS, SVM, LDO), časovač hlídání, RTC, teplotní senzor

Řada RF SoC (CC430)

Řada RF SoC (CC430) poskytuje těsnou integraci mezi jádrem mikrokontroléru, periferiemi, softwarem a RF vysílačem. Funkce <1 GHz RF transceiver, s provozem 1,8 V – 3,6 V. Programování pomocí integrovaného vývojového prostředí Arduino (IDE) je možné prostřednictvím rozhraní panStamp API .

  • Přehled specifikace výkonu, tak nízké jako:
    • 1 μA uchování RAM
    • 1,7 μA režim hodin v reálném čase
    • 180 μA / MIPS aktivní
  • Parametry zařízení:
    • Možnosti rychlosti: až 20 MHz
    • Možnosti flash: až 32 kB
    • Možnosti paměti RAM: až 4 kB
    • Možnosti ADC: 12bitová SAR
    • Možnosti GPIO: 30 a 44 pinů
    • Další integrovaná periferie: Řadič LCD, až 2 16bitové časovače, hlídací časovač, RTC, modul řízení napájení (BOR, SVS, SVM, LDO), modul USCI, DMA, multiplikátor 32x32, Comp B, teplotní senzor

Série FRAM

Řada FRAM od společnosti Texas Instruments poskytuje sjednocenou paměť s dynamickým dělením a rychlostí přístupu k paměti 100krát rychlejší než flash. FRAM je také schopen zachovat stav nulového výkonu ve všech režimech napájení, což znamená, že zápisy jsou zaručeny, a to i v případě ztráty napájení. S výdrží více než 100 bilionů cyklů zápisu již paměť EEPROM není nutná. Aktivní spotřeba energie při méně než 100μA/MHz.

  • Přehled specifikace výkonu, tak nízké jako:
    • Uchování paměti RAM 320 nA
    • Režim hodin v reálném čase 0,35 μA
    • 82 μA / MIPS aktivní
  • Parametry zařízení:
    • Možnosti rychlosti: 8 až 24 MHz
    • Možnosti FRAM: 4 až 256 KB
    • Možnosti paměti RAM: 0,5 až 8 kB
    • Možnosti ADC: 10 nebo 12bitová SAR
    • Možnosti GPIO: 17 až 83 pinů GPIO
    • Další možná integrovaná periferie: MPU, až 6 16bitových časovačů, hlídací časovač, RTC, modul řízení spotřeby (BOR, SVS, SVM, LDO), modul USCI, DMA, multiplikátor, Comp B, teplotní senzor, ovladač LCD, I2C a UART BSL, Extended Scan Interface, 32 bit multiplikátor, AES, CRC, akcelerace zpracování signálu, kapacitní dotek, IR modulace

Série nízkého napětí

Low Voltage Series patří MSP430C09x a MSP430L092 dílů. Tyto 2 řady nízkonapěťových 16bitových mikrořadičů mají konfiguraci se dvěma 16bitovými časovači, 8bitovým převodníkem analogově-digitálního (A/D), 8bitovým převodníkem digitálně-analogového (D/A), a až 11 I/O pinů.

  • Přehled specifikace výkonu, tak nízké jako:
    • 1 μA uchování RAM
    • 1,7 μA režim hodin v reálném čase
    • 180 μA / MIPS aktivní
  • Parametry zařízení:
    • Možnosti rychlosti: 4 MHz
    • Možnosti ROM: 1–2 kB
    • Možnosti SRAM: 2 kB
    • Možnosti ADC: 8bitová SAR
    • Možnosti GPIO: 11 pinů
    • Další integrovaná periferie: až 2 16bitové časovače, hlídací časovač, reset zhasnutí, SVS, komparátor, teplotní senzor

Jiné rodiny MSP430

Více rodin v rámci MSP430 zahrnuje součásti s pevnou funkcí , automobilový průmysl a rozšířené teploty .

Opravená funkce : 16bitový mikrokontrolér MSP430BQ1010 je pokročilé zařízení s pevnými funkcemi, které tvoří řídicí a komunikační jednotku na straně přijímače pro bezdrátový přenos energie v přenosných aplikacích. MSP430BQ1010 vyhovuje specifikaci Wireless Power Consortium (WPC). Další informace najdete v tématu Bezkontaktní napájení .

Automobilový průmysl : Mikrokontroléry MSP430 (MCU) společnosti Texas Instruments (TI) jsou 16bitové procesory se smíšeným signálem na bázi RISC, které splňují požadavky AEC-Q100 a jsou vhodné pro automobilové aplikace v prostředí s okolní teplotou až 105 ° C. Ovladače kompatibilní s LIN pro MSP430 MCU od IHR GmbH.

Prodloužená teplota : Zařízení MSP430 jsou velmi oblíbená v drsných prostředích, jako je průmyslové snímání, pro svou nízkou spotřebu energie a inovativní analogovou integraci. Mezi náročné aplikace v prostředí patří doprava/automobilový průmysl, obnovitelná energie, armáda/vesmír/avionika, průzkum nerostných surovin, průmysl a bezpečnost a zabezpečení.

  • Definice zařízení:
    • HT: -55 ° C až 150 ° C
    • EP: Vylepšené produkty -55 ° C až 125 ° C
    • Q1: Automobilový průmysl s kvalifikací Q100 -40 ° C až 105 ° C
    • T: Aplikace s prodlouženou teplotou -40 ° C až 105 ° C

Všimněte si toho, že když je velikost flash větší než 64 kB slov (128 kB), adresy instrukcí již nelze kódovat pouze ve dvou bajtech. Tato změna velikosti ukazatele způsobuje určité nekompatibility s předchozími částmi.

Periferní zařízení

Periferie MSP430 se obecně snadno používají s (většinou) konzistentními adresami mezi modely a bez registrů pouze pro zápis (kromě multiplikátoru hardwaru).

Obecné I/O porty 0–10

Pokud periferní zařízení není potřeba, lze kolík použít pro obecné I/O. Piny jsou rozděleny do 8bitových skupin nazývaných „porty“, z nichž každý je řízen řadou 8bitových registrů. V některých případech jsou porty uspořádány ve dvojicích, ke kterým lze přistupovat jako 16bitové registry.

Rodina MSP430 definuje 11 I/O portů, P0 až P10, ačkoli žádný čip neimplementuje více než 10 z nich. P0 je implementován pouze v rodině '3xx. P7 až P10 jsou implementovány pouze u největších členů (a verze s nejvyšším počtem pinů) z rodin 4xx a 2xx. Nejnovější rodiny '5xx a' 6xx mají P1 až P11 a řídicí registry jsou přiřazeny tak, aby poskytovaly více párů portů. Každý port je řízen následujícími registry. Porty, které neimplementují určité funkce (například přerušení při změně stavu), neimplementují odpovídající registry.

P x IN
Port x vstup. Toto je registr pouze pro čtení a odráží aktuální stav pinů portu.
P x OUT
Port x výstup. Hodnoty zapsané do tohoto registru pro čtení/zápis jsou vyvedeny z odpovídajících pinů, když jsou konfigurovány pro výstup.
P x DIR
Port x směr dat. Bity zapsané jako 1 konfigurují odpovídající pin pro výstup. Bity zapsané jako 0 konfigurují pin pro vstup.
P x SEL
Vyberte funkci port x . Bity zapsané jako 1 konfigurují odpovídající pin pro použití specializovaným periferním zařízením. Bity zapsané jako 0 konfigurují pin pro obecné I/O. Port 0 (pouze části 3xx) není multiplexován s jinými periferiemi a nemá registr P0SEL.
P x REN
Povolit odpor x portu (pouze 2xx a 5xx). Bity nastavené v tomto registru umožňují slabé pull-up nebo pull-down odpory na odpovídajících I/O pinech, i když jsou konfigurovány jako vstupy. Směr tahu je nastaven bitem zapsaným do registru P x OUT.
P x DS
Port x síla disku (pouze '5xx). Bity nastavené v tomto registru umožňují vysoké proudové výstupy. To zvyšuje výstupní výkon, ale může způsobit elektromagnetické rušení (EMI).

Porty 0–2 mohou při změně vstupů způsobit přerušení. Další registry tuto schopnost konfigurují:

P x IES
Vyberte port x okraj přerušení. Vybírá hranu, která způsobí, že bude nastaven bit P x IFG. Když se vstupní bit změní ze shody se stavem P x IES na neshodný (tj. Kdykoli se bit v P x IES XOR P x IN změní z vymazání na nastavení), nastaví se odpovídající bit P x IFG.
P x IE
Port x přerušení povoleno. Když jsou oba tento bit a odpovídající bit P x IFG nastaveny, je generováno přerušení.
P x IFG
Příznak přerušení portu x . Nastavte vždy, když odpovídající kolík provede změnu stavu požadovanou P x IES. Lze vymazat pouze softwarem. (Lze také nastavit softwarem.)
P x IV
Port x vektor přerušení (pouze '5xx). Tento 16bitový registr je kodérem priority, který lze použít ke zpracování přerušení změny pinů. Pokud n je bit přerušení s nejnižším číslem, který čeká na P x IFG a je povolen v P x IE, tento registr čte jako 2 n +2. Pokud žádný takový bit neexistuje, čte se jako 0. Faktor měřítka 2 umožňuje přímé použití jako offset do větvící tabulky . Čtení tohoto registru také vymaže hlášený příznak P x IFG.

Některé piny mají speciální účely buď jako vstupy nebo výstupy. (Piny časovače lze například konfigurovat jako zachytávací vstupy nebo výstupy PWM.) V tomto případě bit P x DIR ovládá, které ze dvou funkcí pin vykonává, když je nastaven bit P x SEL. Pokud existuje pouze jedna speciální funkce, pak P x DIR je obecně ignorována. Registr P x IN je stále čitelný, pokud je nastaven bit P x SEL, ale generování přerušení je deaktivováno. Pokud je P x SEL prázdné, vstup speciální funkce je zmrazen a odpojen od externího pinu. Také konfigurace pin pro všeobecné účely výkonu dělá není zakázat přerušení generaci.

Mapa adresy registru I/O pro obecné účely
Rodiny „1xx –“ 4xx
P x IN  P x OUT 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
Rodiny „5xx –“ 6xx a „0xx“
P x IN  P x OUT 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 Pouze 4 bity; sdílené s piny JTAG .

Integrované periférie

Analogový
  • Analogově digitální převodník
Řada MSP430 nabízí dva typy analogově-digitální konverze (ADC). 10- a 12bitové postupné aproximační převodníky, stejně jako 16bitový převodník Sigma-Delta . Řadiče přenosu dat a 16slovová vyrovnávací paměť pro převod a řízení umožňují MSP430 převádět a ukládat vzorky bez zásahu procesoru, čímž se minimalizuje spotřeba energie.
  • Analogový bazén
Modul Analog Pool (A-POOL) lze konfigurovat jako ADC, DAC, komparátor, SVS nebo teplotní senzor. Umožňuje uživateli flexibilně programovat řadu analogových funkcí s jediným nastavením.
  • Komparátor A, A+
Modul komparátoru MSP430 poskytuje přesné svahové analogově-digitální převody. Monitoruje externí analogové signály a poskytuje měření hodnoty napětí a odporu. Možnost volitelných režimů napájení.
  • DAC12
Modul DAC12 je 12bitový DAC s napěťovým výstupem s možností výběru interní/externí reference a programovatelnou dobou ustálení pro optimální spotřebu energie. Lze jej konfigurovat v 8- ​​nebo 12bitovém režimu. Pokud je přítomno více modulů DAC12, mohou být seskupeny pro synchronní aktualizaci.
  • Operační zesilovače
Funkce jednoho napájení, nízkonapěťový provoz s výstupy ze sběrnice na kolejnici a programovatelné doby usazování. Softwarově volitelné možnosti konfigurace: režim jednotného zisku, režim komparátoru, invertující PGA, neinvertující PGA, diferenciální a přístrojový zesilovač.
  • Sigma Delta (SD)
Každý z modulů SD16/SD16_A/SD24_A je vybaven 16-/24bitovými A/D převodníky sigma-delta s interní referencí 1,2 V. Každý převodník má až osm plně diferenciálních multiplexovaných vstupů, včetně vestavěného teplotního čidla. Převodníky jsou modulátory převzorkování sigma-delta druhého řádu s volitelnými převzorkovacími poměry až 1024 (SD16_A/SD24_A) nebo 256 (SD16).
Časovače
  • Základní časovač (BT)
BT má dva nezávislé 8bitové časovače, které lze kaskádovat do 16bitového časovače/čítače. Oba časovače lze číst a zapisovat pomocí softwaru. BT je rozšířen tak, aby poskytoval integrovaný RTC. Interní kalendář kompenzuje měsíce s méně než 31 dny a zahrnuje opravu přestupného roku.
  • Hodiny reálného času
RTC_A/B jsou 32bitové hardwarové čítačové moduly, které poskytují čítače hodin s kalendářem, flexibilním programovatelným alarmem a kalibrací. RTC_B obsahuje přepínatelný záložní systém baterií, který poskytuje schopnost RTC fungovat, když primární napájení selže.
  • 16bitové časovače
Timer_A, Timer_B a Timer_D jsou asynchronní 16bitové časovače/čítače se až sedmi registry pro zachycení/porovnání a různými provozními režimy. Časovače podporují vícenásobné zachycení/porovnání, výstupy PWM a intervalové časování. Mají také rozsáhlé možnosti přerušení. Timer_B zavádí přidané funkce, jako jsou programovatelné délky časovačů (8-, 10-, 12- nebo 16bitové) a aktualizace vyrovnávací paměti s dvojitou vyrovnávací pamětí, zatímco Timer_D zavádí režim s vysokým rozlišením (4 ns).
  • Hlídací pes (WDT+)
WDT+ provede kontrolovaný restart systému po výskytu problému se softwarem. Pokud zvolený časový interval vyprší, vygeneruje se reset systému. Pokud funkce hlídacího psa v aplikaci není potřeba, modul lze nakonfigurovat jako intervalový časovač a ve vybraných časových intervalech může generovat přerušení.
Systém
  • Advanced Encryption Standard (AES)
Akcelerátorový modul AES provádí šifrování a dešifrování 128bitových dat pomocí 128bitových klíčů podle pokročilého standardu šifrování v hardwaru a lze jej konfigurovat pomocí uživatelského softwaru.
  • Reset zhnědnutí (BOR)
Obvod BOR detekuje nízké napájecí napětí a resetuje zařízení spuštěním signálu resetování po zapnutí (POR) při připojení nebo odpojení napájení. Obvod BOR MSP430 MCU s nulovým výkonem je nepřetržitě zapnutý, a to i ve všech režimech s nízkým výkonem.
  • Řadič s přímým přístupem do paměti (DMA)
Řadič DMA přenáší data z jedné adresy na druhou v celém rozsahu adres bez zásahu CPU. DMA zvyšuje propustnost periferních modulů a snižuje spotřebu energie systému. Modul obsahuje až tři nezávislé přenosové kanály.
Přestože je subsystém DMA MSP430 velmi schopný, má několik nedostatků, z nichž nejvýznamnější je absence externího přenosového stroba. Ačkoli lze přenos DMA spustit externě, neexistuje žádný externí údaj o dokončení přenosu. V důsledku toho je DMA do az externích zdrojů omezen na externí spouštění na bajtové přenosy, nikoli na úplné bloky automaticky prostřednictvím DMA. To může vést k značné složitosti (jako při požadavku rozsáhlého ručního ladění kódu) při implementaci procesoru na procesor nebo komunikace na USB. Citovaná reference používá temný režim časovače ke generování vysokorychlostních blesků pro přenosy DMA. Časovače nejsou dostatečně flexibilní, aby snadno nahradily nedostatek externího přenosového blesku DMA.
Operace DMA, které zahrnují přenosy slov do bajtových umístění, způsobí zkrácení na 8 bitů, nikoli převod na dvoubajtové přenosy. Díky tomu je DMA s A/D nebo D/A 16 bitovými hodnotami méně užitečný, než by mohl být (i když je možné tyto hodnoty DMA přenášet přes port A nebo B na některých verzích MSP 430 pomocí externě viditelné spouště při každém přenosu, jako je výstup časovače).
  • Vylepšený emulační modul (EEM)
EEM poskytuje různé úrovně funkcí ladění, jako jsou 2–8 hardwarové zarážky, složité zarážky, přerušení, když dojde ke čtení/zápisu na zadané adrese a další. Integrováno do všech flashových zařízení MSP430.
  • Hardwarový multiplikátor
Některé modely MSP430 obsahují periferní zařízení s hardwarovým multiplikátorem mapovaným na paměť, které provádí různé operace 16 × 16+32 → 33bitové násobení a akumulace. U MSP430 tato periferie neobvykle obsahuje implicitní 2bitový registr pouze pro zápis, což prakticky znemožňuje přepínání kontextu . Tato periferie neinterferuje s aktivitami CPU a lze k ní přistupovat pomocí DMA. MPY na všech zařízeních MSP430F5xx a některých zařízeních MSP430F4xx má až 32 bitů x 32 bitů.
Použitých 8 registrů je:
Adresa název Funkce
0x130 MPY Operand1 pro násobení bez znaménka
0x132 MPYS Operand1 pro podepsané násobení
0x134 MAC Operand1 pro nepodepsané násobení-akumulace
0x136 MACS Operand1 pro podepsané násobení-akumulace
0x138 OP2 Druhý operand pro operaci násobení
0x13A ResLo Nízké slovo o výsledku znásobení
0x13C ResHi Vysoké slovo o výsledku znásobení
0x13E SumExt Proveďte množení
První operand je zapsán do jednoho ze čtyř 16bitových registrů. Napsaná adresa určuje provedenou operaci. Zatímco zapsanou hodnotu lze přečíst zpět z kteréhokoli z registrů, zapsané číslo registru nelze obnovit.
Pokud je požadována operace vícenásobného akumulace, je třeba také inicializovat registry ResLoa ResHi.
Potom pokaždé, když je zápis proveden do OP2registru, je provedeno násobení a výsledek uložen nebo přidán do registrů výsledků. SumExtRegistr je jen pro čtení registr, který obsahuje provádět přidávání (0 nebo 1), v případě, že bez znaménka násobení), nebo znak prodloužení 32-bitového součtu (0 nebo -1) v případě podepsanou násobit. V případě podepsaného násobení a akumulace SumExtmusí být hodnota zkombinována s nejvýznamnějším bitem předchozího SumHiobsahu, aby se určil skutečný výsledek provedení (-1, 0 nebo +1).
Výsledek je k dispozici po třech hodinových cyklech zpoždění, což je čas potřebný k načtení následující instrukce a následujícího indexového slova. Zpoždění je tedy obvykle neviditelné. Explicitní zpoždění je vyžadováno pouze při použití režimu nepřímého adresování k načtení výsledku.
  • Jednotka ochrany paměti (MPU)
FRAM MPU chrání před náhodným zápisem do určených paměťových segmentů pouze pro čtení nebo spuštěním kódu z konstantní paměti. MPU může nastavit libovolné dělení paměti pomocí adresování na úrovni bitů, čímž je celá paměť přístupná pro operace čtení, zápisu a spouštění v zařízeních FRAM.
  • Modul řízení spotřeby (PMM)
PMM generuje napájecí napětí pro logiku jádra a poskytuje několik mechanismů pro dohled a monitorování jak napětí aplikovaného na zařízení, tak napětí generovaného pro jádro. Je integrován s regulátorem napětí s nízkým výpadkem (LDO), resetem zhnědnutí (BOR) a monitorem a monitorem napájecího napětí.
  • Supply-Voltage Supervisor (SVS)
SVS je konfigurovatelný modul sloužící ke sledování napájecího napětí AVCC nebo externího napětí. SVS lze nakonfigurovat tak, aby nastavoval příznak nebo generoval reset po zapnutí (POR), když napájecí napětí nebo externí napětí klesne pod prahovou hodnotu zvolenou uživatelem.
Komunikace a rozhraní
  • Kapacitní dotykové senzory I/O
Integrovaný kapacitní I/O modul pro snímání dotyku nabízí několik výhod pro aplikace s dotykovým tlačítkem a dotykovým posuvníkem. Systém nevyžaduje externí komponenty k vytvoření vlastní oscilace (snížení počtu materiálů) a kondenzátor (který definuje frekvenci vlastní oscilace) lze připojit přímo. Navíc není potřeba, aby externí MUXy umožňovaly více padů a každý I/O pad může přímo sloužit jako vstup pro cap cap. Hystereze ~ 0,7 V zajišťuje robustní provoz. Řízení a sekvenování se provádí kompletně v softwaru.
  • Univerzální I/O
Zařízení MSP430 mají implementováno až 12 digitálních I/O portů. Každý port má osm I/O pinů. Každý I/O pin lze konfigurovat jako vstup nebo výstup a lze jej jednotlivě číst nebo zapisovat. Porty P1 a P2 mají možnost přerušení. MSP430F2xx, F5xx a některá zařízení F4xx mají vestavěné, individuálně konfigurovatelné výsuvné nebo stahovací odpory.
  • Front GHz sub-GHz RF
Flexibilní CC1101 sub-1 GHz transceiver poskytuje citlivost a výkon blokování potřebný k dosažení úspěšných komunikačních spojení v jakémkoli RF prostředí. Má také nízkou spotřebu proudu a podporuje flexibilní datové rychlosti a modulační formáty.
  • USART (UART, SPI, I²C)
Univerzální synchronní/asychrózní příjem/přenos (USART) periferní rozhraní podporuje asynchronní komunikaci RS-232 a synchronní SPI s jedním hardwarovým modulem. Moduly MSP430F15x/16x USART také podporují I²C, programovatelnou přenosovou rychlost a schopnost nezávislého přerušení pro příjem a vysílání.
  • USB
Modul USB je plně kompatibilní se specifikací USB 2.0 a podporuje ovládání, přerušení a hromadné přenosy rychlostí 12 Mb / s (plná rychlost). Modul podporuje operace uspání, obnovení a vzdáleného probuzení přes USB a lze jej konfigurovat až pro osm vstupních a osm výstupních koncových bodů. Modul obsahuje integrované fyzické rozhraní (PHY); fázově uzamčená smyčka (PLL) pro generování hodin USB; a flexibilní napájecí systém umožňující zařízení napájená ze sběrnice i z vlastních zdrojů.
  • USCI (UART, SPI, I²C, LIN, IrDA)
Modul USCI (Universal Serial Communication Interface) obsahuje dva nezávislé kanály, které lze použít současně. Asynchronní kanál (USCI_A) podporuje režim UART; Režim SPI; pulzní tvarování pro IrDA; a automatická detekce přenosové rychlosti pro komunikaci LIN. Synchronní kanál (USCI_B) podporuje režimy I²C a SPI.
  • USI (SPI, I²C)
Modul USI (Universal Serial Interface) je synchronní sériové komunikační rozhraní s datovou délkou až 16 bitů a může podporovat komunikaci SPI a I²C s minimálním softwarem.
  • Infračervená modulace
Tato funkce je k dispozici na čipech řady MSP430FR4xxx a MSP430FR2xxx a je konfigurována pomocí sady registrů SYSCFG. Tato periferie se spojuje s dalšími periferiemi (časovače, eUSCI_A) a generuje signál IR modulovaný na výstupním pinu. (strana 43)
Měření
  • ESP430 (integrovaný v zařízeních FE42xx)
Modul ESP430CE provádí výpočty měření nezávisle na CPU. Modul má samostatný SD16, HW multiplikátor a vestavěný procesor ESP430 pro jednofázové aplikace pro měření energie.
  • Rozhraní skenování (SIF)
Modul SIF, programovatelný stavový automat s analogovým předním koncem, slouží k automatickému měření lineárního nebo rotačního pohybu s nejnižší možnou spotřebou energie. Modul nabízí podporu pro různé typy LC a odporových senzorů a pro kvadraturní kódování.
Zobrazit
  • LCD/LCD_A/LCD_B
Ovladač LCD/LCD_A přímo pohání LCD až pro 196 segmentů. Podporuje statické, 2-mux, 3-mux a 4-mux LCD. Modul LCD_A má integrovanou nabíjecí pumpu pro ovládání kontrastu. LCD_B umožňuje blikání jednotlivých segmentů se samostatnou blikající pamětí.
  • LCD_E
Řadič LCD_E je dodáván s novějšími mikrokontroléry řady MSP430FR4xxx a přímo pohání LCD až 448 segmentů. Podporuje statické, 2-mux, 3-mux, 4-mux, 5-mux, 6-mux, 7-mux, 8-mux (1/3 bias) LCD. Segmentové a společné piny lze přeprogramovat na dostupné piny jednotky LCD. Tato periferie může být napájena v LPM3.5 (RTC běží+režim vypnutí hlavního jádra CPU).

Prostředí pro vývoj softwaru

Společnost Texas Instruments nabízí různé hardwarové experimentální desky, které podporují velké (přibližně dva centimetry čtvereční) a malé (přibližně jeden milimetrový čtverec) čipy MSP430. TI také poskytuje nástroje pro vývoj softwaru, a to jak přímo, tak ve spojení s partnery (viz úplný seznam kompilátorů, assemblerů a IDE ). Jedním takovým řetězcem nástrojů je kompilátor IAR C/C ++ a integrované vývojové prostředí nebo IDE. Edici Kickstart lze zdarma stáhnout z TI nebo IAR; je omezen na 8 KB kódu C/C ++ v kompilátoru a debuggeru ( programy jazyků sestavení jakékoli velikosti lze vyvíjet a ladit pomocí tohoto bezplatného řetězce nástrojů).

TI také kombinuje verzi vlastního kompilátoru a nástrojů se svým Code Composer Studio IDE (CCS) na bázi Eclipse . Prodává plně funkční verze a nabízí bezplatnou verzi ke stažení, která má limit velikosti kódu 16 kB. CCS podporuje emulátory v obvodu a obsahuje simulátor a další nástroje; může také pracovat s jinými procesory prodávanými společností TI.

Pro ty, kterým Arduino vyhovuje , je tu také další software Energia Energia , platforma pro prototypování elektroniky s otevřeným zdrojovým kódem s cílem přinést rámec Wiring a Arduino do LaunchPadu založeného na Texas Instruments MSP430, kde lze kód Arduino exportovat pro programování MSP430 bramborové hranolky. Nejnovější verze společnosti Energia podporuje MSP-EXP430G2xxx, MSP-EXP430FR5739, MSP-EXP430FR5969, MSP-EXP430FR5994, MSP-EXP430F5529LP, Stellaris EK-LM4F120XL, Tiva-C EK-TM4CL3CL, C4-T4, MX4CL4CX3CL, C4-T4CL3CL, T4-C4, MX4CL3CX

Open source komunita vytváří volně dostupný sadu nástrojů pro vývoj softwaru založeného na GNU sada nástrojů . Kompilátor GNU je aktuálně odmítnut ve třech verzích:

( MSPGCC )

( MSPGCC Uniarch )

TI konzultovalo s RedHat, aby poskytlo oficiální podporu pro architekturu MSP430 kompilátoru GNU Compiler Collection C/C ++. Tento kompilátor msp430-elf-gcc je podporován TI Code Composer Studio verze 6.0 a vyšší.

Existuje velmi raný projekt llvm-msp430 , který nakonec může poskytnout lepší podporu pro MSP430 v LLVM .

K dispozici jsou další sady nástrojů pro komerční vývoj, mezi něž patří editor, kompilátor, linker, assembler, debugger a v některých případech průvodci kódem. VisSim , jazyk blokového diagramu pro vývoj založený na modelu, generuje efektivní C-kód s pevným bodem přímo z diagramu. VisSim generovaný kód pro uzavřenou smyčku ADC+PWM řízení PID na F2013 kompiluje na méně než 1 kB flash a 100 bajtů RAM. VisSim má na čipu periferní bloky pro celou rodinu I2C, ADC, SD16, PWM řady MSP430.

Nízkonákladové vývojové platformy

MSP430F2013 a jeho sourozenci se odlišují tím, že (kromě hodnotové řady MSP430G2 ) je jedinou částí MSP430, která je k dispozici v duálním řadovém balíčku (DIP). Jiné varianty v této řadě jsou k dispozici pouze v různých balíčcích pro povrchovou montáž. Společnost TI má problémy s podporou vývojové platformy eZ430 tím, že usnadňuje použití surových čipů fandům v prototypech.

eZ430-F2013

Společnost TI vyřešila nízkorozpočtový problém nabídnutím velmi malé experimentální desky eZ430-F2013 na USB flash disku. To návrhářům usnadňuje výběr čipu MSP430 pro levné vývojové platformy, které lze použít s počítačem. EZ430-F2013 obsahuje mikrokontrolér MSP430F2013 na odnímatelné desce prototypů a doprovodné CD s vývojovým softwarem. Je to užitečné pro školy, fandy a vynálezce garáží. Vítají to také inženýři ve velkých společnostech, které prototypují projekty s problémy s kapitálovým rozpočtem.

MSP430 LaunchPad

Společnost Texas Instruments vydala MSP430 LaunchPad v červenci 2010. MSP430 LaunchPad má vestavěný emulátor blesku , USB , 2 programovatelné LED diody a 1 programovatelné tlačítko. Jako doplněk k experimentování s LaunchPadem je k dispozici štítová deska .

TI od té doby poskytlo několik nových LaunchPadů založených na platformě MSP430:

Všechny tři tyto LaunchPady obsahují debugger eZ-FET JTAG s backchannel UART schopný rychlosti 1 Mbit/s. LaunchPady FRAM (např. MSP-EXP430FR5969, MSP-EXP430FR4133) obsahují EnergyTrace, což je funkce podporovaná TI Code Composer Studio IDE pro monitorování a analýzu spotřeby energie.

Rozhraní ladění

Stejně jako u jiných dodavatelů mikrokontrolérů vyvinula společnost TI dvouvodičové ladicí rozhraní, které se nachází na některých jejich částech MSP430 a které může nahradit větší rozhraní JTAG. Vývojový nástroj eZ430 obsahuje pro tento nový dvouvodičový protokol plný nástroj USB emulace (FET) připojený přes USB, který od TI pojmenoval Spy-Bi-Wire . Spy-Bi-Wire byl původně představen pouze na nejmenších zařízeních z rodiny F2xx s omezeným počtem I/O pinů, jako jsou MSP430F20xx, MSP430F21x2 a MSP430F22x2. Podpora pro Spy-Bi-Wire byla rozšířena zavedením nejnovější řady '5xx, kde všechna zařízení kromě JTAG podporují také rozhraní Spy-Bi-Wire.

Výhodou protokolu Spy-Bi-Wire je, že používá pouze dvě komunikační linky, z nichž jedna je vyhrazená linka _RESET. Rozhraní JTAG na součástech MSP430 s nižším počtem pinů je multiplexováno s obecnými vstupně -výstupními linkami. Díky tomu je poměrně obtížné ladit obvody postavené kolem malých čipů s nízkým I/O rozpočtem, protože plný 4pinový hardware JTAG bude v konfliktu s čímkoli jiným připojeným k těmto I/O linkám. Tento problém je zmírněn čipy podporujícími Spy-Bi-Wire, které jsou stále kompatibilní s normálním rozhraním JTAG pro zpětnou kompatibilitu se starými vývojovými nástroji.

Nástroje pro ladění JTAG a flash programování založené na OpenOCD a široce používané v komunitě architektury ARM nejsou pro MSP430 k dispozici. Programovací nástroje speciálně určené pro MSP430 jsou o něco levnější než rozhraní JTAG, která používají OpenOCD. Pokud by se však v polovině projektu zjistilo, že je zapotřebí více MIPS, více paměti a více periférií I/O, tyto nástroje se nepřenesou do procesoru od jiného dodavatele.

CPU MSP430

CPU MSP430 využívá von Neumannovu architekturu s jediným adresním prostorem pro instrukce a data. Paměť je byte -addressed a dvojice bytů jsou kombinovány little-endian , aby 16bitových slov .

Procesor obsahuje 16 16bitových registrů, z nichž čtyři jsou určeny pro zvláštní účely: R0 je čítač programu , R1 je ukazatel zásobníku , R2 je stavový registr a R3 je „konstantní generátor“, který čte jako nula a ignoruje píše. Přidané kódování v režimu adresy pomocí R3 a R2 umožňuje celkem šest běžně používaných konstantních hodnot (0, 1, 2, 4, 8 a −1) bez potřeby okamžitého operandového slova. R4 až R15 jsou k dispozici pro obecné použití.

Sada instrukcí je velmi jednoduchá: 27 instrukcí existuje ve třech rodinách. Většina pokynů se vyskytuje ve verzích s příponou .B (8bitový bajt) a .W (16bitové slovo) v závislosti na hodnotě černobílého bitu: bit je nastaven na 1 pro 8bitové a 0 pro 16bitové bit. Chybějící přípona odpovídá .W. Operace bajtů do paměti ovlivňují pouze adresovaný bajt, zatímco operace bajtů s registry vymaže nejvýznamnější bajt.

Sada instrukcí MSP430
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Návod
0 0 0 1 0 0 operační kód ČB Tak jako Registrovat Jednooperandová aritmetika
0 0 0 1 0 0 0 0 0 ČB Tak jako Registrovat RRC Otočit doprava (1 bit) při přenášení
0 0 0 1 0 0 0 0 1 0 Tak jako Registrovat SWPB Swap bytes
0 0 0 1 0 0 0 1 0 ČB Tak jako Registrovat RRA Otočení aritmetiky doprava (1 bit)
0 0 0 1 0 0 0 1 1 0 Tak jako Registrovat Znak SXT rozšíří bajt na slovo
0 0 0 1 0 0 1 0 0 ČB Tak jako Registrovat PUSH Zatlačte hodnotu do zásobníku
0 0 0 1 0 0 1 0 1 0 Tak jako Registrovat CALL Volání podprogramu; stiskněte PC a přesuňte zdroj do PC
0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 RETI Návrat z přerušení; pop SR pak pop PC
0 0 1 stav 10bitový podepsaný offset Podmíněný skok; PC = PC + 2 × offset
0 0 1 0 0 0 10bitový podepsaný offset JNE / JNZ Skok, pokud není stejný / nula
0 0 1 0 0 1 10bitový podepsaný offset JEQ / JZ Skok, pokud je roven / nula
0 0 1 0 1 0 10bitový podepsaný offset JNC / JLO Skok, pokud není nošení / snížení
0 0 1 0 1 1 10bitový podepsaný offset JC / JHS Skok, pokud je nesen / vyšší nebo stejný
0 0 1 1 0 0 10bitový podepsaný offset JN Skočte, pokud je negativní
0 0 1 1 0 1 10bitový podepsaný offset JGE Skok, pokud je větší nebo stejný
0 0 1 1 1 0 10bitový podepsaný offset JL Skoč, pokud méně
0 0 1 1 1 1 10bitový podepsaný offset JMP Jump (bezpodmínečně)
operační kód zdroj Inzerát ČB Tak jako destinace Aritmetika dvou operandů
0 1 0 0 zdroj Inzerát ČB Tak jako destinace MOV Přesunout zdroj do cíle
0 1 0 1 zdroj Inzerát ČB Tak jako destinace PŘIDAT Přidat zdroj k cíli
0 1 1 0 zdroj Inzerát ČB Tak jako destinace ADDC Přidejte zdroj a přepravte jej na místo určení
0 1 1 1 zdroj Inzerát ČB Tak jako destinace SUBC Odečíst zdroj od cíle (s přenosem)
1 0 0 0 zdroj Inzerát ČB Tak jako destinace SUB Odečíst zdroj od cíle
1 0 0 1 zdroj Inzerát ČB Tak jako destinace CMP Porovnat (předstírat, že odečíst) zdroj od cíle
1 0 1 0 zdroj Inzerát ČB Tak jako destinace DADD Decimal přidat zdroj do cíle (s carry)
1 0 1 1 zdroj Inzerát ČB Tak jako destinace BIT Testujte bity zdroje AND cíle
1 1 0 0 zdroj Inzerát ČB Tak jako destinace Bit BIC čistý (dest & = ~ src)
1 1 0 1 zdroj Inzerát ČB Tak jako destinace Sada bitů BIS (logická NEBO)
1 1 1 0 zdroj Inzerát ČB Tak jako destinace XOR Exkluzivní nebo zdroj s cílem
1 1 1 1 zdroj Inzerát ČB Tak jako destinace AND Logický AND zdroj s cílem (dest & = src)

Pokyny jsou 16bitové, za nimi následují až dvě 16bitová rozšiřující slova. Režimy adresování jsou určeny 2bitovým polem As a 1bitovým reklamním polem. Některé speciální verze mohou být konstruovány pomocí R0 a režimy jiné než přímý registr pomocí R2 (stavový registr) a R3 (generátor konstant) jsou interpretovány speciálně. Reklama může pro As používat pouze podmnožinu režimů adresování.

Režimy indexovaného adresování přidávají k instrukci 16bitové rozšiřující slovo. Pokud jsou indexovány zdroj i cíl, na prvním místě je slovo zdrojového rozšíření. x odkazuje na další rozšiřující slovo v proudu instrukcí v tabulce níže.

Režimy adresování MSP430
Tak jako Inzerát Registrovat Syntax Popis
00 0 n R n Zaregistrujte se přímo. Operand je obsahem R n .
01 1 n x (R n ) Indexováno. Operand je v paměti na adrese R n + x .
10 - n @R n Zaregistrujte se nepřímo. Operand je v paměti na adrese uložené v R n .
11 - n @R n + Nepřímý automatický přírůstek. Jak je uvedeno výše, registr se zvýší o 1 nebo 2.
Režimy adresování pomocí R0 (PC)
01 1 0 (PC) ADDR Symbolický. Ekvivalent k x (PC). Operand je v paměti na adrese PC+ x .
11 - 0 (PC) # x Bezprostřední. Ekvivalentní k @PC+. Operand je další slovo v proudu instrukcí.
Režimy adresování pomocí R2 (SR) a R3 (CG), speciální dekódování
01 1 2 (SR) & ADDR Absolutní. Operand je v paměti na adrese x .
10 - 2 (SR) #4 Konstantní. Operand je konstanta 4.
11 - 2 (SR) #8 Konstantní. Operand je konstanta 8.
00 - 3 (CG) #0 Konstantní. Operand je konstanta 0.
01 - 3 (CG) #1 Konstantní. Operand je konstanta 1. Neexistuje žádné indexové slovo.
10 - 3 (CG) #2 Konstantní. Operand je konstanta 2.
11 - 3 (CG) #−1 Konstantní. Operand je konstanta −1.

Instrukce obvykle trvají 1 cyklus na načtení nebo uložení slova, takže časy instrukcí se pohybují od 1 cyklu pro jednoduchou instrukci registr-registr do 6 cyklů pro instrukci s indexovaným zdrojem i cílem.

Rozšíření MSP430X s 20bitovým adresováním přidává přidané instrukce, které mohou vyžadovat až 10 hodinových cyklů. Nastavení nebo vymazání periferního bitu vyžaduje dva hodiny. Skok, přijatý nebo ne, trvá dvě hodiny. U řady 2xx je 2 MCLK 125 ns při 16 MHz.

Pohyby k počítadlu programu jsou povoleny a provádějí skoky. Návrat z podprogramu je například implementován jako MOV @SP+, PC .

Pokud jsou v režimu adresování s automatickým přírůstkem použity R0 (PC) nebo R1 (SP), vždy se zvýší o dvě. Ostatní registry (R4 až R15) se zvyšují o velikost operandu, buď 1 nebo 2 bajty.

Stavový registr obsahuje 4 aritmetické stavové bity, povolení globálního přerušení a 4 bity, které deaktivují různé hodiny pro vstup do režimu nízké spotřeby. Při zpracování přerušení procesor uloží stavový registr do zásobníku a vymaže bity nízké spotřeby. Pokud obsluha přerušení nezmění uložený stavový registr, návrat z přerušení pak obnoví původní režim nízké spotřeby.

Pseudo operace

Mnoho přidaných pokynů je implementováno jako aliasy pro formy výše. Neexistuje například žádná konkrétní instrukce „návrat z podprogramu“, ale je implementována jako „MOV @SP+, PC“. Emulované pokyny jsou:

MSP430 Emulované pokyny
Emulované Aktuální Popis
ADC . x dst ADDC. x #0, dst Přidat carry do cíle
BR dst MOV dst , PC Pobočka do cíle
CLR . x dst MOV. x #0, dst Jasný cíl
CLRC BIC #1, SR Čistý přenosový bit
CLRN BIC #4, SR Vymazat záporný bit
CLRZ BIC #2, SR Vymazat nulový bit
DADC . x dst DADD. x #0, dst Desetinná přidaná nosnost do cíle
DEC . x dst SUB. x #1, dst Snížení
DECD . x dst SUB. x #2, dst Dvojité snížení
DINT BIC #8, SR Zakázat přerušení
EINT BIS #8, SR Povolit přerušení
INC . x dst PŘIDAT. x #1, dst Přírůstek
INCD . x dst PŘIDAT. x #2, dst Dvojitý přírůstek
INV . x dst XOR. x #−1, dst Invertovat
NOP MOV #0, R3 Žádná operace
POP dst MOV @SP+, dst Pop ze zásobníku
RET MOV @SP+, PC Návrat z podprogramu
RLA . x dst PŘIDAT. x dst , dst Otočit aritmetiku doleva (posun doleva o 1 bit)
RLC . x dst ADDC. x dst , dst Otočit doleva přes nošení
SBC . x dst SUBC. x #0, dst Odečtěte výpůjčku (1 − carry) od místa určení
SETC BIS #1, SR Nastavte přenosový bit
SETN BIS #4, SR Nastavte záporný bit
SETZ BIS #2, SR Nastavte nulový bit
TST . x dst CMP. x #0, dst Testovací cíl

Všimněte si, že bezprostřední konstanty −1 (0xffff), 0, 1, 2, 4 a 8 lze zadat v jednoslovné instrukci, aniž byste potřebovali samostatný okamžitý operand.

20bitové rozšíření MSP430X

Základní MSP430 nemůže podporovat více paměti (ROM + RAM + periferie) než 64K adresní prostor. Aby to bylo možné podpořit, rozšířená forma MSP430 používá 20bitové registry a 20bitový adresní prostor, což umožňuje až 1 MB paměti. Používá stejnou sadu instrukcí jako základní formulář, ale se dvěma rozšířeními:

  1. Omezený počet 20bitových pokynů pro běžné operace a
  2. Obecný mechanismus předponových slov, který může rozšířit jakoukoli instrukci na 20 bitů.

Rozšířené instrukce zahrnují některé přidané schopnosti, zejména vícebitové směny a operace vícenásobného načítání/ukládání.

20bitové operace používají příponu délky „A“ (pro adresu) místo .B nebo .W. .W je stále výchozí. Obecně platí, že kratší operace vyčistí bity vysokého řádu cílového registru.

Nové pokyny jsou následující:

Rozšířené pokyny MSP430X
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Druhé slovo Návod
0 0 0 0 zdroj 0 0 operační kód destinace Rozšířené pohyby registru paměti
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 adresa [19:16] 0 0 1 0 dst adresa [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 destinace Bitové posuny (1–4 bitové pozice)
0 0 0 0 n − 1 0 0 0 1 0 W/A dst - RRCM . x # n , R dst (Otočit doprava při přenášení.)
0 0 0 0 n − 1 0 1 0 1 0 W/A dst - RRAM . x # n , R dst (Otočit pravou aritmetiku, alias posun doprava podepsán.)
0 0 0 0 n − 1 1 0 0 1 0 W/A dst - RLAM . x # n , R dst (Otočit levou aritmetiku, alias posun doleva.)
0 0 0 0 n − 1 1 1 0 1 0 W/A dst - RRUM . x # n , R dst (Otočit doprava bez znaménka, aka posun logické doprava.)
0 0 0 0 zdroj 0 1 1 op. destinace Pohyby rozšířené paměti registru
0 0 0 0 src 0 1 1 0 adresa [19:16] adresa [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 zdroj 1 operační kód destinace Rozšířené operace ALU
0 0 0 0 im [19:16] 1 0 0 0 dst im [15: 0] MOVA #imm20, R dst
0 0 0 0 im [19:16] 1 0 0 1 dst im [15: 0] CMPA #imm20, R dst
0 0 0 0 im [19:16] 1 0 1 0 dst im [15: 0] ADDA #imm20, R dst
0 0 0 0 im [19:16] 1 0 1 1 dst im [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. režimu liší se CALLA
0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 - RETI (stejné jako MSP430)
0 0 0 1 0 0 1 1 0 1 Tak jako Registrovat CALLA zdroj
0 0 0 1 0 0 1 1 1 0 0 0 abs [19:16] abs [15: 0] CALLA a 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 - - (Rezervováno)
0 0 0 1 0 0 1 1 1 0 1 1 im [19:16] im [15: 0] CALLA #imm20
0 0 0 1 0 0 1 1 1 1 - - (Rezervováno)
0 0 0 1 0 1 dir W/A n − 1 Registrovat Registrace push/pop n končící zadaným
0 0 0 1 0 1 0 W/A n − 1 src - PUSHM . x # n , R src  Push R src , R ( src −1), ... R ( src - n +1)
0 0 0 1 0 1 1 W/A n − 1 dst − n+1 - POPM . x # n , R dst  Pop R ( dst - n +1), R ( dst - n +2), ... R dst

Ke všem ostatním instrukcím lze přidat předponové slovo, které je rozšíří na 20 bitů. Slovo předpony obsahuje přidaný bit velikosti operandu, který je kombinován s existujícím černobílým bitem a určuje velikost operandu. Existuje jedna kombinace nepoužívaných velikostí; indikace naznačují, že může být v budoucnu použit pro velikost 32bitového operandu.

Slovo předpony se dodává ve dvou formátech a výběr mezi nimi závisí na následujících pokynech. Pokud má instrukce nějaké neregistrované operandy, použije se jednoduchý formulář, který poskytuje 2 4bitová pole k rozšíření jakéhokoli posunu nebo okamžité konstanty v proudu instrukcí na 20 bitů.

Pokud je instrukce registr-registr, použije se jiné rozšiřující slovo. To zahrnuje příznak „ZC“, který potlačuje přenos (užitečné pro instrukce jako DADD, které vždy používají přenosový bit), a počet opakování. Čtyřbitové pole v rozšiřujícím slově kóduje buď počet opakování (0–15 opakování kromě počátečního spuštění), nebo číslo registru, které obsahuje počet 4bitových opakování.

Slova předpony MSP430X
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Návod
0 0 0 1 1 - A/L 0 0 - Slovo rozšíření
0 0 0 1 1 src [19:16] A/L 0 0 dst [19:16] Rozšíření operandu paměti
0 0 0 1 1 0 0 ZC 0 A/L 0 0 n − 1 Registrace rozšíření operandu (okamžitý počet opakování)
0 0 0 1 1 0 0 ZC 1 A/L 0 0 Rn Registrace rozšíření operandu (počet opakování registru)

Adresní prostor MSP430

Obecné rozložení adresního prostoru MSP430 je:

0x0000–0x0007
Registry speciální funkce procesoru (registry řízení přerušení)
0x0008–0x00FF
8bitová periferní zařízení. K nim je nutné přistupovat pomocí 8bitových zátěží a obchodů.
0x0100–0x01FF
16bitové periferie. K nim je nutné přistupovat pomocí 16bitových zátěží a obchodů.
0x0200–0x09FF
Až 2048 bajtů RAM .
0x0C00–0x0FFF
1024 bytů ROM zavaděče bootstrapu (pouze flashové části).
0x1000–0x10FF
256 bajtů datové paměti ROM ROM (pouze části flash).
0x1800-0x19FF
512 bajtů datového FRAMu (většina FRAM MCU, uživatelsky zapisovatelných neobsahuje žádná kalibrační data)
0x1100–0x38FF
Rozšířená RAM u modelů s více než 2048 bajty RAM. (0x1100–0x18FF je kopie 0x0200–0x09FF)
0x1100–0xFFFF
Až 60 kilobajtů programové paměti ROM. Menší ROM začínají na vyšších adresách. Posledních 16 nebo 32 bajtů jsou vektory přerušení .

Několik modelů obsahuje více než 2048 bajtů paměti RAM; v takovém případě RAM začíná na 0x1100. Prvních 2048 bajtů (0x1100–0x18FF) je kvůli kompatibilitě zrcadleno na 0x0200–0x09FF. Některé nejnovější modely také ohýbají 8bitová a 16bitová periferní pravidla, což umožňuje 16bitový přístup k periferiím v rozsahu 8bitových periferních adres.

Existuje nová rozšířená verze architektury (pojmenovaná MSP430X), která umožňuje 20bitový adresní prostor . Umožňuje přidání ROM programu od 0x10000.

Řada 5xx má výrazně přepracovaný adresní prostor, přičemž první 4K je věnováno periferním zařízením a až 16 kB RAM.

Reference

  1. ^ Evanczuk, Stephen (20. srpna 2013). „Prezentace: Nejpopulárnější MCU vůbec“ . edn.com . Síť pro návrh elektroniky . Citováno 3. září 2020 .
  2. ^ MSP430 poběží na hroznech - video na YouTube
  3. ^ a b D. Peters, D. Raskovic a D. Thorsen, „Energeticky účinný paralelní vestavěný systém pro malé satelitní aplikace“ , ISAST Transactions on Computers and Intelligent Systems , sv. 1 (2), 2009
  4. ^ Mikroprocesory MSP430 s nejnižším výkonem od Texas Instruments
  5. ^ a b http://www.ti.com/lit/slau445
  6. ^ [1] , web Energia
  7. ^ Článek MSP430 publikovaný včasopise IEEE .
  8. ^ Vizuální řešení
  9. ^ MSP430 LaunchPad (MSP-EXP430G2) , Texas Instruments Embedded Processors Wiki
  10. ^ "MSP430 Ultra-Low-Power Microcontroller" (PDF) . Texas Instruments . Vyvolány 9 July je 2008 .
  11. ^ Je pojmenován bit velikostiA/L, kdeL(long) používají jiné procesory k označení 32bitových operandů. Také popis instrukce SXTX (MSP430F5xx Family User's Guide alau208f strana 237) popisuje účinek instrukce v registrových bitech 20–31.

externí odkazy

Komunitní a informační weby

Vizuální programování Generátory C kódu

Kompilátory, assemblery a IDE

  Zdarma kompilátor a IDE

  Nejoblíbenější neomezená IDE a kompilátory

  Různé IDE

Seznam nástrojů pro ladění (není kompletní)

název Výrobce Rozhraní Protokol (y) Postavení
MSP-FET430PIF TI Paralelní port JTAG
MSP-FET430UIF TI USB rozhraní JTAG, Spy-Bi-Wire
MSP-FET TI USB rozhraní JTAG, Spy-Bi-Wire
MSP-430 LaunchPad TI USB rozhraní Spy-Bi-Wire
MSP-430 LaunchPad eZ-FET TI USB rozhraní Spy-Bi-Wire
eZ430-F2013 TI USB rozhraní Spy-Bi-Wire
eZ430-RF2500 TI USB rozhraní Spy-Bi-Wire
FETP SoftBaugh Paralelní port JTAG
USBP SoftBaugh USB rozhraní JTAG, Spy-Bi-Wire přerušeno
MSP430-JTAG Olimex Paralelní port JTAG
MSP430-JTAG-ISO Olimex USB rozhraní JTAG, Spy-Bi-Wire zastaralý
MSP430-JTAG-ISO-MK2 Olimex USB rozhraní JTAG, Spy-Bi-Wire
MSP430-JTAG-Tiny Olimex USB rozhraní JTAG, Spy-Bi-Wire nenalezeno
MSP430-JTAG-TINY-V2 Olimex USB rozhraní JTAG ?, Spy-Bi-Wire
MSP430-JTAG-RF Olimex USB rozhraní JTAG, Spy-Bi-Wire
FlashPro-CC Elprotronic USB rozhraní JTAG, Spy-Bi-Wire, BSL
VisSim /ECD Vizuální řešení USB rozhraní JTAG, Spy-Bi-Wire
LA-3713 Lauterbach Rozhraní USB / Ethernet JTAG, Spy-bi-Wire

Další nástroje