TI MSP430

TI MSP430
デザイナーテキサス・インスツルメンツ
ビット16ビット
紹介された1992年2月14日
タイプ記憶–記憶
エンディアンリトルエンディアン
拡張機能MSP430X
レジスター
16個のレジスタ、R0 – プログラムカウンタ、R1 – スタックポインタ、R2 – ステータスレジスタ、R2/R3 – 定数ジェネレータ、R4からR15は汎用
MSP 430 FG438 による血糖値測定器の駆動
テキサス・インスツルメンツ社製MSP430チップセット用の実験用ボード2枚の写真。左がチップサイズが大きいバージョン、右がUSB形式の小型バージョン。

MSP430テキサスインスツルメンツ社のミックスドシグナルマイクロコントローラファミリで、1992年2月14日に初めて発表されました。[ 1 ] 16ビットCPUをベースに構築されたMSP430は、低消費電力、 [ 2 ]組み込みアプリケーション、低コストを目的として設計されました。

特徴

Aktivmed GlucoCheck Comfort 血糖値測定器 – LCD の下のプリント回路基板に MSP 430 CPU が搭載されている

MSP430の基本的な特徴は低消費電力である。最初のMSP430(MSP430C3xx)の消費電力は約400 uA/MHzで、基本タイマーとLCDドライバーがアクティブな低電力モードでは2 uA未満であった。最近のMSP(MSP430FR5xx)では、アクティブモードでの消費電力は約100~120 uA/MHzで、RTCがアクティブな低電力モードでは500 nAである。CPU自体の消費電力は32 uA/MHz未満である。[ 3 ]フラッシュの代わりにFRAMを使用するMSP430FRシリーズは、追加の電力を必要とせずに不揮発性メモリへの高速書き込みも可能である。

MSP430は最大7つの異なる低消費電力モードを備えています。ウェイクアップ時間はモードとMSP430の世代によって異なります。最速のMSP430ファミリプロセッサでは、ウェイクアップ時間は1マイクロ秒未満です。

MSP430は最大25MHzで動作し、レジスタ間演算は1命令あたり1サイクルで実行されます。MSP430ファミリーには550種類以上([ 4 ]パッケージのバリエーションは含みません)の製品があります。0.5~512KBのフラッシュメモリ、または0.5~256KBのFRAMと最大66KBのRAMを搭載したマイクロコントローラがあります。

デバイスには、通常の周辺機器を備えたさまざまな世代があります。

あまり一般的ではない周辺オプションには、信号調整用のオンチップ演算増幅器(op-amp) 、12 ビットデジタル - アナログ コンバーター(DAC)、液晶ディスプレイ(LCD) ドライバー、ハードウェア乗算器USB、およびADC 結果用の直接メモリ アクセス(DMA) があります。一部の古い消去可能プログラマブル読み取り専用メモリ ( EPROM、MSP430E3xx など) と大容量マスク ROM (MSP430Cxxx) バージョンを除き、すべてのデバイスは、ジョイント テスト アクション グループ ( JTAG )、完全な 4 線式またはSpy-Bi-Wire )、 RS-232などのUARTを使用する組み込みブートストラップローダー (BSL) 、またはUSB をサポートするデバイス上のUSBを介してインシステム プログラミングが可能です。BSL は、F20xx、G2xx0、G2xx1、G2xx2、または I20xx ファミリのデバイスには含まれていません。

メモリ制限

しかし、より複雑な組み込みシステムでの使用を妨げる制限があります。MSP430には外部メモリバスがないため、オンチップメモリ​​(最大512KBのフラッシュメモリと66KBのランダムアクセスメモリ(RAM))に制限されており、大きなバッファやデータテーブルを必要とするアプリケーションには小さすぎる可能性があります。また、DMAコントローラは搭載されていますが、DMA出力ストローブがないため、チップ外へのデータ転送に用いることは非常に困難です。[ 6 ]

MSP430 CPU

テキサスインスツルメンツ MSP430 レジスタ
1 51 41 31 21 11 00 90 80 70 60 50 40 30 20 10 0(ビット位置)
PC/R0 プログラムカウンタ
SP/R1 スタックポインタ
予約済み VZCステータスレジスタ
CG2/R3 定数ジェネレータ
R4 GPレジスタ4
R5 GPレジスター5
R6 GPレジスタ6
R7 GPレジスター7
R8 GPレジスタ8
R9 GPレジスター9
R10 GPレジスター10
R11 GPレジスター11
R12 GPレジスター12
R13 GPレジスター13
R14 GPレジスター14
R15 GPレジスター15

建築

MSP430 CPUはフォン・ノイマン・アーキテクチャを採用しており、命令とデータ用のアドレス空間は1つです。メモリはバイトアドレス指定され、バイトのペアはリトルエンディアン方式で結合され、16ビットワードを構成します。

プロセッサには16個の16ビットレジスタ[ 7 ]が搭載されており、そのうち4つは特別な用途に使用されています。R0はプログラムカウンタ、R1はスタックポインタ、R2はステータスレジスタ、R3は「定数ジェネレータ」で、読み出しはゼロとして書き込みは無視されます。R3とR2を用いたアドレスモードエンコーディングの追加により、即値オペランドワードを必要とせずに、合計6つの一般的な定数値(0、1、2、4、8、-1)を使用できます。R4からR15は汎用的に使用できます。

命令セットは非常にシンプルで、3つのカテゴリに分類される27個の命令が存在します。ほとんどの命令は、B/Wビットの値に応じて、.B(8ビットバイト)または.W(16ビットワード)の接尾辞付きバージョンで実行されます。B/Wビットは、8ビットの場合は1、16ビットの場合は0に設定されます。接尾辞がない場合は、.Wと同じです。メモリに対するバイト操作はアドレス指定されたバイトのみに影響し、レジスタに対するバイト操作は最上位バイトをクリアします。

10ビットの符号付きジャンプオフセットはワード変位として格納されます。オフセットはPCに加算される前に2倍されます。16ビットジャンプはMOVORADD命令 で実装できます。

命令セット

MSP430命令セット
15141312 111098 7654 3210命令
000100オペコード白黒として登録する 単一オペランド演算
000100000白黒として登録する RRCキャリーを介して右回転(1ビット)
0001000010として登録する SWPBスワップバイト
000100010白黒として登録する RRA右回転(1ビット)演算
0001000110として登録する SXTバイトをワードに符号拡張
000100100白黒として登録する PUSH 値をスタックに プッシュする
0001001010として登録する CALLサブルーチン呼び出し。PC をプッシュし、ソースを PC に移動します。
0001001100000000 RETI割り込みから戻る; SR をポップしてから PC をポップする
001状態10ビット符号付きオフセット 条件ジャンプ; PC = PC + 2×オフセット + 2
00100010ビット符号付きオフセット JNE / JNZ等しくない/ゼロの場合にジャンプ
00100110ビット符号付きオフセット JEQ / JZ等しい/ゼロの場合にジャンプ
00101010ビット符号付きオフセット JNC / JLOキャリー/ローワーがない場合ジャンプ
00101110ビット符号付きオフセット JC / JHS繰り上がり/それ以上または同じ場合はジャンプ
00110010ビット符号付きオフセット JN負の場合ジャンプ
00110110ビット符号付きオフセット JGE大きいか等しい場合はジャンプ
00111010ビット符号付きオフセット JL少ない場合はジャンプ
00111110ビット符号付きオフセット JMPジャンプ(無条件)
オペコードソース広告白黒として行き先 2オペランド演算
0100ソース広告白黒として行き先 MOVソースを宛先に移動する
0101ソース広告白黒として行き先 ADDソースを宛先に追加
0110ソース広告白黒として行き先 ADDCソースを加算し、宛先に繰り上げる
0111ソース広告白黒として行き先 SUBCソースから宛先を減算する(キャリー付き)
1000ソース広告白黒として行き先 SUBソースから宛先を減算する
1001ソース広告白黒として行き先 CMPソースと宛先を比較(減算するふり)
1010ソース広告白黒として行き先 DADDソースから宛先への10進加算(キャリー付き)
1011ソース広告白黒として行き先 BIT送信元と送信先のビットをテストする
1100ソース広告白黒として行き先 BICビットクリア (dest &= ~src)
1101ソース広告白黒として行き先 BISビットセット(論理OR)
1110ソース広告白黒として行き先 XOR排他的論理和ソースと宛先
1111ソース広告白黒として行き先 AND論理積ソースと宛先 (dest &= src)

