| デザイナー | テキサス・インスツルメンツ |
|---|---|
| ビット | 16ビット |
| 紹介された | 1992年2月14日 |
| タイプ | メモリ-メモリ |
| エンディアン | リトルエンディアン |
| 拡張機能 | MSP430X |
| レジスター | |
| 16個のレジスタ、R0 – プログラムカウンタ、R1 – スタックポインタ、R2 – ステータスレジスタ、R2/R3 – 定数ジェネレータ、R4からR15は汎用 | |


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

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を搭載したマイクロコントローラがあります。
このデバイスには、通常の周辺機器を備えたさまざまな世代があります。
- 内部発振器、
- パルス幅変調(PWM)を含むタイマー、
- ウォッチドッグタイマー、
- USART、
- シリアルペリフェラルインターフェース(SPI)バス、
- インターインテグレーテッドサーキット ( I²C )
- アナログ-デジタルコンバーター(ADC) オプション:
- 10/12/14ビット逐次比較型ADC
- 16/24ビットデルタシグマADC
- デジタルタイマー付き
内部アナログコンパレータ
- 抵抗器-コンデンサのスロープ充電時間を測定できる[5]
- ブラウンアウトリセット回路。
あまり一般的ではない周辺オプションには、信号調整用のオンチップ演算増幅器(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 世代
MSP430 プロセッサには、一般的に 6 つの世代があります。開発順に、'3xx 世代、'1xx 世代、'4xx 世代、'2xx 世代、'5xx 世代、および '6xx 世代です。世代の後の数字はモデルを識別します (通常、モデル番号が大きいほど、容量が大きく、機能も豊富です)。3 番目の数字は、搭載されているメモリの量を示します。4 番目の数字 (存在する場合) は、マイナー モデルのバリエーションを示します。最も一般的なバリエーションは、オンチップのアナログ/デジタル コンバータが異なることです。
3xx および 1xx 世代は、16 ビットのアドレス空間に制限されています。後の世代では、20 ビットのアドレス空間を可能にする「430X」命令が含まれるように拡張されました。他のプロセッサ アーキテクチャ ( PDP-11のプロセッサなど) と同様に、アドレス範囲を 16 ビット ワード サイズを超えて拡張すると、64 KB を超えるプログラムでいくつかの特殊性と非効率性が生じます。
次のリストでは、CR2032リチウムコイン セルの標準的な 200 mA·Hr 容量を 200,000 μA·Hr、つまり 22.8 μA·year と考えると分かりやすいでしょう。したがって、CPU の消費電流だけを考慮すると、このようなバッテリーは 32 年間 0.7 μA の電流を供給できます (実際には、バッテリーの自己放電によってこの数値は減少します)。
RAM 保持モードとリアルタイム クロック モードの違いは、リアルタイム クロック モードでは、CPU はクロックを実行しながらスリープ状態になり、指定された将来の時間に起動できることです。RAM 保持モードでは、入力/出力(I/O) ピン信号や SPI スレーブ受信割り込みなどの外部信号によって CPU を起動する必要があります。
MSP430x1xx シリーズ
MSP430x1xx シリーズは、フラッシュ メモリを搭載した最初の世代です。一般的に '3xx 世代よりも高性能ですが、組み込みLCDコントローラはありません。これらのフラッシュまたは ROM ベースの超低消費電力 MCU は、8 MIPS、1.8~3.6 V 動作、最大 60 KB のフラッシュ、および幅広いアナログおよびデジタル周辺機器を提供します。
- 電力仕様の概要、最低:
- 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 世代に似ていますが、さらに低電力で動作し、最大 16 MHz の動作をサポートし、より正確な (±2%) オンチップ クロックを備えているため、外部水晶なしでも簡単に動作できます。これらのフラッシュ ベースの超低電力デバイスは、1.8~3.6 V で動作します。超低電力発振器 (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.6 V で動作し、最大 16 MIPS のフラッシュベースの超低消費電力 MCU です。超低消費電力発振器 (VLO)、内部プルアップ/プルダウン抵抗、および MSP430F2xx シリーズよりも低価格の低ピン数オプションが含まれています。
- 超低消費電力、最低 (@2.2 V):
- 0.1 μA RAM保持
- 0.4 μA スタンバイモード (VLO)
- 0.7 μA リアルタイムクロックモード
- 220 μA / MIPSアクティブ
- スタンバイモードから 1 μs 未満で超高速起動
- 超低消費電力、最低 (@2.2 V):
- デバイスパラメータ
- フラッシュオプション: 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 モジュール、Comparator_A+、温度センサー
- デバイスパラメータ
MSP430x3xx シリーズ
MSP430x3xxシリーズは最も古い世代で、1995年から1998年の間にリリースされました。 [7] MSP430は、電池駆動の計測機器用のTSS400の後継として設計されました。[8]すべてのMSP430x3xxには、組み込みLCDコントローラと、低周波水晶(32kHz)を使用して安定したシステムクロック(1〜4MHz)を提供する周波数ロックループ(FLL)を備えたデジタル制御発振器(DCO)がありました。 [9]この世代はEEPROMメモリをサポートしておらず、マスクROMとUV消去可能でワンタイムプログラマブルな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 ベースのデバイスは、FLL および SVS を備え、1.8~3.6 V で動作し、8~16 MIPS を実現します。低電力計測や医療アプリケーションに最適です。
- 電力仕様の概要、最低:
- 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 乗算器、Comparator_A、温度センサー、8 MIPS CPU 速度
- デバイスパラメータ:
MSP430x5xx シリーズ
MSP430x5xxシリーズは、最大25MHzで動作し、最大512KBのフラッシュメモリと最大66KBのRAMを搭載しています。このフラッシュベースのファミリは、1.8~3.6V動作で最大25MIPS(165uA/MIPS)の低アクティブ消費電力を特徴としています。最適な電力消費と統合USBを実現する革新的な電源管理モジュールが含まれています。[10]
- 電力仕様の概要、最低:
- 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 シリーズは、最大 25 MHz で動作し、最大 512 KB のフラッシュ メモリと最大 66 KB の RAM を備えています。このフラッシュ ベースのファミリは、1.8~3.6 V 動作で最大 25 MIPS (165 uA/MIPS) の低アクティブ電力消費を特長としています。最適な電力消費と統合 USB を実現する革新的な電源管理モジュールが含まれています。6xx シリーズ デバイスの多くは、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 トランシーバー間の緊密な統合を実現します。1.8 V~3.6 V で動作する <1 GHz RF トランシーバーを搭載しています。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シリーズ
Texas Instruments の 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) 仕様に準拠しています。詳細については、非接触型電力[ permanent dead link ]を参照してください。
自動車: Texas Instruments (TI) の自動車用 MSP430 マイクロコントローラ (MCU) は、16 ビット、RISC ベースのミックスドシグナル プロセッサで、AEC-Q100 認定を受けており、周囲温度が最大 105 °C の環境での自動車アプリケーションに適しています。MSP430 MCU 用の LIN 準拠ドライバは、IHR GmbH によって提供されています。
拡張温度: MSP430 デバイスは、低消費電力と革新的なアナログ統合により、産業用センシングなどの過酷な環境で非常に人気があります。過酷な環境のアプリケーションには、輸送/自動車、再生可能エネルギー、軍事/宇宙/航空電子工学、鉱物探査、産業、安全性とセキュリティなどがあります。
- デバイス定義:
- 高温: -55 °C ~ 150 °C
- EP: 強化製品 -55 °C ~ 125 °C
- Q1: 自動車用Q100認定 -40 °C ~ 105 °C
- T: 拡張温度 -40 °C ~ 105 °C アプリケーション
- デバイス定義:
フラッシュ サイズが 64K ワード (128 KB) を超えると、命令アドレスを 2 バイトだけでエンコードできなくなることに注意してください。ポインタ サイズがこのように変更されると、以前のパーツとの互換性が失われます。
周辺機器
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 × IN
- ポートx入力。これは読み取り専用レジスタであり、ポートのピンの現在の状態を反映します。
- P xアウト
- ポートx出力。この読み取り/書き込みレジスタに書き込まれた値は、出力に設定されている場合に、対応するピンから出力されます。
- P x方向
- ポートx のデータ方向。1 として書き込まれたビットは、対応するピンを出力用に構成します。0 として書き込まれたビットは、ピンを入力用に構成します。
- P x選択
- ポートx の機能選択。1 として書き込まれたビットは、対応するピンを特殊な周辺機器が使用できるように構成します。0 として書き込まれたビットは、ピンを汎用 I/O 用に構成します。ポート 0 ('3xx パーツのみ) は他の周辺機器と多重化されておらず、P0SEL レジスタはありません。
- P ×レン
- ポートx抵抗器の有効化 ('2xx および '5xx のみ)。このレジスタに設定されたビットは、対応する I/O ピンが入力として構成されている場合でも、それらのピンの弱いプルアップまたはプルダウン抵抗器を有効にします。プルの方向は、P x OUT レジスタに書き込まれたビットによって設定されます。
- P × 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 × IFG
- ポートx割り込みフラグ。対応するピンが P x IESによって要求された状態変更を行うたびに設定されます。ソフトウェアによってのみクリアできます。(ソフトウェアによって設定することもできます。)
- P × 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 がクリアされている場合、特別な機能の入力はフリーズされ、外部ピンから切断されます。また、ピンを汎用出力に設定しても、割り込み生成は無効になりません 。
統合された周辺機器
- アナログ
-
- アナログ-デジタルコンバータ
- MSP430 ラインは、2 種類のアナログ/デジタル変換(ADC) を提供します。10 ビットおよび 12 ビットの逐次比較コンバータと、16 ビットのシグマ デルタ コンバータです。データ転送コントローラと 16 ワードの変換および制御バッファにより、MSP430 は CPU の介入なしにサンプルを変換および保存できるため、消費電力が最小限に抑えられます。
- アナログプール
- アナログ プール (A-POOL) モジュールは、ADC、DAC、コンパレータ、SVS、または温度センサーとして構成できます。これにより、ユーザーは 1 回のセットアップだけで一連のアナログ機能を柔軟にプログラムできます。
- 比較対象 A、A+
- MSP430 のコンパレータ モジュールは、高精度のスロープ アナログ - デジタル変換を提供します。外部アナログ信号を監視し、電圧と抵抗値の測定を提供します。選択可能な電力モードが可能です。
- DAC12
- DAC12 モジュールは、内部/外部リファレンス選択と最適な電力消費のためのプログラム可能なセトリング時間を備えた 12 ビットの電圧出力 DAC です。8 ビット モードまたは 12 ビット モードで構成できます。複数の DAC12 モジュールが存在する場合、それらをグループ化して同期更新操作を行うことができます。
- オペアンプ
- 単一電源、レールツーレール出力、プログラム可能なセトリング時間による低電流動作を特長としています。ソフトウェアで選択可能な構成オプション: ユニティ ゲイン モード、コンパレータ モード、反転 PGA、非反転 PGA、差動および計装アンプ。
- シグマデルタ(SD)
- SD16/SD16_A/SD24_A モジュールはそれぞれ、内部 1.2 V リファレンスを備えた 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 では高解像度 (4 ns) モードが導入されています。
- ウォッチドッグ(WDT+)
- WDT+ は、ソフトウェアの問題が発生すると、制御されたシステムの再起動を実行します。選択した時間間隔が経過すると、システム リセットが生成されます。アプリケーションでウォッチドッグ機能が必要ない場合は、モジュールをインターバル タイマーとして構成し、選択した時間間隔で割り込みを生成することができます。
- システム
- 高度暗号化規格 (AES)
- AES アクセラレータ モジュールは、高度な暗号化標準に従って 128 ビット キーを使用して 128 ビット データの暗号化と復号化をハードウェアで実行し、ユーザー ソフトウェアで構成できます。
- ブラウンアウトリセット (BOR)
- BOR 回路は低電源電圧を検出し、電源が投入または切断されたときにパワーオン リセット (POR) 信号をトリガーしてデバイスをリセットします。MSP430 MCU のゼロ電力 BOR 回路は、すべての低電力モードを含め、継続的にオンになっています。
- ダイレクトメモリアクセス (DMA) コントローラ
- DMA コントローラは、CPU の介入なしに、アドレス範囲全体にわたって 1 つのアドレスから別のアドレスにデータを転送します。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 ビット x 32 ビットの機能を備えています。
- 使用される 8 つのレジスタは次のとおりです。
- 最初のオペランドは、4 つの 16 ビット レジスタの 1 つに書き込まれます。書き込まれたアドレスによって、実行される操作が決まります。書き込まれた値はどのレジスタからも読み戻すことができますが、書き込まれたレジスタ番号は復元できません。
- 乗算累積演算が必要な場合は、
ResLoおよびResHiレジスタも初期化する必要があります。
- 乗算累積演算が必要な場合は、
- その後、レジスタへの書き込みが行われるたびに
OP2、乗算が実行され、結果が結果レジスタに格納または追加されます。レジスタSumExtは読み取り専用レジスタで、加算のキャリー アウト (符号なし乗算の場合は 0 または 1)、または符号付き乗算の場合は 32 ビットの合計の符号拡張 (0 または -1) が含まれます。符号付き乗算累積の場合は、値を前のコンテンツの最上位ビットと組み合わせて、実際のキャリー アウト結果 (-1、0、または +1) を決定するSumExt必要があります。SumHi
- その後、レジスタへの書き込みが行われるたびに
- 結果は、後続の命令と後続のインデックス ワードをフェッチするのに必要な時間である 3 クロック サイクルの遅延後に使用可能になります。したがって、遅延は通常は目に見えません。明示的な遅延は、結果をフェッチするために間接アドレッシング モードを使用する場合にのみ必要です。
- メモリ保護ユニット (MPU)
- FRAM MPU は、指定された読み取り専用メモリ セグメントへの偶発的な書き込みや、定数メモリからのコード実行から保護します。MPU はビット レベルのアドレス指定を使用してメモリの任意の部分を設定し、FRAM デバイスでの読み取り、書き込み、および実行操作のためにメモリ全体にアクセスできるようにします。
- 電源管理モジュール (PMM)
- PMM はコア ロジックの電源電圧を生成し、デバイスに適用される電圧とコア用に生成される電圧の両方を監視および監視するためのいくつかのメカニズムを提供します。低ドロップアウト電圧レギュレータ (LDO)、ブラウンアウト リセット (BOR)、および電源電圧スーパーバイザとモニタが統合されています。
- 電源電圧監視装置 (SVS)
- SVS は、AVCC 電源電圧または外部電圧を監視するために使用される構成可能なモジュールです。SVS は、電源電圧または外部電圧がユーザーが選択したしきい値を下回ったときにフラグを設定するか、パワーオン リセット (POR) を生成するように構成できます。
- コミュニケーションとインターフェース
- 静電容量式タッチセンサーI/O
- 統合された静電容量式タッチ センス I/O モジュールは、タッチ ボタンおよびタッチ スライダー アプリケーションにいくつかの利点を提供します。このシステムでは、自己発振を作成するために外部コンポーネントを必要とせず (部品表の削減)、コンデンサ (自己発振の周波数を定義する) を直接接続できます。さらに、複数のパッドを可能にするために外部 MUX は必要なく、各 I/O パッドは直接コンデンサ センス入力として機能します。約 0.7 V のヒステリシスにより、堅牢な動作が保証されます。制御とシーケンスは完全にソフトウェアで実行されます。
- 汎用I/O
- MSP430 デバイスには、最大 12 個のデジタル I/O ポートが実装されています。各ポートには 8 個の I/O ピンがあります。すべての I/O ピンは入力または出力として構成でき、個別に読み取りまたは書き込みが可能です。ポート P1 と P2 には割り込み機能があります。MSP430F2xx、F5xx、および一部の F4xx デバイスには、個別に構成可能なプルアップまたはプルダウン抵抗が組み込まれています。
- サブGHz RFフロントエンド
- 柔軟な CC1101 サブ 1 GHz トランシーバは、あらゆる RF 環境で通信リンクを成功させるために必要な感度とブロッキング性能を提供します。また、低消費電流を特徴とし、柔軟なデータ レートと変調形式をサポートします。
- USART (UART、SPI、I²C)
- ユニバーサル同期/非同期受信/送信 (USART) 周辺インターフェイスは、1 つのハードウェア モジュールで非同期 RS-232 および同期 SPI 通信をサポートします。MSP430F15x/16x USART モジュールは、I²C、プログラム可能なボー レート、および受信と送信の独立した割り込み機能もサポートします。
- USB
- USB モジュールは USB 2.0 仕様に完全に準拠しており、12 Mbps (フルスピード) のデータ レートで制御、割り込み、バルク転送をサポートします。このモジュールは、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変調信号を生成します。[11]
- 計測
- ESP430 (FE42xx デバイスに統合)
- ESP430CE モジュールは、CPU から独立して計測計算を実行します。モジュールには、単相エネルギー計測アプリケーション用の独立した SD16、HW 乗算器、および ESP430 組み込みプロセッサ エンジンが搭載されています。
- スキャンインターフェース (SIF)
- SIF モジュールは、アナログ フロント エンドを備えたプログラム可能なステート マシンであり、可能な限り低い消費電力で直線または回転運動を自動的に測定するために使用されます。このモジュールは、さまざまな種類の LC および抵抗センサーと直交エンコーディングをサポートしています。
- 画面
- LCD/LCD_A/LCD_B
- LCD/LCD_A コントローラは、最大 196 セグメントの LCD を直接駆動します。スタティック、2-mux、3-mux、および 4-mux LCD をサポートします。LCD_A モジュールには、コントラスト制御用のチャージ ポンプが統合されています。LCD_B は、個別の点滅メモリを使用して個々のセグメントを点滅させます。
- LCD_E
- LCD_E コントローラは、新しい MSP430FR4xxx シリーズ マイクロコントローラに搭載されており、最大 448 セグメントの LCD を直接駆動します。スタティック、2-mux、3-mux、4-mux、5-mux、6-mux、7-mux、8-mux (1/3 バイアス) LCD をサポートします。セグメント ピンとコモン ピンは、使用可能な LCD 駆動ピンに再プログラムできます。この周辺機器は、LPM3.5 (RTC 実行 + メイン CPU コア シャットダウン低電力モード) で駆動できます。[11]
ソフトウェア開発環境
Texas Instruments は、大型 (約 2 センチメートル四方) および小型 (約 1 ミリメートル四方) の MSP430 チップをサポートするさまざまなハードウェア実験ボードを提供しています。TI は、直接またはパートナーと連携してソフトウェア開発ツールも提供しています (コンパイラ、アセンブラ、および IDE の完全なリストを参照)。そのようなツールチェーンの 1 つが、 IAR C/C++コンパイラと統合開発環境(IDE) です。Kickstart エディションは、TI または IAR から無料でダウンロードできます。コンパイラとデバッガの C/C++ コードは 8 KB に制限されています(この無料ツールチェーンを使用すると、任意のサイズのアセンブリ言語プログラムを開発およびデバッグできます)。
TI は、独自のコンパイラとツールのバージョンをEclipseベースのCode Composer Studio IDE (CCS) と組み合わせています。フル機能バージョンを販売しており、コード サイズ制限が 16 KB の無料バージョンをダウンロード用に提供しています。CCS はインサーキット エミュレータをサポートし、シミュレータやその他のツールを含んでいます。また、TI が販売する他のプロセッサでも動作します。
Arduinoに慣れている人には、オープンソースの電子プロトタイピングプラットフォームである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 をサポートしています。[12]
オープンソースコミュニティは、 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コードを図から直接生成します。[ 13 ] VisSimは、F2013のクローズドループADC + PWMベースのPID制御用に生成したコードを、1KB未満のフラッシュと100バイトのRAMにコンパイルします。[14] VisSimには、MSP430ファミリ全体用のオンチップ周辺ブロックI²C、ADC、SD16、PWMがあります。
低コスト開発プラットフォーム
MSP430F2013 とその兄弟製品は、(MSP430G2 バリュー ラインを除いて)デュアル インライン パッケージ(DIP) で提供される唯一の MSP430 部品であるという点で際立っています。このファミリの他のバリアントは、さまざまな表面実装パッケージでのみ提供されます。TI は、生のチップを愛好家がプロトタイプで簡単に使用できるようにすることで、eZ430 開発プラットフォームをサポートするために多大な労力を費やしました。
eZ430-F2013
TI は、非常に小型の実験ボードeZ430-F2013を USB スティック (現在は廃止) で提供することで、低予算の問題に取り組んできました。これにより、設計者はコンピューターで使用できる安価な開発プラットフォームとして MSP430 チップを簡単に選択できるようになりました。eZ430-F2013 には、取り外し可能なプロトタイピング ボード上の MSP430F2013 マイクロコントローラと、開発ソフトウェアが収録された CD が含まれています。これは、学校、愛好家、ガレージ発明家にとって役立ちます[引用が必要] 。また、資本予算の問題を抱えたプロジェクトのプロトタイプを作成している大企業のエンジニアに も歓迎されています[引用が必要] 。
MSP430 ローンチパッド
テキサス・インスツルメンツは2010年7月にMSP430 LaunchPadを4.30ドルで発売した。MSP430 LaunchPadには、オンボードのフラッシュエミュレータ、USB、2つのプログラム可能なLED、1つのプログラム可能なプッシュボタンが搭載されている。[15] LaunchPadの実験用としてシールドボードも用意されている。
TI はその後、MSP430 プラットフォームをベースにしたいくつかの新しい LaunchPad を提供しました。
- MSP-EXP430F5529LPは、128KBのフラッシュと8KBのSRAMを備えたMSP430F5529 USBデバイス対応MCUを搭載しています。
- MSP-EXP430FR5969は、64KB FRAMと2KB SRAMを搭載したMSP430FR5969 FRAM MCUを搭載しています。
- MSP-EXP430FR4133は、16KB FRAM、2KB SRAM、オンボードLCDを搭載したMSP430FR4133 FRAM MCUを搭載しています。
- MSP-EXP430FR6989は、128KB FRAM、2KB SRAM、オンボードLCD、拡張スキャンインターフェイス周辺機器を備えたMSP430FR6989 FRAM MCUを搭載しています。
- MSP-EXP430FR2311は、4KB FRAM、1KB SRAM、オペアンプ、トランスインピーダンスアンプ周辺機能を備えたMSP430FR2311 FRAM MCUを搭載しています。
- MSP-EXP430FR2433は、15.5KB FRAM、4KB SRAMを搭載したMSP430FR2433 FRAM MCUを搭載しています。
- MSP-EXP430FR2355 は、32 KB FRAM、4 KB SRAM、12 ビット ADC、12 ビット DAC、オペアンプ/PGA、ネストされた割り込み用の ICC を備えた MSP430FR2355 FRAM MCU を搭載しています。
- MSP-EXP430FR5994は、256KB FRAM、8KB SRAM、12ビットADC、LEA DSP周辺機能を備えたMSP430FR5994 FRAM MCUを搭載しています。
これら 3 つの LaunchPad にはすべて、1 Mbit/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 対応チップによって軽減されます。このチップは、古い開発ツールとの下位互換性を保つために、通常の JTAG インターフェイスと互換性があります。
OpenOCD をベースとし、 ARM アーキテクチャコミュニティで広く使用されている JTAG デバッグおよびフラッシュ プログラミング ツールは、MSP430 では利用できません。MSP430 用に特別に設計されたプログラミング ツールは、OpenOCD を使用する JTAG インターフェイスよりもわずかに安価です。ただし、プロジェクトの途中で、より多くの MIPS、より多くのメモリ、およびより多くの I/O 周辺機器が必要であることが判明した場合、それらのツールは他のベンダーのプロセッサに移行できません。
MSP430 CPU
MSP430 CPU は、命令とデータ用に単一のアドレス空間を持つフォン ノイマン アーキテクチャを使用します。メモリはバイトアドレス指定され、バイトのペアはリトルエンディアン方式で結合され、16 ビットワードが作成されます。
プロセッサには16個の16ビットレジスタ[16]があり、そのうち4つは特別な目的に使用されています。R0はプログラムカウンタ、R1はスタックポインタ、R2はステータスレジスタ、R3はゼロとして読み込まれ書き込みを無視する「定数ジェネレータ」です。R3とR2を使用した追加のアドレスモードエンコーディングにより、即値オペランドワードを必要とせずに、合計6つのよく使用される定数値(0、1、2、4、8、および-1)を使用できます。R4からR15は一般的な用途に使用できます。
命令セットは非常に単純です。3 つのファミリに 27 個の命令があります。ほとんどの命令は、B/W ビットの値に応じて、.B (8 ビット バイト) および .W (16 ビット ワード) の接尾辞付きバージョンで発生します。ビットは、8 ビットの場合は 1 に設定され、16 ビットの場合は 0 に設定されます。接尾辞がない場合は、.W と同じです。メモリへのバイト操作は、アドレス指定されたバイトにのみ影響しますが、レジスタへのバイト操作は、最上位バイトをクリアします。
命令は 16 ビットで、その後に最大 2 つの 16 ビット拡張ワードが続きます。アドレス指定モードは、2 ビットの As フィールドと 1 ビットの Ad フィールドによって指定されます。R0 を使用していくつかの特別なバージョンを構築できます。また、R2 (ステータス レジスタ) と R3 (定数ジェネレータ) を使用するレジスタ直接以外のモードは特別に解釈されます。Ad は、As のアドレス指定モードのサブセットのみを使用できます。
インデックス アドレッシング モードでは、命令に 16 ビットの拡張ワードが追加されます。ソースと宛先の両方がインデックス付けされている場合、ソース拡張ワードが最初に来ます。xは、下の表の命令ストリーム内の次の拡張ワードを指します。
命令は通常、フェッチまたは保存されるワードごとに 1 サイクルかかります。そのため、命令時間は、単純なレジスタ間命令の場合は 1 サイクルから、ソースと宛先の両方にインデックスが付けられた命令の場合は 6 サイクルまでの範囲になります。
20 ビット アドレッシングを備えた MSP430X 拡張機能では、最大 10 クロック サイクルを必要とする追加命令が追加されます。周辺ビットの設定またはクリアには 2 クロックかかります。ジャンプは、実行されるかどうかに関係なく 2 クロックかかります。2xx シリーズでは、2 MCLK は 16 MHz で 125 ns です。
プログラム カウンターへの移動が許可され、ジャンプを実行します。たとえば、サブルーチンからの戻りはMOV @SP+,PCとして実装されます。
R0 (PC) または R1 (SP) を自動増分アドレッシング モードで使用すると、常に 2 ずつ増分されます。その他のレジスタ (R4 ~ R15) は、オペランド サイズ (1 バイトまたは 2 バイト) ずつ増分されます。
ステータス レジスタには、4 つの演算ステータス ビット、グローバル割り込み有効化、およびさまざまなクロックを無効にして低電力モードに入るための 4 つのビットが含まれています。割り込みを処理するとき、プロセッサはステータス レジスタをスタックに保存し、低電力ビットをクリアします。割り込みハンドラが保存されたステータス レジスタを変更しない場合、割り込みから戻ると元の低電力モードが再開されます。
疑似操作
追加された命令の多くは、上記の形式のエイリアスとして実装されています。たとえば、「サブルーチンからの戻り」命令は特にありませんが、「MOV @SP+,PC」として実装されています。エミュレートされた命令は次のとおりです。
即値定数 -1 (0xffff)、0、1、2、4、8 は、別個の即値オペランドを必要とせずに、1 ワード命令で指定できることに注意してください。
MSP430X 20ビット拡張
基本的な MSP430 では、64K のアドレス空間を超えるメモリ (ROM + RAM + 周辺機器) をサポートできません。これをサポートするために、MSP430 の拡張形式では、20 ビットのレジスタと 20 ビットのアドレス空間を使用し、最大 1 MB のメモリを使用できます。これは、基本形式と同じ命令セットを使用しますが、2 つの拡張機能があります。
- 一般的な操作のための限られた数の20ビット命令、および
- 任意の命令を 20 ビットまで拡張できる一般的なプレフィックス ワード メカニズム。
拡張命令には、特にマルチビット シフトやマルチレジスタのロード/ストア操作などの追加機能がいくつか含まれています。
20 ビット操作では、.B または .W の代わりに長さサフィックス「A」(アドレス用) が使用されます。.W がデフォルトのままです。一般に、短い操作では、宛先レジスタの上位ビットがクリアされます。
新しい指示は次のとおりです。
その他の命令にはプレフィックスワードを追加して20ビットに拡張することができます。プレフィックスワードには追加されたオペランドサイズビットが含まれており、既存のB/Wビットと組み合わせてオペランドサイズを指定します。未使用のサイズの組み合わせが1つあります。これは将来32ビットのオペランドサイズに使用される可能性があることを示唆しています。[17]
プレフィックス ワードには 2 つの形式があり、その選択は後続の命令によって異なります。命令にレジスタ以外のオペランドがある場合は、命令ストリーム内のオフセットまたは即値定数を 20 ビットに拡張するための 2 つの 4 ビット フィールドを提供する単純な形式が使用されます。
命令がレジスタ間命令の場合、異なる拡張ワードが使用されます。これには、キャリーインを抑制する「ZC」フラグ (常にキャリー ビットを使用する DADD などの命令に便利) と繰り返しカウントが含まれます。拡張ワードの 4 ビット フィールドは、繰り返しカウント (最初の実行に加えて 0 ~ 15 回の繰り返し)、または 4 ビットの繰り返しカウントを含むレジスタ番号のいずれかをエンコードします。
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 が周辺機器に、そして最大 16K の RAM に割り当てられています。
参考文献
- ^ Evanczuk, Stephen (2013年8月20日). 「スライドショー: これまでで最も人気のMCU」. edn.com . Electronics Design Network . 2020年9月3日閲覧。
- ^ MSP430 はブドウで動作します – YouTubeのビデオ
- ^ 「MSP430FR573x ミックスドシグナルマイクロコントローラ」(PDF) . ti.com . Texas Instruments . 2024年7月27日閲覧。
- ^ 「MSP430 マイクロコントローラ」. ti.com . Texas Instruments . 2024 年7 月 27 日閲覧。
- ^ 「MSP430™ MCU を使用したシングルスロープ アナログ-デジタル変換テクニック」(PDF)。Texas Instruments。2017 年。2023 年 2 月 3 日時点のオリジナルよりアーカイブ(PDF) 。2023 年9 月 3 日に閲覧。
- ^ ab D. Peters、D. Raskovic、および D. Thorsen、「小型衛星アプリケーション向けのエネルギー効率の高い並列組み込みシステム」、ISAST Transactions on Computers and Intelligent Systems、vol. 1(2)、2009 年
- ^ 「MSP430 超低消費電力マイクロコントローラ - 2000 年第 3 四半期」(PDF)。Texas Instruments 。2024 年7 月 5 日閲覧。
- ^ ビアル、ルッツ (2004).大きな MSP430 Praxisbuch です。フランツィス。 p. 21.ISBN 377234299X。
- ^ 「製品速報 - MSP430 超低消費電力マイクロコントローラ - 1999 年第 2 四半期」(PDF)。Texas Instruments 。2024 年7 月 5 日閲覧。
- ^ テキサスインスツルメンツの低消費電力 MSP430 マイクロコントローラ
- ^ ab 「MSP430FR4xx および MSP430FR2xx ファミリ - ユーザーズ ガイド」。Texas Instruments。p. 43。
- ^ エネルギアのウェブサイト
- ^ MSP430 の記事[ permanent dead link ]がIEEEマガジンに掲載されました。
- ^ ビジュアルソリューション
- ^ MSP430 LaunchPad (MSP-EXP430G2)、Texas Instruments 組み込みプロセッサ Wiki
- ^ 「MSP430 超低消費電力マイクロコントローラ」(PDF) . Texas Instruments . 2008 年7 月 9 日閲覧。[永久リンク切れ ]
- ^ サイズ ビットは という名前
A/Lで、L(long) は他のプロセッサによって 32 ビット オペランドを示すために使用されます。また、SXTX 命令の説明 (MSP430F5xx ファミリ ユーザーズ ガイド alau208f の 237 ページ) では、レジスタ ビット 20 ~ 31 の命令の効果について説明しています。
外部リンク
コミュニティと情報サイト
- TI MSP430 ホームページ
- MSP430 TITAN 開発ボード
- TI E2E MSP430 コミュニティ フォーラム
- テキサスインスツルメンツがスポンサーの MSP430 コミュニティ
- MSP430 Yahoo!グループ
- MSP430.info
- MSP430 英語-日本語フォーラム
- 43oh.com – MSP430 ニュース、プロジェクト、フォーラム
- TinyOS-MSP430 – TinyOSポート
- MSP430 Egel プロジェクト ページ – ソース、回路図、十分に文書化された約 50 の例。
ビジュアルプログラミング C コードジェネレータ
- VisSim MSP430 モデルベース組み込み開発システム
コンパイラ、アセンブラ、IDE
無料のコンパイラとIDE
- アルドゥイーノ
- Code Composer Studio Eclipse ベースの IDE
- コードコンポーザースタジオクラウド
- IAR Embedded Workbench Kickstart IDE (サイズは 4/8/16 KB に制限されます – 使用するデバイスによって異なります)
- MSP430 マイクロコントローラ用 GCC ツールチェーン
- MSP430 開発システム
- naken_asm オープンソースの MSP430 アセンブラ、逆アセンブラ、シミュレーター。
- Windows 用のビルド済み MSP430 GCC 4.x バイナリ
- MSP430 16 ビット noForth コンパイラ。アセンブラ、逆アセンブラ、ソース付き。
- 5 MBds ターミナル、アセンブラ、SD_Card ドライバーを備えた FastForth...
最も人気のある制限のないIDEとコンパイラ
- TI MSP430 向け IAR 組み込みワークベンチ
- Rowley CrossWorks for MSP430 (評価期間は30日間のみ)
- MSP430 マイクロコントローラ用の GCC ツールチェーン (無料の C コンパイラ)
- MSP430 開発システム
- MSP430-GCC 経由で MSP430 をサポートする Visual Studio 用プラグイン (30 日間評価)
その他のIDE
- MSP430 マイクロコントローラ用 AQ430 開発ツール
- ImageCraft C ツール
- ForthInc Forth コンパイラ
- MSP430 用の MPE Forth IDE とクロスコンパイラは現在ベータ版です
- MSP430 用 HI-TECH C (2009 年に MSP430 のサポートを廃止)
デバッグツールのリスト(完全ではありません)
その他のツール
- WSim – 完全なプラットフォームの見積もりとデバッグのためのソフトウェア駆動型エミュレーター
- MSPSim – Java ベースの MSP430 エミュレーター/シミュレーター
- MSP430Static – Perl のリバース エンジニアリング ツール
- GoodFET – C と Python で書かれたオープンな MSP430 JTAG デバッガー
- mspdebug – オープンソースの MSP430 JTAG デバッガ
- Trace32 MSP430 SIM – 評価用に無料で MSP430 命令セット シミュレータをダウンロードできるエリア
- ERIKA Enterprise – ISO 17356 API (OSEK/VDX API から派生) の無料のオープンソース RTOS 実装
- EnergiaはWiringとArduinoをベースにしており、Processing IDEを使用しています。ハードウェアプラットフォームはTI MSP430 LaunchPadをベースにしています。
