MSP430F149 - MSP-FET
概要
MSP-FETは、Texas Instruments社が提供するMSP430マイコン用のプログラミングおよびデバッグツールである。
このツールは、JTAGインターフェース または Spy-Bi-Wire (SBW) インターフェースを使用して、MSP430マイコンとの通信を行う。
JTAG (Joint Test Action Group) は、元々は基板のテストのために開発された標準規格である。
現在では、マイコンのプログラミングやデバッグに広く使用されている業界標準のインターフェースとなっている。
MSP-FETの主な機能には、以下に示すものがある。
- プログラムのダウンロード (フラッシュROMへの書き込み)
- リアルタイムデバッグ
- ブレークポイントの設定
- ステップ実行
- レジスタとメモリの監視
- Code Composer Studio (CCS) や IAR Embedded Workbenchなどの統合開発環境との連携
MSP-FETは、USB経由でホストコンピュータに接続され、ターゲットのMSP430マイコンへは標準的な14ピンJTAGコネクタ または 4ピンSpy-Bi-Wireコネクタを使用して接続される。
このツールを使用することにより、開発者は効率的にプログラムの開発とデバッグを行うことができ、製品開発のサイクルを大幅に短縮することが可能となる。
JTAGとSpy-Bi-Wireの違い
MSP-FETは、2つの異なる通信方式をサポートしている。
それぞれの方式には特徴があり、用途に応じて使い分けることができる。
JTAG方式
JTAGは、4本の信号線を使用する標準的なインターフェースである。
必要な信号線は以下の通りである。
- TDI (Test Data In)
- テストデータの入力信号
- TDO (Test Data Out)
- テストデータの出力信号
- TMS (Test Mode Select)
- テストモードの選択信号
- TCK (Test Clock)
- テストクロック信号
さらに、電源とグラウンドを含めると、標準的な14ピンJTAGコネクタでは以下に示す信号が使用される。
- VCC (Target voltage)
- ターゲットマイコンの電源電圧 (1.8[V]~3.6[V])
- GND (Ground)
- グラウンド
- RST (Reset)
- リセット信号
- TEST
- テスト信号
JTAG方式は、ほぼ全てのMSP430デバイスでサポートされており、高速なデータ転送と安定した動作が特徴である。
開発の初期段階やプロトタイプの作成時には、JTAG方式を使用することが推奨される。
Spy-Bi-Wire (SBW) 方式
Spy-Bi-Wireは、2本の信号線のみを使用する省ピンインターフェースである。
これは、Texas Instruments社が開発したMSP430専用のインターフェースである。
必要な信号線は以下の通りである。
- SBWTDIO (Spy-Bi-Wire Test Data Input/Output)
- データ入出力の双方向信号
- SBWTCK (Spy-Bi-Wire Test Clock)
- クロック信号
Spy-Bi-Wire方式の利点は、使用するピン数が少ないため、製品の最終基板設計において貴重なピンを節約できることである。
また、4ピンコネクタ (SBWTDIO、SBWTCK、VCC、GND) で接続できるため、基板上のスペースも節約できる。
ただし、Spy-Bi-Wire方式は、JTAG方式と比較してデータ転送速度がやや遅い場合がある。
また、全てのMSP430デバイスがSpy-Bi-Wireをサポートしているわけではないため、使用するデバイスのデータシートで対応状況を確認する必要がある。
一般的に、MSP430F2xx、F4xx、F5xx、F6xx、FRxxファミリーの多くのデバイスがSpy-Bi-Wireをサポートしている。
MSP430F149のような古いデバイスでは、Spy-Bi-Wireがサポートされていない場合が多い。
接続方法
MSP-FETとターゲットマイコンを正しく接続することは、安全で確実なプログラミングとデバッグの基礎となる。
接続方法を誤ると、マイコンやMSP-FET本体を破損する可能性があるため、慎重に行う必要がある。
14ピンJTAG接続
標準的な14ピンJTAGコネクタのピン配置は、以下の通りである。
TDO/TDI → 1 2 ← VCC_TOOL TDI/VPP → 3 4 ← VCC_TARGET TMS → 5 6 ← N/C TCK → 7 8 ← TEST/VPP GND → 9 10 ← N/C RST → 11 12 ← N/C N/C → 13 14 ← N/C
接続時の注意点として、以下の点を確認する必要がある。
- ピン1の位置を正しく確認すること。コネクタには通常、切り欠きやマークでピン1が示されている。
- ターゲット基板の電源電圧が、MSP-FETの対応範囲 (1.8V~3.6V) 内であることを確認すること。
- ターゲット基板に電源が供給されていることを確認すること。MSP-FETは、ターゲット基板の電源電圧を検出して動作する。
4ピンSpy-Bi-Wire接続
4ピンSpy-Bi-Wireコネクタのピン配置は、以下の通りである。
VCC → 1 2 ← SBWTDIO SBWTCK → 3 4 ← GND
Spy-Bi-Wire接続では、RSTピンとTESTピンがSBWTDIOとSBWTCKとして使用される。
したがって、ターゲット基板では、これらのピンを他の目的で使用していないことを確認する必要がある。
※重要な注意事項
- 接続前に、必ずターゲット基板の電源電圧を確認すること。電圧が範囲外の場合、MSP-FETやターゲットマイコンを破損する可能性がある。
- 接続は、ターゲット基板の電源をOFFにした状態で行うことが推奨される。
- MSP-FETとターゲット基板のグラウンドが確実に接続されていることを確認すること。グラウンドの接続が不十分な場合、通信エラーや動作不良の原因となる。
- ケーブルの長さは、できるだけ短くすること。長いケーブルは、ノイズの影響を受けやすく、通信エラーの原因となる。一般的に、20cm以下が推奨される。
ターゲット基板の設計上の考慮事項
MSP-FETを使用してプログラミングとデバッグを行うためには、ターゲット基板の設計時にいくつかの重要な点を考慮する必要がある。
これらの考慮事項を無視すると、プログラミングやデバッグが困難になったり、不可能になったりする場合がある。
JTAGピンの保護
JTAGピン (TDI、TDO、TMS、TCK) は、製品の最終動作時には通常使用されないが、開発やデバッグ時には重要な役割を果たす。
したがって、これらのピンは、他の回路要素から適切に保護される必要がある。
特に注意すべき点として、JTAGピンには直列抵抗を接続しないことが挙げられる。
直列抵抗は、信号の立ち上がりと立ち下がりを遅くし、通信エラーの原因となる可能性がある。
もし、JTAGピンを他の目的でも使用する必要がある場合は、0Ω抵抗や小さな値の抵抗 (22Ω~47Ω) を使用し、製品化時にはこれらをショートすることを検討する。
デカップリングコンデンサ
ターゲットマイコンの電源ピンには、必ずデカップリングコンデンサを配置する必要がある。
推奨値は、0.1μF (100nF) のセラミックコンデンサであり、これをVCCピンとGNDピンの間にできるだけ近い位置に配置する。
デカップリングコンデンサは、マイコンの急激な電流変化を吸収し、電源電圧の安定化に寄与する。
これにより、プログラミングやデバッグ時の通信エラーを防ぐことができる。
また、電源ラインには、10μF程度の容量の大きいコンデンサも配置することが推奨される。
これは、電源全体の安定化に役立つ。
RSTピンの処理
RSTピン (リセットピン) は、JTAGインターフェースにおいて重要な役割を果たす。
このピンは、マイコンをリセット状態にするために使用され、プログラミングの開始時やデバッグ時のマイコンの初期化に使用される。
RSTピンには、外部プルアップ抵抗 (通常47kΩ) を接続することが推奨される。
これにより、RSTピンがフローティング状態になることを防ぎ、意図しないリセットを防止することができる。
また、RSTピンには、リセットボタンを接続することもできる。
この場合、ボタンを押すとRSTピンがGNDに接続され、マイコンがリセットされる。
ボタンを使用する場合は、チャタリング防止のために、0.1μF程度のコンデンサをRSTピンとGNDの間に配置することが推奨される。
TESTピンの処理
TESTピンは、MSP430マイコンをJTAGモードに入れるために使用される特別なピンである。
通常、このピンには外部プルダウン抵抗 (通常47kΩ) を接続することが推奨される。
TESTピンがHighレベルになると、マイコンはJTAGモードに入り、通常の動作を停止する。
したがって、製品の通常動作時には、このピンがLowレベルに保たれる必要がある。
プルダウン抵抗は、TESTピンを確実にLowレベルに保つために使用される。
Spy-Bi-Wire方式を使用する場合、TESTピンはSBWTCKとして使用されるため、この場合もプルダウン抵抗の接続が重要となる。
※設計上の重要な注意事項
- 製品の最終基板では、必ずJTAGまたはSpy-Bi-Wireコネクタを実装すること。これにより、製造後のプログラミングやトラブルシューティングが可能となる。
- コネクタのスペースが限られている場合は、テストポイント (パッド) を配置することを検討すること。テストポイントは、ポゴピンアダプタや治具を使用して接続することができる。
- JTAGピンをGPIOとして使用する場合は、プログラミング時にこれらのピンが正しく動作するように、適切な保護回路を実装すること。
プログラミングとデバッグの手順
MSP-FETを使用したプログラミングとデバッグの基本的な手順を説明する。
これらの手順を理解することで、効率的な開発が可能となる。
初回接続とデバイスの認識
MSP-FETを初めて使用する際、または新しいターゲット基板に接続する際には、以下の手順を実行する。
まず、MSP-FETをUSB経由でホストコンピュータに接続する。
ドライバが自動的にインストールされ、デバイスとして認識される。
Windows環境では、デバイスマネージャでMSP-FETが正しく認識されていることを確認できる。
次に、ターゲット基板に電源を供給する。
MSP-FETは、ターゲット基板から電源電圧を検出するため、ターゲット基板に電源が供給されていることが必須である。
その後、MSP-FETとターゲット基板をJTAGケーブルまたはSpy-Bi-Wireケーブルで接続する。
統合開発環境 (Code Composer StudioやIAR Embedded Workbenchなど) を起動し、デバッグ設定を行う。
デバッグ設定では、使用するデバッガ (MSP-FET) とターゲットデバイス (例: MSP430F149) を選択する。
接続ボタンをクリックすると、開発環境はMSP-FETを介してターゲットマイコンと通信を試みる。
接続が成功すると、マイコンのデバイス情報が表示され、プログラミングとデバッグが可能となる。
プログラムのダウンロード
プログラムをマイコンにダウンロードする手順は、使用する開発環境によって若干異なるが、基本的な流れは同じである。
まず、ソースコードをコンパイルして、実行可能ファイル (通常は.outまたは.elfファイル) を生成する。
コンパイルエラーがある場合は、それらを修正してから次に進む。
次に、開発環境のダウンロード機能またはプログラム機能を使用して、実行可能ファイルをマイコンのFlash ROMに書き込む。
この処理には、通常数秒から数十秒かかる。
書き込みが完了すると、開発環境は書き込まれたプログラムを検証し、正しく書き込まれたことを確認する。
検証が成功すると、プログラムはマイコンに正常にダウンロードされたことになる。
この時点で、マイコンをリセットすると、新しくダウンロードされたプログラムが実行される。
デバッグの実行
デバッグは、プログラムの動作を確認し、バグを発見して修正するための重要なプロセスである。
MSP-FETは、強力なデバッグ機能を提供し、効率的なデバッグを可能にする。
ブレークポイントは、プログラムの実行を一時停止させるために使用される。
ソースコードの特定の行にブレークポイントを設定すると、プログラムがその行に到達したときに自動的に停止する。
MSP430F149では、ハードウェアブレークポイントが8個まで使用できる。
ステップ実行は、プログラムを1行ずつ実行する機能である。
ステップイン、ステップオーバー、ステップアウトなどの機能を使用して、関数呼び出しの内部に入ったり、関数呼び出しをスキップしたりすることができる。
これにより、プログラムの動作を詳細に追跡することができる。
変数とレジスタの監視は、プログラムの実行中に変数やレジスタの値を確認する機能である。
ウォッチウィンドウに変数を追加することで、その値をリアルタイムで監視することができる。
これにより、プログラムの状態を把握し、期待通りに動作しているかを確認することができる。
メモリビューアは、マイコンのメモリ内容を直接確認する機能である。
Flash ROM、RAM、ペリフェラルレジスタなどのメモリ領域を表示し、必要に応じて値を変更することもできる。
これは、低レベルのデバッグや、ハードウェアの動作確認に特に有用である。
※デバッグ時の注意事項
- デバッグ中は、マイコンの動作が通常とは異なる場合がある。特に、タイマやウォッチドッグタイマの動作に影響が出る可能性がある。
- ブレークポイントで停止中は、ペリフェラルの動作も停止する場合がある。これにより、実際の動作とは異なる結果が得られる可能性がある。
- リアルタイム性が重要なアプリケーションでは、デバッグの影響を考慮する必要がある。
ヒューズの設定とFlash保護
MSP430マイコンには、セキュリティ機能としてFlash保護機能が実装されている。
この機能を理解し、適切に使用することは、製品のセキュリティを確保する上で重要である。
Flash保護の概念
Flash保護は、マイコン内部のFlash ROMに格納されているプログラムコードを、不正な読み出しや書き換えから保護するための機能である。
MSP430では、フューズビットと呼ばれる特別なビットを設定することで、Flash保護を有効にすることができる。
Flash保護が有効になると、JTAGインターフェースを使用してFlash ROMの内容を読み出すことができなくなる。
これにより、競合他社や悪意のある第三者がプログラムコードを盗むことを防ぐことができる。
保護の種類
MSP430では、複数の保護レベルが提供されている。
情報メモリの保護は、特定のメモリ領域 (情報メモリ) を保護する機能である。
情報メモリには、通常、キャリブレーションデータや設定情報などが格納される。
主Flash ROMの保護は、プログラムコードが格納されている主Flash ROM領域を保護する機能である。
この保護を有効にすると、Flash ROM全体が読み出し禁止となる。
保護の設定方法
Flash保護は、開発環境のフューズビット設定機能を使用して設定する。
Code Composer Studioでは、デバッグ設定の中にフューズビット設定のオプションがある。
保護を設定する際は、慎重に行う必要がある。
一度Flash保護を有効にすると、Flash ROMの内容を読み出すことができなくなるため、バックアップを取っていない場合、プログラムコードを失う可能性がある。
また、Flash保護を解除するためには、Flash ROM全体を消去する必要がある。
これにより、格納されていたプログラムコードは完全に失われる。
したがって、Flash保護は、製品の最終出荷時にのみ有効にすることが推奨される。
開発やデバッグの段階では、Flash保護を有効にしないことが重要である。
※Flash保護に関する重要な警告
- Flash保護を有効にする前に、必ずプログラムコードのバックアップを取ること。
- Flash保護を有効にすると、デバッグが不可能になる。製品の出荷前に十分なテストを行うこと。
- Flash保護を解除するには、Flash ROM全体を消去する必要があり、プログラムコードは失われる。
- 誤ってFlash保護を有効にした場合、専用のツールや手順が必要になる場合がある。Texas Instrumentsのサポート文書を参照すること。
トラブルシューティング
MSP-FETを使用する際に発生する可能性のある一般的な問題とその解決方法について説明する。
これらの情報は、開発中に遭遇する問題を迅速に解決するために役立つ。
ターゲットデバイスが認識されない
この問題は、MSP-FETとターゲットマイコン間の通信が確立できない場合に発生する。
まず、ターゲット基板に電源が供給されていることを確認する。
MSP-FETは、ターゲット基板の電源電圧を検出するため、電源が供給されていない場合、通信は確立できない。
テスターを使用して、VCCピンに正しい電圧 (1.8V~3.6V) が供給されているかを確認する。
次に、JTAGケーブルの接続を確認する。
ケーブルが正しく接続されているか、ピンの向きが正しいかを確認する。
ケーブルが緩んでいたり、接触不良がある場合、通信エラーが発生する可能性がある。
また、RSTピンとTESTピンの状態を確認する。
これらのピンが他の回路によって固定されている場合、JTAGモードに入ることができない可能性がある。
RSTピンには外部プルアップ抵抗が、TESTピンには外部プルダウン抵抗が接続されていることを確認する。
さらに、ターゲットマイコンのJTAGピンが他の目的で使用されていないかを確認する。
プログラムコードでこれらのピンをGPIOとして設定している場合、JTAG通信が妨げられる可能性がある。
この場合、Flash消去モードでマイコンに接続し、Flash ROMを消去してから再度プログラムをダウンロードする必要がある。
プログラムのダウンロードに失敗する
プログラムのダウンロード中にエラーが発生する場合、いくつかの原因が考えられる。
まず、ターゲット基板の電源電圧が安定していることを確認する。
電源電圧が不安定な場合、書き込み処理中にエラーが発生する可能性がある。
オシロスコープを使用して、電源電圧の変動を確認することができる。
デカップリングコンデンサが適切に配置されているかも確認する。
次に、Flash ROMの容量を確認する。
プログラムサイズが、ターゲットマイコンのFlash ROM容量を超えている場合、書き込みは失敗する。
コンパイル後のプログラムサイズを確認し、必要に応じてコードを最適化する。
また、Flash保護が有効になっていないかを確認する。
Flash保護が有効な場合、新しいプログラムを書き込むことができない。
この場合、Flash消去モードで接続し、Flash ROMを消去してから再度書き込みを行う。
デバッグ中に通信が切断される
デバッグ中に通信が切断される場合、以下の点を確認する。
まず、USBケーブルの接続を確認する。
USBケーブルが緩んでいたり、接触不良がある場合、通信が切断される可能性がある。
別のUSBポートやUSBケーブルを試してみることも有効である。
次に、JTAGケーブルの長さを確認する。
ケーブルが長すぎる場合、ノイズの影響を受けやすく、通信エラーが発生する可能性がある。
ケーブルの長さを20cm以下にすることが推奨される。
また、ターゲット基板の周辺にノイズ源がないかを確認する。
モーターやスイッチング電源などのノイズ源は、JTAG通信に影響を与える可能性がある。
可能であれば、ノイズ源から離れた場所でデバッグを行う。
さらに、プログラムコードでウォッチドッグタイマを使用している場合、デバッグ中にウォッチドッグタイマがマイコンをリセットする可能性がある。
デバッグ時には、ウォッチドッグタイマを無効にするか、適切に制御する必要がある。
ファームウェアの更新が必要な場合
MSP-FET自体のファームウェアが古い場合、新しいマイコンデバイスをサポートしていない可能性がある。
ファームウェアの更新は、Code Composer Studioなどの開発環境から行うことができる。
通常、開発環境がMSP-FETのファームウェアを自動的に検出し、必要に応じて更新を促す。
ファームウェアの更新プロセスは、通常数分で完了する。
更新中は、MSP-FETをコンピュータから取り外さないように注意する必要がある。
※トラブルシューティングの注意事項
- 問題が解決しない場合は、Texas Instrumentsの公式サポートフォーラムやドキュメントを参照すること。
- ハードウェアの問題が疑われる場合は、既知の正常な基板で動作を確認すること。
- 複雑な問題の場合は、問題を単純化し、最小限の構成で動作を確認することが有効である。