命令は16ビットで、最大2つの16ビット拡張ワードが続きます。アドレッシングモードは、2ビットのソースアドレッシングモード(As)フィールドと1ビットのデスティネーションアドレッシングモード(Ad)フィールドによって指定されます。R0を用いていくつかの特別なバージョンを構築でき、R2(ステータスレジスタ)とR3(定数ジェネレータ)を用いたレジスタ直接モード以外のモードは特別に解釈されます。Adは1ビットのみであるため、Asのアドレッシングモードのサブセットしか指定できません。

インデックス・アドレッシング・モードでは、命令に16ビットの拡張ワードが追加されます。ソースとデスティネーションの両方がインデックスされている場合、ソース拡張ワードが先頭になります。xは、以下の表の命令ストリームにおける次の拡張ワードを指します。

MSP430のアドレス指定モード
として広告登録する構文説明
000nR nレジスタ直接。オペランドはR nの内容です。
011nx (R n )インデックス付き。オペランドはメモリ内のアドレス R n + xにあります。
10n@R nレジスタ間接。オペランドはR nに保持されているアドレスのメモリ内にあります。
11n@R n +間接的な自動インクリメント。上記のように、レジスタは1または2ずつ増加します。
R0 (PC) を使用したアドレス指定モード
0110(パソコン)住所シンボリック。x(PC) と同等。オペランドはメモリ上のアドレス PC+ xにある。
110(パソコン)# x即値。@PC+と同等。オペランドは命令ストリーム内の次のワードです。
R2(SR)とR3(CG)を使用したアドレス指定モード、特殊なケースのデコード
0112(SR)住所絶対。オペランドはメモリ内のアドレスxにあります。
102(SR)#4定数。オペランドは定数 4 です。
112(SR)#8定数。オペランドは定数 8 です。
003(CG)#0定数。オペランドは定数 0 です。
013(CG)#1定数。オペランドは定数 1 です。インデックス ワードはありません。
103(CG)#2定数。オペランドは定数 2 です。
113(CG)#−1定数。オペランドは定数 -1 です。

命令は通常、フェッチまたは保存されるワードごとに 1 サイクルかかります。そのため、命令時間は、単純なレジスタ間命令の場合は 1 サイクルから、ソースと宛先の両方にインデックスが付けられた命令の場合は 6 サイクルまでの範囲になります。

MSP430Xの20ビットアドレッシング拡張機能では、最大10クロックサイクルを要する命令が追加されます。ペリフェラルビットのセットまたはクリアには2クロックかかります。ジャンプは、実行されるかどうかに関わらず2クロックかかります。2xxシリーズでは、16MHzで2MCLKのクロックは125nsです。

プログラムカウンタへの移動は許可されており、ジャンプを実行します。例えば、サブルーチンからの戻りは として実装されていますMOV @SP+,PC

R0(PC)またはR1(SP)を自動インクリメントアドレッシングモードで使用する場合、これらのレジスタは常に2ずつインクリメントされます。その他のレジスタ(R4~R15)は、オペランドサイズ(1バイトまたは2バイト)だけインクリメントされます。

ステータスレジスタには、4つの演算ステータスビット、グローバル割り込みイネーブル、および低電力モードに移行するために各種クロックを無効にする4つのビットが含まれています。割り込みを処理する際、プロセッサはステータスレジスタをスタックに保存し、低電力ビットをクリアします。割り込みハンドラが保存されたステータスレジスタを変更しない場合、割り込みから復帰すると元の低電力モードが再開されます。

疑似操作

追加された多くの命令は、上記の命令のエイリアスとして実装されています。例えば、「サブルーチンからの復帰」命令は具体的には存在しませんが、 として実装されていますMOV @SP+,PC。エミュレートされる命令は以下のとおりです。

MSP430 エミュレートされた命令
エミュレートされた実際の説明
ADC . x dstADDC. x #0、dst目的地へのキャリーを追加
BR夏時間MOV dst、PC目的地への分岐
CLR . x dstMOV. x #0、dst明確な目的地
CLRCBIC #1、SRクリアキャリービット
CLRNBIC #4、SR負のビットをクリア
CLRZBIC #2、SRゼロビットをクリア
DADC . x dstDADD. x #0、dst10進加算の繰り上がりを宛先に加算する
12月. x夏時間SUB. x #1、dstデクリメント
DECD . x dstSUB. x #2、dst二重減分
ディントBIC #8、SR割り込みを無効にする
エイントBIS #8、SR割り込みを有効にする
INC . x dst追加。x # 1、dstインクリメント
INCD . x dst追加。x # 2、dst二重増加
INV . x dstXOR。x # −1、dst反転
いいえ移動 #0,R3操作なし
POP dstMOV @SP+、dstスタックからポップ
RETMOV @SP+、PCサブルーチンからの戻り
RLA . x dst追加。x dst dst左回転演算(1ビット左シフト)
RLC . x dstADDC. x dstdst左回転して運ぶ
SBC . x dstSUBC. x #0、dst借用先から(1−繰り上がり)を引く
SET . x dstMOV. x #-1、dst目的地を設定
セットBIS #1、SRキャリービットを設定する
セットンBIS #4、SR負のビットを設定する
セッツBIS #2、SRゼロビットを設定する
TST . x dstCMP. x #0、dstテスト先

即値定数 -1 (0xffff)、0、1、2、4、8 は、別個の即値オペランドを必要とせずに 1 ワード命令で指定できることに注意してください。

MSP430X 20ビット拡張

基本的なMSP430は、64Kのアドレス空間を超えるメモリ(ROM + RAM + 周辺機器)をサポートできません。これに対応するため、MSP430の拡張版は20ビットのレジスタと20ビットのアドレス空間を使用し、最大1MBのメモリをサポートします。この拡張版は基本版と同じ命令セットを使用しますが、以下の2つの拡張機能を備えています。

  1. 一般的な操作のための限られた数の20ビット命令、および
  2. 任意の命令を 20 ビットまで拡張できる汎用プレフィックスワード メカニズム。

拡張命令には、特にマルチビット シフトやマルチレジスタのロード/ストア操作などの追加機能がいくつか含まれています。

20ビット演算では、長さサフィックス「A」(アドレス)が.Bや.Wの代わりに使用されます。.Wは引き続きデフォルトです。一般的に、短い演算は宛先レジスタの上位ビットをクリアします。

新しい指示は次のとおりです。

MSP430X拡張命令
15141312 111098 7654 32102番目の単語命令
0000ソース00オペコード行き先拡張メモリレジスタ移動
0000ソース0000夏時間MOVA @R src、R dst
0000ソース0001夏時間MOVA @R src +、R dst
0000アドレス[19:16]0010夏時間アドレス[15:0] MOVA &abs20、R dst
0000ソース0011夏時間x[15:0] MOVA x(R src ),R dst
0000n−1op.010和/英行き先ビットシフト(1~4ビット位置)
0000n−100010和/英夏時間RRCM . x # n ,R dst (キャリーを介して右に回転します。)
0000n−101010和/英夏時間RRAM . x # n ,R dst (右回転算術、つまり符号付き右シフト)
0000n−110010和/英夏時間RLAM . x # n ,R dst (左回転算術、つまり左シフト)
0000n−111010和/英夏時間RRUM . x # n ,R dst (符号なし右回転、つまり論理右シフト)
0000ソース011op.行き先拡張レジスタメモリ移動
0000ソース0110アドレス[19:16]アドレス[15:0] MOVA R src、&abs20
0000ソース0111夏時間x[15:0] MOVA R src、x(R dst )
0000ソース1オペコード行き先拡張ALU演算
0000imm[19:16]1000夏時間imm[15:0] MOVA #imm20、R dst
0000imm[19:16]1001夏時間imm[15:0] CMPA #imm20、R dst
0000imm[19:16]1010夏時間imm[15:0] ADDA #imm20、R dst
0000imm[19:16]1011夏時間imm[15:0] SUBA #imm20、R dst
0000ソース1100夏時間MOVA Rソース、R dst
0000ソース1101夏時間CMPA Rソース、R dst
0000ソース1110夏時間ADDA Rソース、R宛先
0000ソース1111夏時間SUBA Rソース、R dst
00010011op.モード様々カラ
0001001100000000RETI (MSP430と同じ)
0001001101として登録するCALLAソース
000100111000腹筋[19:16]腹筋[15:0] カラ&腹筋20
000100111001x[19:16]x[15:0] カラx(PC)
000100111010(予約済み)
000100111011imm[19:16]imm[15:0] カラ#imm20
0001001111(予約済み)
000101ディレクター和/英n−1登録する指定 されたn個のレジスタをプッシュ/ポップする
0001010和/英n−1ソースPUSHM . x # n、R src  R src、R( src −1)、... R( srcn +1) をプッシュする
0001011和/英n−1dst−n+1POPM . x # n、R dst  ポップ R( dstn +1)、R( dstn +2)、... R dst

