2008/09/30(火)MSP430
MSP430とは
Texas Instruments(TI)製の超低消費電力マイコンシリーズです。TIというと、Burr-Brown買収によりDACやオペアンプというイメージが非常に強いのですが、流行の組み込みマイコンを作っているとは意外でした。
今回はeZ430-F2013という安価な開発キット*1を使用してあれこれいじっていますので、それをまとめておこうと思います。
あと、この開発キットで開発可能なMSP430F2013のDIP品が秋月で扱ってます。
どれくらい低消費電力?
バッテリー駆動を大変意識したマイコンです。
- 動作電圧 1.8V~3.6V
- 動作周波数 ~20MHz(デバイスによる)
- 消費電流 1MHz動作あたり0.3mA以下(デバイスによる)
- スタンバイ 1uA以下。(デバイスによる)
また、例えばPICは「4システムクロック=1命令cycle」ですが、MSP430は「1システムクロック=1命令cycle」のため実行効率もよくなっています。(AVRマイコンとかと一緒ですね)
開発キットの違い
MSP430の開発キットには3種類あります。(参考資料)
名称 | 価格 | 概要 |
---|---|---|
MSP-FET430UIF | 1~1.5万円 | JTAGインターフェイスのUSBデバッガ。 |
eZ430-F2013 | 2800円 | Spy-Bi-WireのUSBデバッガ。F20xx専用。 |
MSP-FET430UIFはよくあるUSB型開発ツールです。eZ430-F2013はMSP430F20xxシリーズなどSpy-By-Wireに特化したUSBスティック型開発ツールです。使用する型番により開発ツールを選択すれば良いのですか、後者は大変安価かつ簡単に入手できるためテストにはちょうど良いです。
MSP-FET430PIFというプリンタポート(パラレルポート)のJTAGもありますが、買う意味はほとんどないと思います。MSP-FET430PIFの互換品を自作する意味はあるでしょう(トラ技2007/01等に回路図あり)。
eZ430-F2013
オフィシャルページの写真をみればわかるとおり非常に小型の開発ボードです。先っちょが切り離せます。大きい方がMSP430シミュレーター(エミュレーター)になっています。小さい切り離せるものがターゲットボードです。MSP430F2013が乗っています。
Spy-Bi-Wire
MSP430用に開発されたJTAGに代わるシリアルインターフェイスです。2線シリアル(+電源+GND)の上にデバッグ用(フラッシュ用)のプロトコルが乗せてあります。*2
右の図はMSP430-FETユーザーズガイドから引用したもの。表にはありませんが、eZ430-F2013付属デバッガからMSP430F21xx/F22xxには書き込めるようです(確認済)。
これらはMSP430F2xxx専用と思いきや、MSP430F5xx等で利用できます。しかしながら、eZ430からMSP430F5xxへは書き込めないようです。実際にeZ430から書き込めなかった回路へ、JTAGからMSP-FET430マニュアル掲載の変換回路(右図)を使用して書き込むことができました*3(なお2.2nFが付いていると通信が安定しないため外しました)。
eZ430もMSP-FET430UIFも回路構成は「TUSB3410+MSP430F1612」とほぼ同一であることから、ファームウェアだけの問題のようです。eZ430にはファームウェアアップデート機構がないみたいですので、対応版のeZ430が登場することに期待したいところです。
開発ツール
IAR Embedded Workbench (略称EW430)
IAR社の統合開発環境。8051, ARM, AVR, H8等々、さまざまなマイコン向けに作られています。MSP430向けは以下のとおりです。
- 無償版
- C言語はコードサイズ4KBまで
- アセンブラは無制限。
- Microsoft Windows 2000 (SP4) 、XP (SP2)、Vista
- 製品版は30~45万円
TI Code Composer Essentials Professional
TIが提供している統合開発環境。Eclipseベース。
無償版はコードサイズ8KB16KBまで(定数領域除く。text領域のみの制限)。製品版でも5万円程度(499.00$)とIAR統合環境に比べ安価。
GCC toolchain for MSP430
http://sourceforge.net/projects/mspgcc/
GCCも移植されています。オンラインデバッグに対応していますが、統合開発環境ではなくテキストベース。
余談
スペックシートを見ているだけでもMSP430は非常によく出来ているように感じます。電力はもとより、機能面でもPICより上で、8051系よりも優れているように感じます(H8系はよく知らない)。eZ430という低価格な投資で、統合開発環境でマイコン開発ができるなんてすばらしいです。
ネットを検索すると、秋葉原に開発キットを流通させることを日本TIに人は初めから考えていたようで、セミナーも頻繁に行っていることからも、MSP430に対する本気さが伺えます。あと5xxの評価ボードの出来がよいとかいう話も。
他のマイコンと比較
項目 | MSP430 | PIC16 | AVR | 8051 | dsPIC | H8 | HC08 | 78K0S | 78K0R |
---|---|---|---|---|---|---|---|---|---|
レジスタ | 16bit | 8bit | 8bit | 8bit | 16bit | 16/32bit | 8bit | 8/16bit | 8/16bit |
レジスタ数 | 16 | - | 32 | 8 | 16 | 16/8 | - | 8/4 | 8/4 |
メモリ空間 | 16bit | 8bit | 8bit | 8bit | 16bit | 24bit | 16bit | 16bit | 20bit |
Bankメモリ | 有 | 有 | 有 | 有 | なし | なし | なし | なし | なし |
Reg-map | なし | map | map | map | map | なし | map | なし | なし |
ROM/RAM | 単一 | 分離 | 分離 | 分離 | 分離 | 単一 | 単一 | 単一 | 単一 |
開発環境 | 3k | 10k~ | 無償 | - | - | - | - | - | - |
- ROM/RAM分離:ROMとRAMのメモリ空間が別。要するにハーバード・アーキテクチャ。
- dsPICのメモリは通常リニアですが、特殊なメモリマップ機構を持っているため面白い使い方ができる模様。
- H8はレジスタのパーシャルアクセス(8/16/32bitのアクセス)ができる模様。
- PICやHC08は典型的なアキュムレータ式CPU+メモリ=レジスタ。
- 78Kはあんまり知られていない(?)、NECのマイコンシリーズ。
- 感想とか
- メモリ空間とレジスタ構成があると思想(仕様)の違いがよくわかる。なんでだれもこういうリスト作らないんだろう。
- H8は(名前のせいで)もっと低性能な8bitマイコンだと思いこんでました。結構優秀ですね。
- dsPICが思ったよりもまともな構成だった。
- Z80はいろんな意味で今更なので省略。SH2は高性能すぎるので省略。
- この他、SANYOのLC87とかがありますが、まるで資料がない&大企業しか相手にしてないので省略。
- 昨今のマイコンというとハーバードアーキテクチャというイメージがありますが、性能があがるとROM/RAM混在ですね。
- 素直な32bit処理性能が必要ならSH2やらARM7とかV850か。それ未満のマイコンレベルなら、この辺かなといったところ。
この項目だけ別記事にした方が役に立ちそうですね(苦笑) 訂正があったらよろしく。