その他の命令には、プレフィックスワードを追加することで20ビットに拡張できます。プレフィックスワードにはオペランドサイズビットが追加され、既存のB/Wビットと組み合わせてオペランドサイズを指定します。未使用のサイズの組み合わせが1つ存在しますが、将来的に32ビットのオペランドサイズに使用される可能性があることが示唆されています。[ 8 ]

プレフィックスワードには2つの形式があり、どちらが選択されるかは後続の命令によって異なります。命令にレジスタ以外のオペランドが含まれる場合は、単純な形式が使用されます。この形式では、命令ストリーム内のオフセットまたは即値定数を20ビットに拡張するための2つの4ビットフィールドが提供されます。

命令がレジスタ間命令の場合、異なる拡張ワードが使用されます。これには、キャリーインを抑制する「ZC」フラグ(キャリービットを常に使用するDADDなどの命令に有用)と繰り返し回数が含まれます。拡張ワードの4ビットフィールドは、繰り返し回数(最初の実行に加えて0~15回の繰り返し)、または4ビットの繰り返し回数を含むレジスタ番号のいずれかをエンコードします。

MSP430Xの接頭辞
15141312 111098 7654 3210命令
00011A/L00拡張語
00011出典[19:16]A/L00夏時間[19:16] メモリオペランド拡張
0001100ZC0A/L00n−1 レジスタオペランド拡張(即値繰り返しカウント)
0001100ZC1A/L00ルン レジスタオペランド拡張(レジスタ繰り返しカウント)

サンプルコード

以下のアセンブラソースコードは、指定されたサイズのデータ​​ワードブロックをある場所から別の場所にコピーするサブルーチン のものですmemcpy。データブロックは1ワードずつコピーされます。

 1000 1000 44B5 0000 1004 5325 1006 5336 1008 43FB 100A 4130 100℃ 
; memcpy -- ; メモリブロックをある場所から別の場所にコピーします。; ; エントリレジスタ; R4 - ソースデータブロックのアドレス; R5 - ターゲットデータブロックのアドレス; R6 - コピーするワード数org 1000h ;原点は1000h memcpy: mov.w @ r4 + , 0 ( r5 ) ;ワードを@r4から@r5にコピーし、r4を移動します。add.w #2,r5 ;宛先ポインタを移動します。 add.w #-1,r6 ;ワードカウンタを10進数化します。 jnz memcpy ;r6 ≠ 0 の場合はジャンプします。mov.w @ sp + , pc ;戻り終了

MSP430 アドレス空間

MSP430 アドレス空間の一般的なレイアウトは次のとおりです。

0x0000~0x0007
プロセッサ特殊機能レジスタ(割り込み制御レジスタ)
0x0008~0x00FF
8ビットペリフェラル。これらには8ビットのロードとストアを使用してアクセスする必要があります。
0x0100~0x01FF
16ビットペリフェラル。これらには16ビットのロードとストアを使用してアクセスする必要があります。
0x0200~0x09FF
最大 2048 バイトのRAM
0x0C00~0x0FFF
1024 バイトのブートストラップ ローダー ROM (フラッシュ部分のみ)。
0x1000~0x10FF
256 バイトのデータフラッシュ ROM (フラッシュ部分のみ)。
0x1800-0x19FF
512バイトのデータFRAM(ほとんどのFRAM MCU、キャリブレーションデータを含まないユーザー書き込み可能)
0x1100~0x38FF
2048バイト以上のRAMを搭載したモデルの拡張RAM。(0x1100~0x18FFは0x0200~0x09FFのコピーです)
0x1100~0xFFFF
最大60キロバイトのプログラムROM。小さいROMは上位アドレスから始まります。最後の16バイトまたは32バイトは割り込みベクターです。

一部のモデルには2048バイトを超えるRAMが搭載されており、その場合、RAMは0x1100から始まります。最初の2048バイト(0x1100~0x18FF)は、互換性のために0x0200~0x09FFにミラーリングされています。また、最近のモデルの中には、8ビットおよび16ビットのペリフェラルのルールを緩和し、8ビットのペリフェラルアドレス範囲で16ビットアクセスを可能にしているものもあります。

20ビットのアドレス空間を可能にするアーキテクチャの新しい拡張バージョン(MSP430X)があります。これにより、0x10000から始まるプログラムROMが追加されます。

'5xx シリーズではアドレス空間が大幅に再設計され、最初の 4K が周辺機器専用となり、RAM は最大 16K になりました。

周辺機器

MSP430 周辺機器は、モデル間でアドレスが (ほぼ) 一貫しており、書き込み専用レジスタ (ハードウェア乗算器を除く) がないため、一般的に使いやすくなっています。

汎用I/Oポート0~10

周辺機器が不要な場合、ピンは汎用I/Oとして使用できます。ピンは「ポート」と呼ばれる8ビットのグループに分割され、各ポートは複数の8ビットレジスタによって制御されます。場合によっては、ポートはペアで配置され、16ビットレジスタとしてアクセスできます。

MSP430ファミリはP0からP10までの11個のI/Oポートを定義していますが、10個を超えるポートを実装しているチップはありません。P0は'3xxファミリにのみ実装されています。P7からP10は'4xxファミリと'2xxファミリの最大機種(および最大ピン数バージョン)にのみ実装されています。最新の'5xxファミリと'6xxファミリにはP1からP11があり、制御レジスタはより多くのポートペアを提供するために再割り当てされています。各ポートは以下のレジスタによって制御されます。特定の機能(状態変化時の割り込みなど)を実装していないポートは、対応するレジスタを実装していません。

P x IN
ポートx入力。これは読み取り専用レジスタであり、ポートのピンの現在の状態を反映します。
P xアウト
ポートx出力。この読み書きレジスタに書き込まれた値は、対応するピンが出力に設定されている場合、そのピンから出力されます。
P x方向
ポートxのデータ方向。1と書き込まれたビットは対応するピンを出力に設定します。0と書き込まれたビットは対応するピンを入力に設定します。
P x選択
ポートxの機能選択。1を書き込んだビットは、対応するピンを特定の周辺機器が使用するように設定します。0を書き込んだビットは、そのピンを汎用I/Oとして設定します。ポート0('3xxシリーズのみ)は他の周辺機器と多重化されておらず、P0SELレジスタはありません。
P xレン
ポートx抵抗有効化('2xxおよび'5xxのみ)。このレジスタにセットされたビットは、対応するI/Oピンが入力として設定されている場合でも、弱プルアップまたはプルダウン抵抗を有効化します。プルアップの方向は、P x OUTレジスタに書き込まれたビットによって設定されます。
P x DS
ポートxの駆動強度('5xxのみ)。このレジスタに設定されたビットは、高電流出力を有効にします。これにより出力電力は増加しますが、電磁干渉(EMI)が発生する可能性があります。

ポート0~2は、入力の変化に応じて割り込みを生成できます。この機能は、以下のレジスタで設定します。

P x IES
ポートxの割り込みエッジ選択。P x IFGビットをセットするエッジを選択します。入力ビットがP x IES状態と一致している状態から一致していない状態に変化すると(つまり、P x IES XOR P x INのビットがクリアからセットに変化するたびに)、対応するP x IFGビットがセットされます。
P x IE
ポートx割り込み有効。このビットと対応するP x IFGビットの両方がセットされている場合、割り込みが生成されます。
P x IFG
ポートx割り込みフラグ。対応するピンがP x IESによって要求された状態変更を行うたびにセットされます。ソフトウェアによってのみクリアできます。(ソフトウェアによってセットすることもできます。)
P x IV
ポートx割り込みベクター('5xxのみ)。この16ビットレジスタは、ピン変化割り込みを処理するための優先度エンコーダです。nがP x IFGで保留中でP x IEで有効になっている最下位の割り込みビットである場合、このレジスタは2 n +2として読み出されます。そのようなビットが存在しない場合は、0として読み出されます。スケール係数が2であるため、分岐テーブルへのオフセットとして直接使用できます。このレジスタを読み取ると、報告されたP x IFGフラグもクリアされます。

一部のピンは、入力または出力として特別な用途を持ちます。(例えば、タイマーピンはキャプチャ入力またはPWM出力として設定できます。)この場合、P x DIRビットは、P x SELビットがセットされているときにピンが2つの機能のうちどちらを実行するかを制御します。特別な機能が1つしかない場合、P x DIRは通常無視されます。P x SELビットがセットされている場合でもP x INレジスタは読み取り可能ですが、割り込み生成は無効になります。P x SELがクリアされている場合、特別な機能の入力はフリーズされ、外部ピンから切断されます。また、ピンを汎用出力に設定しても、割り込み生成は無効になりません

汎用I/Oレジスタアドレスマップ
'1xx~'4xx ファミリー
P x IN P xアウトP x方向P x選択P x IESP x IE P x IFGP xレン
P0 0x100x110x120x130x140x15
P1 0x200x210x220x260x240x250x230x27
P2 0x280x290x2a0x2e0x2c0x2d0x2b0x2f
P3 0x180x190x1a0x1b0x10
P4 0x1c0x1d0x1e0x1f0x11
P5 0x300x310x320x330x12
P6 0x340x350x360x370x13
PAP7 0x380x3a0x3c0x3e0x14
P8 0x390x3b0x3d0x3f0x15
PBP9 0x080x0a0x0c0x0e0x16
P10 0x090x0b0x0d0x0f0x17
'5xx~'6xxおよび'0xxファミリー
P x IN P xアウトP x方向P xレンP x DS P x選択P x IV P x IESP x IE P x IFG
PAP1 0x2000x2020x2040x2060x2080x20A0x20E0x2180x21A0x21C
P2 0x2010x2030x2050x2070x2090x20B0x21E0x2190x21B0x21D
PBP3 0x2200x2220x2240x2260x2280x22A
P4 0x2210x2230x2250x2270x2290x22B
パソコンP5 0x2400x2420x2440x2460x2480x24A
P6 0x2410x2430x2450x2470x2490x24B
PDP7 0x2600x2620x2640x2660x2680x26A
P8 0x2610x2630x2650x2670x2690x26B
体育P9 0x2800x2820x2840x2860x2880x28A
P10 0x2810x2830x2850x2870x2890x28B
P11 0x2A00x2A20x2A40x2A60x2A80x2AA
PJ 0x3200x3220x3240x3260x3284 ビットのみ。JTAG ピンと共有されます

統合された周辺機器

アナログ
  • アナログ-デジタルコンバータ
MSP430シリーズは、2種類のアナログ-デジタル変換(ADC)を提供します。10ビットおよび12ビットの逐次比較型コンバータと、16ビットのシグマデルタコンバータです。データ転送コントローラと16ワードの変換および制御バッファにより、MSP430はCPUの介入なしにサンプルを変換および保存し、消費電力を最小限に抑えます。
  • アナログプール
アナログプール(A-POOL)モジュールは、ADC、DAC、コンパレータ、SVS、または温度センサーとして構成できます。これにより、ユーザーは1回のセットアップで一連のアナログ機能を柔軟にプログラムできます。
  • 比較器A、A+
MSP430のコンパレータモジュールは、高精度なスロープを持つA/D変換を提供します。外部アナログ信号を監視し、電圧と抵抗値を測定します。選択可能な電力モードを備えています。
  • DAC12
DAC12モジュールは、内部/外部リファレンスの選択とプログラマブルなセトリングタイムを備えた12ビット電圧出力DACです。最適な消費電力を実現します。8ビットモードまたは12ビットモードに設定できます。複数のDAC12モジュールを使用する場合は、それらをグループ化して同期更新動作を行うことができます。
  • オペアンプ
レールツーレール出力とプログラム可能なセトリングタイムを備えた単電源、低電流動作を特長としています。ソフトウェアで選択可能な構成オプション:ユニティゲインモード、コンパレータモード、反転PGA、非反転PGA、差動アンプ、計装アンプ。
  • シグマデルタ(SD)
SD16/SD16_A/SD24_Aモジュールは、1.2Vリファレンスを内蔵した16/24ビットのシグマデルタA/Dコンバータを搭載しています。各コンバータは、内蔵温度センサーを含む最大8つの完全差動マルチプレクス入力を備えています。これらのコンバータは、最大1024(SD16_A/SD24_A)または256(SD16)のオーバーサンプリング比を選択可能な2次オーバーサンプリング・シグマデルタ変調器です。
タイマー
  • 基本タイマー(BT)
BTには​​2つの独立した8ビットタイマーがあり、カスケード接続することで16ビットタイマー/カウンターを構成できます。どちらのタイマーもソフトウェアによる読み書きが可能です。BTは拡張され、内蔵RTCとして機能します。内蔵カレンダーは31日未満の月を補正し、閏年補正機能も備えています。
  • リアルタイムクロック
RTC_A/Bは、カレンダー機能、柔軟なプログラム可能なアラーム機能、およびキャリブレーション機能を備えたクロックカウンタを提供する32ビットハードウェアカウンタモジュールです。RTC_Bには、主電源が故障した場合でもRTCを動作させるための、切り替え可能なバッテリバックアップシステムが搭載されています。
  • 16ビットタイマー
Timer_A、Timer_B、およびTimer_Dは、最大7つのキャプチャ/コンペアレジスタと様々な動作モードを備えた非同期16ビットタイマー/カウンターです。これらのタイマーは、複数のキャプチャ/コンペア、PWM出力、およびインターバルタイミングをサポートします。また、豊富な割り込み機能も備えています。Timer_Bは、プログラム可能なタイマー長(8ビット、10ビット、12ビット、または16ビット)やダブルバッファ型コンペアレジスタ更新などの追加機能を備え、Timer_Dは高分解能(4ns)モードを備えています。
WDT+は、ソフトウェアの問題発生後に制御されたシステム再起動を実行します。選択された時間間隔が経過すると、システムリセットが生成されます。アプリケーションでウォッチドッグ機能が不要な場合は、モジュールをインターバルタイマーとして設定し、選択された時間間隔で割り込みを生成することができます。
システム
  • 高度暗号化規格(AES)
AES アクセラレータ モジュールは、高度な暗号化規格に従って 128 ビット キーを使用して 128 ビット データの暗号化と復号化をハードウェアで実行し、ユーザー ソフトウェアで構成できます。
  • ブラウンアウトリセット(BOR)
BOR回路は低電源電圧を検出し、電源投入時または切断時にパワーオンリセット(POR)信号をトリガーしてデバイスをリセットします。MSP430 MCUのゼロパワーBOR回路は、すべての低電力モードを含め、常にオンになっています。
  • ダイレクトメモリアクセス(DMA)コントローラ
DMAコントローラは、CPUの介入なしに、アドレス範囲全体にわたって、あるアドレスから別のアドレスへデータを転送します。DMAは周辺モジュールのスループットを向上させ、システムの消費電力を削減します。このモジュールは最大3つの独立した転送チャネルを備えています。
MSP430のDMAサブシステムは非常に有能ですが、いくつかの欠陥があり、その中で最も重大なのは外部転送ストローブがないことです。DMA転送は外部からトリガーできますが、転送の完了を外部から示すものがありません。その結果、外部ソースとの間のDMAは、DMAを介して自動的にブロック全体ではなく、バイト転送ごとの外部トリガーに制限されます。これにより、プロセッサ間またはプロセッサとUSB間の通信を実装する際に、大幅な複雑化(コードの大幅な手動調整が必要になるなど)につながる可能性があります。[ 6 ]引用されている参考文献では、DMA転送用の高速ストローブを生成するためにあまり知られていないタイマーモードを使用しています。タイマーは、外部DMA転送ストローブの不足を容易に補うほど柔軟ではありません。
バイト位置へのワード転送を伴うDMA操作では、2バイト転送への変換ではなく、8ビットへの切り捨てが行われます。そのため、A/DまたはD/Aの16ビット値を使用したDMAの有用性は低下します(ただし、MSP 430の一部のバージョンでは、タイマー出力などの外部から参照可能なトリガーを使用して、ポートAまたはBを介してこれらの値をDMA転送することは可能です)。
  • 拡張エミュレーションモジュール (EEM)
EEMは、2~8個のハードウェアブレークポイント、複雑なブレークポイント、指定アドレスでの読み取り/書き込み発生時のブレークなど、様々なレベルのデバッグ機能を提供します。すべてのフラッシュベースのMSP430デバイスに組み込まれています。
  • ハードウェア乗算器
一部のMSP430モデルには、メモリマップドハードウェア乗算器ペリフェラルが搭載されており、16×16+32→33ビットの様々な積和演算を実行します。MSP430としては珍しく、このペリフェラルには暗黙的に2ビットの書き込み専用レジスタが搭載されており、コンテキストスイッチを事実上不可能にしています。このペリフェラルはCPUの動作に干渉せず、DMAでアクセスできます。すべてのMSP430F5xxデバイスと一部のMSP430F4xxデバイスのMPYは、最大32ビット×32ビットの演算能力を備えています。
使用される 8 つのレジスタは次のとおりです。
住所名前関数
0x130MPY符号なし乗算のオペランド1
0x132MPYS符号付き乗算のオペランド1
0x134マック符号なし積和演算のオペランド1
0x136マック符号付き積和演算のオペランド1
0x138OP2乗算演算の2番目のオペランド
0x13Aレスロ乗算結果の下位ワード
0x13CResHi乗算結果の上位ワード
0x13E合計積和演算を実行する
最初のオペランドは4つの16ビットレジスタのいずれかに書き込まれます。書き込まれたアドレスによって実行される演算が決まります。書き込まれた値はどのレジスタからも読み出すことができますが、書き込まれたレジスタ番号は復元できません。
乗算累積演算が必要な場合は、レジスタResLoResHiレジスタも初期化する必要があります。
その後、レジスタへの書き込みが行われるたびにOP2乗算が実行され、その結果が結果レジスタに格納または加算されます。このSumExtレジスタは読み取り専用レジスタで、符号なし乗算の場合は加算のキャリー出力(0または1)、符号付き乗算の場合は32ビット和の符号拡張(0または-1)が格納されます。符号付き積和演算の場合、真のキャリー出力結果(-1、0、または+1)を決定するにはSumExt、前の内容の最上位ビットと値を加算する必要がありますSumHi
結果は3クロックサイクルの遅延後に利用可能になります。これは、後続の命令と後続のインデックスワードをフェッチするのに必要な時間です。したがって、この遅延は通常は目に見えません。明示的な遅延は、結果のフェッチに間接アドレッシングモードを使用する場合にのみ必要です。
  • メモリ保護ユニット (MPU)
FRAM MPUは、指定された読み取り専用メモリセグメントへの偶発的な書き込みや、定数メモリからのコード実行から保護します。MPUはビットレベルのアドレス指定によりメモリの任意の領域を設定できるため、FRAMデバイスではメモリ全体にアクセスして読み取り、書き込み、実行操作を行うことができます。
  • 電源管理モジュール(PMM)
PMMはコアロジックへの電源電圧を生成するとともに、デバイスに印加される電圧とコア用に生成される電圧の両方を監視・制御するための複数のメカニズムを提供します。PMMは、低ドロップアウト電圧レギュレータ(LDO)、ブラウンアウトリセット(BOR)、および電源電圧監視・監視回路と統合されています。
  • 電源電圧監視回路(SVS)
SVSは、AVCC電源電圧または外部電圧を監視するための設定可能なモジュールです。SVSは、電源電圧または外部電圧がユーザーが選択したしきい値を下回った場合に、フラグをセットするか、パワーオンリセット(POR)を生成するように設定できます。
コミュニケーションとインターフェース
  • 静電容量式タッチセンスI/O
統合型静電容量式タッチセンスI/Oモジュールは、タッチボタンやタッチスライダーなどのアプリケーションに様々なメリットをもたらします。このシステムは、自己発振を生成するための外付け部品を必要とせず(部品コストを削減)、自己発振の周波数を決定するコンデンサを直接接続できます。さらに、複数のパッドを接続するための外付けMUXも不要で、各I/Oパッドを静電容量式タッチセンス入力として直接使用できます。約0.7Vのヒステリシスにより、堅牢な動作が保証されます。制御とシーケンスはすべてソフトウェアで実行されます。
  • 汎用I/O
MSP430デバイスには最大12個のデジタルI/Oポートが実装されています。各ポートには8本のI/Oピンがあります。すべてのI/Oピンは入力または出力として設定でき、個別に読み取りまたは書き込みが可能です。ポートP1とP2には割り込み機能があります。MSP430F2xx、F5xx、および一部のF4xxデバイスには、個別に設定可能なプルアップ抵抗またはプルダウン抵抗が内蔵されています。
  • サブGHz RFフロントエンド
柔軟性の高いCC1101 Sub-1GHzトランシーバは、あらゆるRF環境において良好な通信リンクを確立するために必要な感度とブロッキング性能を備えています。また、低消費電流を特徴とし、柔軟なデータレートと変調フォーマットをサポートします。
  • USART(UART、SPI、I²C)
ユニバーサル同期/非同期送受信(USART)ペリフェラルインターフェースは、1つのハードウェアモジュールで非同期RS-232通信と同期SPI通信をサポートします。MSP430F15x/16x USARTモジュールは、I²C、プログラマブルボーレート、そして受信と送信の独立した割り込み機能もサポートします。
  • USB
USBモジュールはUSB 2.0仕様に完全準拠しており、12Mbps(フルスピード)のデータレートで制御、割り込み、バルク転送をサポートします。USBのサスペンド、レジューム、リモートウェイクアップ機能をサポートし、最大8つの入力エンドポイントと8つの出力エンドポイントを設定できます。モジュールには、統合型物理インターフェース(PHY)、USBクロック生成用の位相ロックループ(PLL)、そしてバスパワーおよびセルフパワーデバイスに対応する柔軟な電源システムが搭載されています。
  • USCI (UART、SPI、I²C、LIN、IrDA)
ユニバーサルシリアルコミュニケーションインターフェース(USCI)モジュールは、同時に使用できる2つの独立したチャネルを備えています。非同期チャネル(USCI_A)は、UARTモード、SPIモード、IrDAのパルスシェーピング、LIN通信の自動ボーレート検出をサポートします。同期チャネル(USCI_B)は、I²CおよびSPIモードをサポートします。
  • USI(SPI、I²C)
ユニバーサル シリアル インターフェイス (USI) モジュールは、最大 16 ビットのデータ長を持つ同期シリアル通信インターフェイスであり、最小限のソフトウェアで SPI および I²C 通信をサポートできます。
  • 赤外線変調
MSP430FR4xxxおよびMSP430FR2xxxシリーズのチップで利用可能なこの機能は、SYSCFGレジスタセットを介して設定されます。このペリフェラルは、他のペリフェラル(タイマー、eUSCI_A)と連携して、出力ピンにIR変調信号を生成します。[ 9 ]
計量
  • ESP430(FE42xxデバイスに統合)
ESP430CEモジュールは、CPUに依存せずに計測計算を実行します。モジュールには、独立したSD16、HW乗算器、および単相電力計測アプリケーション用のESP430組み込みプロセッサエンジンが搭載されています。
  • スキャンインターフェース(SIF)
SIFモジュールは、アナログフロントエンドを備えたプログラマブルステートマシンであり、最小限の消費電力で直線または回転運動を自動測定するために使用されます。このモジュールは、様々なタイプのLCセンサーおよび抵抗性センサーをサポートし、直交エンコーディングにも対応しています。
画面
  • LCD/LCD_A/LCD_B
LCD/LCD_Aコントローラは、最大196セグメントのLCDを直接駆動します。スタティック、2mux、3mux、4muxのLCDをサポートします。LCD_Aモジュールには、コントラスト制御用のチャージポンプが内蔵されています。LCD_Bは、個別の点滅メモリを使用して、個々のセグメントの点滅を可能にします。
  • LCD_E
LCD_Eコントローラは、新しいMSP430FR4xxxシリーズマイクロコントローラに搭載されており、最大448セグメントのLCDを直接駆動します。スタティック、2mux、3mux、4mux、5mux、6mux、7mux、8mux(1/3バイアス)のLCDをサポートします。セグメントピンとコモンピンは、利用可能なLCD駆動ピンに再プログラム可能です。この周辺機器は、LPM3.5(RTC動作+メインCPUコアシャットダウン低電力モード)で駆動可能です。[ 9 ]

ソフトウェア開発環境

テキサス・インスツルメンツは、大型(約2センチメートル四方)および小型(約1ミリメートル四方)のMSP430チップをサポートする様々なハードウェア実験ボードを提供しています。TIは、直接提供およびパートナーとの連携によるソフトウェア開発ツールも提供しています(コンパイラ、アセンブラ、IDEの完全なリストを参照)。そのようなツールチェーンの1つが、IAR C/C++コンパイラ統合開発環境(IDE)です。KickstartエディションはTIまたはIARから無料でダウンロードできます。コンパイラとデバッガのC/C++コードは8KBまでに制限されています(この無料ツールチェーンでは、任意のサイズのアセンブリ言語プログラムを開発およびデバッグできます)。

TIは、 EclipseベースのCode Composer Studio IDE(CCS)に、自社製のコンパイラとツールを組み合わせたバージョンも提供しています。フル機能版を販売しているほか、コードサイズ制限が16KBの無償版もダウンロード可能です。CCSはインサーキットエミュレータをサポートし、シミュレータやその他のツールも含まれています。また、TIが販売する他のプロセッサでも動作します。

Arduinoを使い慣れている方には、オープンソースの電子プロトタイピングプラットフォームであるEnergiaというソフトウェアもあります。Energiaは、WiringとArduinoフレームワークをTexas Instruments MSP430ベースのLaunchPadに導入し、ArduinoコードをエクスポートしてMSP430チップをプログラミングできるようにすることを目的としています。Energiaの最新リリースは、MSP-EXP430G2xxx、MSP-EXP430FR5739、MSP-EXP430FR5969、MSP-EXP430FR5994、MSP-EXP430F5529LP、Stellaris EK-LM4F120XL、Tiva-C EK-TM4C123GXL、Tiva-C EK-TM4C1294XL、CC3200 Wi-Fi LaunchPadをサポートしています。[ 10 ]

オープンソースコミュニティは、 GNUツールセットをベースにした無料で利用可能なソフトウェア開発ツールセットを開発しています。GNUコンパイラは現在、以下の3つのバージョンで提供されています。

MSPGCC

MSPGCC ユニアーチ

TIはRedHatと協議し、 GNU Compiler Collection C/C++コンパイラにMSP430アーキテクチャの公式サポートを提供しました。このmsp430-elf-gccコンパイラは、TIのCode Composer Studioバージョン6.0以降でサポートされています。

非常に初期のllvm-msp430プロジェクトがあり、最終的にはLLVMで MSP430 のより優れたサポートが提供される可能性もあります。

他にも、エディタ、コンパイラ、リンカ、アセンブラ、デバッガ、場合によってはコードウィザードを含む商用開発ツールセットが利用可能です。モデルベース開発用のブロック線図言語であるVisSimは、線図から直接効率的な固定小数点Cコードを生成します。 [ 11 ] VisSimで生成されたF2013のクローズドループADC+PWMベースのPID制御コードは、1KB未満のフラッシュと100バイトのRAMにコンパイルされます。[ 12 ] VisSimには、MSP430ファミリ全体に対応するオンチップ周辺ブロックI²C、ADC、SD16、PWMがあります。

開発プラットフォーム

MSP430F2013とその兄弟製品は、 MSP430G2バリューラインを除き、デュアル・インライン・パッケージ(DIP)で提供される唯一のMSP430製品であるという点で際立っています。このファミリーの他の製品は、各種表面実装パッケージでのみ提供されています。TIはeZ430開発プラットフォームのサポートに多大な労力を費やし、ホビーユーザーがプロトタイプで簡単に使用できるように生のチップを提供しています。

eZ430-F2013

TIは、低予算の問題に対処するため、USBメモリ(現在は販売終了)に非常に小型の実験用ボード、eZ430-F2013を提供しました。これにより、設計者はコンピューターで使用できる安価な開発プラットフォームとしてMSP430チップを容易に選択できるようになりました。eZ430-F2013は、取り外し可能なプロトタイピングボードにMSP430F2013マイクロコントローラを搭載し、開発ソフトウェアが収録されたCDが付属しています。学校、趣味家、ガレージで発明をする人にとって便利なツールです。また、資金難に悩む大企業のプロトタイプ開発エンジニアにも歓迎されています。

MSP430 ランチパッド

テキサス・インスツルメンツは2010年7月にMSP430 LaunchPadを4.30ドルで発売しました。MSP430 LaunchPadには、オンボードのフラッシュエミュレータUSB、2つのプログラム可能なLED、1つのプログラム可能なプッシュボタンが搭載されています。[ 13 ] LaunchPadの実験用として、シールドボードも用意されています。

TI はそれ以来、MSP430 プラットフォームに基づくいくつかの新しい LaunchPad を提供してきました。

これら3つのLaunchPadにはすべて、1Mbit/sの速度に対応するバックチャネルUARTを備えたeZ-FET JTAGデバッガが搭載されています。FRAM LaunchPad(MSP-EXP430FR5969、MSP-EXP430FR4133など)には、TIのCode Composer Studio IDEでサポートされている消費電力の監視と分析機能であるEnergyTraceが搭載されています。

デバッグインターフェース

他のマイクロコントローラベンダーと同様に、TI社は一部のMSP430製品に搭載されている2線式デバッグインターフェースを開発しました。これは、より大型のJTAGインターフェースに代わるものです。eZ430開発ツールには、TI社がSpy-Bi-Wireと名付けたこの新しい2線式プロトコル用の、 USB接続のフラッシュエミュレーションツール(FET)が完全搭載されています。Spy-Bi-Wireは当初、MSP430F20xx、MSP430F21x2、MSP430F22x2など、I/Oピン数が限られた'F2xxファミリの最小デバイスにのみ導入されました。最新の'5xxファミリの導入により、Spy-Bi-Wireのサポートが拡張され、すべてのデバイスがJTAGに加えてSpy-Bi-Wireインターフェースをサポートするようになりました。

Spy-Bi-Wireプロトコルの利点は、通信ラインを2本しか使用しないことです。そのうち1本は専用の_RESETラインです。ピン数の少ないMSP430デバイスのJTAGインターフェースは、汎用I/Oラインと多重化されています。そのため、小型でI/O予算の少ないチップ上で構築された回路のデバッグは比較的困難です。これは、フル4ピンのJTAGハードウェアが、それらのI/Oラインに接続された他のデバイスと競合するためです。この問題は、Spy-Bi-Wire対応チップによって軽減されます。Spy-Bi-Wire対応チップは、従来の開発ツールとの下位互換性を保つために、通常のJTAGインターフェースとの互換性を維持しています。

ARMアーキテクチャコミュニティで広く使用されているOpenOCDベースのJTAGデバッグおよびフラッシュプログラミングツールは、MSP430では利用できません。MSP430専用に設計されたプログラミングツールは、OpenOCDを使用するJTAGインターフェースよりもわずかに安価です。しかし、プロジェクトの途中でMIPS、メモリ、I/Oペリフェラルの増強が必要になった場合、これらのツールは他のベンダーのプロセッサには移行できません。

MSP430世代

MSP430プロセッサには、一般的に6つの世代があります。開発順に、'3xx世代、'1xx世代、'4xx世代、'2xx世代、'5xx世代、'6xx世代です。世代の後の数字はモデルを識別します(一般的に、モデル番号が大きいほどメモリ容量が大きく、性能も高くなります)。3桁目の数字は搭載メモリ容量を、4桁目の数字は(存在する場合)マイナーモデルバリアントを識別します。最も一般的なバリエーションは、オンチップA/Dコンバータ(ADC)の違いです。

3xx世代と1xx世代は16ビットのアドレス空間に制限されています。後の世代では、20ビットのアドレス空間を可能にする「430X」命令が追加されました。他のプロセッサアーキテクチャ(例えばPDP -11プロセッサ)と同様に、アドレス範囲を16ビットワードサイズを超えて拡張すると、64KBを超えるプログラムではいくつかの特殊な問題や非効率性が生じました。

以下のリストでは、 CR2032リチウムコイン電池の典型的な200mA·Hrの容量を200,000μA·Hr、つまり22.8μA·yearと考えると分かりやすいでしょう。CPUの消費電流だけを考慮すると、この電池は0.7μAの電流を32年間供給できることになります(実際には、電池の自己放電によってこの数値は減少します)。

RAMリテンションモードリアルタイムクロックモードの違いは、リアルタイムクロックモードではCPUがクロックを動作させたままスリープ状態になり、指定された時刻にウェイクアップできるという点です。一方、RAMリテンションモードでは、入出力(I/O)ピン信号やSPIスレーブ受信割り込みなど、何らかの外部信号によってウェイクアップする必要があります。

MSP430x1xxシリーズ

MSP430x1xxシリーズは、フラッシュメモリを搭載した最初の世代です。3xx世代よりも一般的に高性能ですが、LCDコントローラは内蔵されていません。フラッシュまたはROMベースの超低消費電力MCUは、8MIPS、1.8~3.6V動作、最大60KBのフラッシュメモリ、そして幅広いアナログおよびデジタルペリフェラルを備えています。

  • 電力仕様の概要、最低:
    • 0.1 μA RAM保持
    • 0.7 μAリアルタイムクロックモード
    • 200 μA / MIPSアクティブ
    • スタンバイ モードから 6 μs 未満で高速ウェイクアップを実現します。
  • デバイスパラメータ
    • フラッシュオプション: 1~60 KB
    • ROMオプション: 1~16 KB
    • RAM: 128 B–10 KB
    • GPIOオプション: 14、22、48ピン
    • ADCオプション: スロープ、10および12ビットSAR
    • その他の統合周辺機器: 12 ビット DAC、最大 2 つの 16 ビット タイマー、ウォッチドッグ タイマー、ブラウンアウト リセット、SVS、USART モジュール (UART、SPI)、DMA、16×16 乗算器、コンパレータ A、温度センサー

MSP430F2xxシリーズ

MSP430F2xxシリーズは'1xx世代に類似していますが、さらに低消費電力で動作し、最大16MHzの動作をサポートし、より高精度(±2%)のオンチップクロックを搭載しているため、外付け水晶振動子なしでも容易に動作させることができます。これらのフラッシュベースの超低消費電力デバイスは、1.8~3.6Vで動作し、超低消費電力発振器(VLO)、内部プルアップ/プルダウン抵抗、および少ピン数オプションを備えています。

  • 電力仕様の概要、最低:
    • 0.1 μA RAM保持
    • 0.3 μA スタンバイモード (VLO)
    • 0.7 μAリアルタイムクロックモード
    • 220 μA / MIPSアクティブ
    • 1μs未満の超高速スタンバイモードからのウェイクアップ機能を搭載
  • デバイスパラメータ
    • フラッシュオプション: 1~120 KB
    • RAMオプション: 128 B – 8 KB
    • GPIOオプション: 10、11、16、24、32、48ピン
    • ADCオプション: スロープ、10および12ビットSAR、16および24ビットシグマデルタ
    • その他の統合周辺機器: オペアンプ、12 ビット DAC、最大 2 つの 16 ビット タイマー、ウォッチドッグ タイマー、ブラウンアウト リセット、SVS、USI モジュール (I²C、SPI)、USCI モジュール、DMA、16×16 乗算器、Comparator_A+、温度センサー

MSP430G2xxシリーズ

MSP430G2xxバリューシリーズは、1.8~3.6V動作で最大16MIPSのフラッシュベースの超低消費電力MCUです。超低消費電力発振器(VLO)、内部プルアップ/プルダウン抵抗、そしてMSP430F2xxシリーズよりも低価格な少ピンオプションを搭載しています。

  • 超低消費電力、最低 (@2.2 V):
    • 0.1 μA RAM保持
    • 0.4 μA スタンバイモード(VLO)
    • 0.7 μAリアルタイムクロックモード
    • 220 μA / MIPSアクティブ
    • スタンバイモードから1μs未満で超高速ウェイクアップ
  • デバイスパラメータ
    • フラッシュオプション: 0.5~56 KB
    • RAMオプション: 128 B~4 KB
    • GPIOオプション: 10、16、24、32ピン
    • ADCオプション: スロープ、10ビットSAR
    • その他の統合周辺機器: 静電容量式タッチ I/O、最大 3 つの 16 ビット タイマー、ウォッチドッグ タイマー、ブラウンアウト リセット、USI モジュール (I²C、SPI)、USCI モジュール、コンパレータ_A+、温度センサー

MSP430x3xxシリーズ

MSP430x3xxシリーズは最も古い世代で、1995年から1998年の間にリリースされました。[ 14 ] MSP430は、電池駆動の計測機器用のTSS400の後継として設計されました。[ 15 ]すべてのMSP430x3xxには、組み込みLCDコントローラと、低周波水晶(32kHz)を使用して安定したシステムクロック(1〜4MHz)を提供する周波数ロックループ(FLL)付きのデジタル制御発振器(DCO)がありました。 [ 16 ]この世代はEEPROMメモリをサポートせず、マスクROMと紫外線消去可能でワンタイムプログラマブルなEPROMのみをサポートします。後の世代では、フラッシュメモリとマスクROMのオプションのみが提供されます。これらのデバイスは、2.5〜5.5Vで動作し、最大32KBのROMを提供します。

  • 電力仕様の概要、最低:
    • 0.1 μA RAM保持
    • 0.9 μAリアルタイムクロックモード
    • 160 μA / MIPSアクティブ
    • スタンバイ モードから 6 μs 未満で高速ウェイクアップを実現します。
  • デバイスパラメータ:
    • ROMオプション: 2~32 KB
    • RAMオプション: 512 B~1 KB
    • GPIOオプション: 14、40ピン
    • ADCオプション: スロープ、14ビットSAR
    • その他の統合周辺機器: LCDコントローラ、乗算器

MSP430x4xxシリーズ

MSP430x4xxシリーズは' 1xx世代に類似していますが、LCDコントローラを内蔵し、サイズも大きく、多くの場合、より高性能です。フラッシュまたはROMベースのこれらのデバイスは、1.8~3.6V動作で8~16MIPSの性能を提供し、FLL(フラッシュ・ライト・ループ)とSVS(サージ・バイアス・ビジョン)を備えています。低消費電力計測や医療用途に最適です。

  • 電力仕様の概要、最低:
    • 0.1 μA RAM保持
    • 0.7 μAリアルタイムクロックモード
    • 200 μA / MIPSアクティブ
    • スタンバイ モードから 6 μs 未満で高速ウェイクアップを実現します。
  • デバイスパラメータ:
    • フラッシュ/ROMオプション: 4~120 KB
    • RAMオプション: 256 B – 8 KB
    • GPIOオプション: 14、32、48、56、68、72、80ピン
    • ADC オプション: スロープ、10 および 12 ビット SAR、16 ビット シグマ デルタ
    • その他の統合周辺機器: SCAN_IF、ESP430、12 ビット DAC、オペアンプ、RTC、最大 2 つの 16 ビット タイマー、ウォッチドッグ タイマー、基本タイマー、ブラウンアウト リセット、SVS、USART モジュール (UART、SPI)、USCI モジュール、LCD コントローラー、DMA、16×16 および 32×32 乗算器、コンパレーター A、温度センサー、8 MIPS CPU 速度

MSP430x5xxシリーズ

MSP430x5xxシリーズは、最大25MHzで動作し、最大512KBのフラッシュメモリと最大66KBのRAMを搭載しています。このフラッシュベースのファミリは、1.8~3.6V動作時に最大25MIPS(165uA/MIPS)という低消費電力を特徴としています。消費電力を最適化する革新的な電源管理モジュールとUSBポートを内蔵しています。[ 17 ]

  • 電力仕様の概要、最低:
    • 0.1 μA RAM保持
    • 2.5 μAリアルタイムクロックモード
    • 165 μA / MIPSアクティブ
    • スタンバイ モードから 5 μs 未満で高速ウェイクアップを実現します。
  • デバイスパラメータ:
    • フラッシュオプション: 最大 512 KB
    • RAMオプション: 最大66 KB
    • ADCオプション: 10ビットおよび12ビットSAR
    • GPIOオプション: 29、31、47、48、63、67、74、87ピン
    • その他のオプションの統合周辺機器: 12 ビット DAC、高解像度 PWM、5 つの VI/O、USB、バックアップ バッテリ スイッチ、最大 4 つの 16 ビット タイマー、ウォッチドッグ タイマー、リアルタイム クロック、ブラウンアウト リセット、SVS、USCI モジュール、DMA、32x32 乗算器、Comp B、温度センサー

MSP430x6xxシリーズ

MSP430x6xxシリーズは、最大25MHzで動作し、最大512KBのフラッシュメモリと最大66KBのRAMを搭載しています。このフラッシュベースのファミリは、1.8~3.6V動作で最大25MIPS(165uA/MIPS)という低アクティブ消費電力を特長としています。消費電力を最適化する革新的な電源管理モジュールとUSBを内蔵しています。多くの6xxシリーズデバイスは、USBサポートが追加されている点を除き、類似の5xxシリーズデバイスとピン互換です。

  • 電力仕様の概要、最低:
    • 0.1 μA RAM保持
    • 2.5 μAリアルタイムクロックモード
    • 165 μA / MIPSアクティブ
    • スタンバイ モードから 5 μs 未満で高速ウェイクアップを実現します。
  • デバイスパラメータ:
    • フラッシュオプション: 最大 512 KB
    • RAMオプション: 最大66 KB
    • ADCオプション: 12ビットSAR
    • GPIOオプション: 74ピン
    • その他の統合周辺機器: USB、LCD、DAC、Comparator_B、DMA、32x32乗算器、電源管理モジュール(BOR、SVS、SVM、LDO)、ウォッチドッグタイマー、RTC、温度センサー

RF SoC (CC430) シリーズ

RF SoC (CC430) シリーズは、マイクロコントローラコア、ペリフェラル、ソフトウェア、RFトランシーバを緊密に統合しています。1GHz未満のRFトランシーバを搭載し、1.8V~3.6Vで動作します。panStamp APIを介して、Arduino統合開発環境(IDE) を使用したプログラミングが可能です。

  • 電力仕様の概要、最低:
    • 1 μA RAM保持
    • 1.7 μAリアルタイムクロックモード
    • 180 μA / MIPSアクティブ
  • デバイスパラメータ:
    • 速度オプション: 最大 20 MHz
    • フラッシュオプション: 最大 32 KB
    • RAMオプション: 最大4 KB
    • ADCオプション: 12ビットSAR
    • GPIOオプション: 30ピンと44ピン
    • その他の統合周辺機器: LCD コントローラ、最大 2 つの 16 ビット タイマー、ウォッチドッグ タイマー、RTC、電源管理モジュール (BOR、SVS、SVM、LDO)、USCI モジュール、DMA、32x32 乗算器、Comp B、温度センサー

FRAMシリーズ

テキサス・インスツルメンツのFRAMシリーズは、ダイナミックパーティショニングとフラッシュメモリの100倍のメモリ書き込み速度を備えた統合メモリを提供します。また、FRAMはあらゆる電源モードでゼロパワー状態保持が可能で、電源喪失時でも書き込みが保証されます。100兆サイクルを超える書き込み耐久性により、EEPROMは不要になります。アクティブ消費電力は100μA/MHz未満です。

  • 電力仕様の概要、最低:
    • 320 nA RAM保持
    • 0.35 μAリアルタイムクロックモード
    • 82 μA / MIPSアクティブ
  • デバイスパラメータ:
    • 速度オプション: 8~24 MHz
    • FRAMオプション: 4~256 KB
    • RAMオプション: 0.5~8 KB
    • ADCオプション: 10または12ビットSAR
    • GPIOオプション: 17~83 GPIOピン
    • その他の統合可能な周辺機器: MPU、最大 6 つの 16 ビット タイマー、ウォッチドッグ タイマー、RTC、電源管理モジュール (BOR、SVS、SVM、LDO)、USCI モジュール、DMA、乗算器、Comp B、温度センサー、LCD ドライバー、I2C および UART BSL、拡張スキャン インターフェイス、32 ビット乗算器、AES、CRC、信号処理アクセラレーション、静電容量式タッチ、IR 変調

低電圧シリーズ

電圧シリーズには、0.9 V で動作可能な MSP430C09x および MSP430L092 部品が含まれます。これら 2 シリーズの低電圧 16 ビット マイクロコントローラは、2 つの 16 ビット タイマー、8 ビットのアナログ - デジタル (A/D) コンバータ、8 ビットのデジタル - アナログ (D/A) コンバータ、および最大 11 個の I/O ピンを備えた構成になっています。

  • 電力仕様の概要、最低:
    • 1 μA RAM保持
    • 1.7 μAリアルタイムクロックモード
    • 180 μA / MIPSアクティブ
  • デバイスパラメータ:
    • 速度オプション: 4 MHz
    • ROMオプション: 1~2 KB
    • SRAMオプション: 2 KB
    • ADCオプション: 8ビットSAR
    • GPIOオプション: 11ピン
    • その他の統合周辺機器: 最大 2 つの 16 ビット タイマー、ウォッチドッグ タイマー、ブラウンアウト リセット、SVS、コンパレータ、温度センサー

その他のMSP430ファミリー

MSP430 内のその他のファミリには、固定機能自動車、および拡張温度部品が含まれます。

固定機能:MSP430BQ1010 16ビットマイクロコントローラは、ポータブルアプリケーションにおけるワイヤレス電力伝送の受信側制御および通信ユニットとして機能する、高度な固定機能デバイスです。MSP430BQ1010は、ワイヤレスパワーコンソーシアム(WPC)仕様に準拠しています。詳細については、非接触給電をご覧ください。

自動車: Texas Instruments (TI) の自動車用 MSP430 マイクロコントローラ (MCU) は、16 ビット、RISC ベースのミックスドシグナル プロセッサであり、AEC-Q100 認定を受けており、周囲温度が最大 105 °C の環境における自動車用アプリケーションに適しています。MSP430 MCU 用の LIN 準拠ドライバは、IHR GmbH によって提供されています。

拡張温度範囲:MSP430デバイスは、低消費電力と革新的なアナログ統合により、産業用センシングなどの過酷な環境で非常に人気があります。過酷な環境下でのアプリケーションとしては、輸送/自動車、再生可能エネルギー、軍事/宇宙/航空電子工学、鉱物探査、産業機器、安全・セキュリティなどが挙げられます。

  • デバイス定義:
    • 高温: -55℃~150℃
    • EP:強化製品 -55 °C ~ 125 °C
    • Q1: 自動車用Q100認定 -40℃~105℃
    • T: 拡張温度範囲 -40 °C ~ 105 °C アプリケーション

フラッシュメモリのサイズが64Kワード(128KB)を超えると、命令アドレスを2バイトでエンコードできなくなりますのでご注意ください。このポインタサイズの変更により、以前の製品との互換性に問題が生じます。

参考文献

  1. ^ Evanczuk, Stephen (2013年8月20日). 「スライドショー:史上最も人気のあるMCU」 . edn.com . Electronics Design Network . 2020年9月3日閲覧
  2. ^ MSP430はブドウで動作します- YouTubeのビデオ
  3. ^ 「MSP430FR573x ミックスドシグナルマイクロコントローラ」(PDF) . ti.com . Texas Instruments . 2024年7月27日閲覧
  4. ^ 「MSP430マイクロコントローラ」 . ti.com . Texas Instruments . 2024年7月27日閲覧
  5. ^ 「MSP430™ MCUを使用したシングルスロープ・アナログ・デジタル変換技術」(PDF) . Texas Instruments . 2017年. 2023年2月3日時点のオリジナルよりアーカイブ(PDF) . 2023年9月3日閲覧
  6. ^ a b D. Peters、D. Raskovic、D. Thorsen、「小型衛星アプリケーション向けエネルギー効率の高い並列組み込みシステム」ISAST Transactions on Computers and Intelligent Systems、vol. 1(2)、2009年
  7. ^ 「MSP430 超低消費電力マイクロコントローラ」(PDF)テキサス・インスツルメンツ2008年7月9日閲覧
  8. ^サイズビットは という名前で呼ばれます。A/Lここで、L(long) は他のプロセッサでは32ビットオペランドを示すために使用されます。また、SXTX命令の説明(MSP430F5xxファミリ ユーザーズガイド alau208f の237ページ)では、レジスタビット20~31における命令の効果について説明しています。
  9. ^ a b「MSP430FR4xxおよびMSP430FR2xxファミリ – ユーザーズガイド」 Texas Instruments. p. 43.
  10. ^エネルギアのウェブサイト
  11. ^ MSP430 の記事がIEEEマガジンに掲載されました。
  12. ^ビジュアルソリューション
  13. ^ MSP430 LaunchPad (MSP-EXP430G2) Texas Instruments Embedded Processors Wiki
  14. ^ 「MSP430 超低消費電力マイクロコントローラ – 2000年第3四半期」(PDF) . Texas Instruments . 2024年7月5日閲覧
  15. ^ビアル、ルッツ (2004).大きな MSP430 Praxisbuch です。フランツィス。 p. 21.ISBN 377234299X
  16. ^ 「製品速報 – MSP430 超低消費電力マイクロコントローラ – 1999年第2四半期」(PDF) . Texas Instruments . 2024年7月5日閲覧
  17. ^テキサス・インスツルメンツの低消費電力 MSP430 マイクロコントローラ

コミュニティと情報サイト

ビジュアルプログラミングCコードジェネレータ

コンパイラ、アセンブラ、IDE

  無料のコンパイラとIDE

  その他のIDE

デバッグツールのリスト(完全ではありません)

名前 メーカー インタフェース プロトコル 状態
MSP-FET430PIF TIパラレルポート JTAG
MSP-FET430UIF TIUSBインターフェース JTAG、スパイバイワイヤ
MSP-FET TIUSBインターフェース JTAG、スパイバイワイヤ
MSP-430 ランチパッド TI 2016年3月4日アーカイブWayback MachineUSBインターフェース スパイバイワイヤ
MSP-430 ランチパッド eZ-FET TI 2018年12月15日アーカイブWayback MachineUSBインターフェース スパイバイワイヤ
eZ430-F2013 TI 2011年8月5日アーカイブ- Wayback MachineUSBインターフェース スパイバイワイヤ 廃止
eZ430-RF2500 TIUSBインターフェース スパイバイワイヤ
FETP ソフトバウパラレルポート JTAG
USBP ソフトバウUSBインターフェース JTAG、スパイバイワイヤ 製造中止
MSP430-JTAG オリメックスパラレルポート JTAG
MSP430-JTAG-ISO オリメックスUSBインターフェース JTAG、スパイバイワイヤ 廃止
MSP430-JTAG-ISO-MK2 オリメックスUSBインターフェース JTAG、スパイバイワイヤ
MSP430-JTAG-Tiny オリメックスUSBインターフェース JTAG、スパイバイワイヤ 見つかりません
MSP430-JTAG-TINY-V2 オリメックスUSBインターフェース JTAG?、スパイバイワイヤ
MSP430-JTAG-RF オリメックスUSBインターフェース JTAG、スパイバイワイヤ
フラッシュプロCC エルプロトロニックUSBインターフェース JTAG、スパイバイワイヤ、BSL
VisSim /ECD ビジュアルソリューションUSBインターフェース JTAG、スパイバイワイヤ
LA-3713 ラウターバッハUSBインターフェース/イーサネット JTAG、スパイバイワイヤ

その他のツール