概要
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コネクタを使用して接続される。
このツールを使用することにより、開発者は効率的にプログラムの開発とデバッグを行うことができ、製品開発のサイクルを大幅に短縮することが可能となる。
MSP-FET、MSP-GANG430、MSP-PRGS430等のプログラマは、いずれも同じ接続方式をサポートしており、プロトタイプ基板から量産基板まで一貫した開発環境を提供する。
JTAG と Spy-Bi-Wireの違い
MSP-FETは、2つの異なる通信方式をサポートしている。
それぞれの方式には特徴があり、用途に応じて使い分けることができる。
JTAG方式 (4線式)
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デバイスでサポートされており、高速なデータ転送と安定した動作が特徴である。
ただし、ピン数の少ないデバイス(例:MSP430G2230)では、4線式JTAGがサポートされていない場合がある。
開発の初期段階やプロトタイプの作成時には、JTAG方式を使用することが推奨される。
Spy-Bi-Wire (SBW) 方式 (2線式)
Spy-Bi-Wireは、2本の信号線のみを使用する省ピンインターフェースである。
これは、Texas Instruments社が開発したMSP430専用のインターフェースである。
必要な信号線は以下の通りである。
- SBWTDIO (Spy-Bi-Wire Test Data Input/Output)
- データ入出力の双方向信号 (RST/NMIピンと共用)
- SBWTCK (Spy-Bi-Wire Test Clock)
- クロック信号(TESTピンと共用)
Spy-Bi-Wire方式の利点は、使用するピン数が少ないため、製品の最終基板設計において貴重なピンを節約できることである。
また、4ピンコネクタ (SBWTDIO、SBWTCK、VCC、GND) で接続できるため、プリント基板上のスペースも節約できる。
ただし、Spy-Bi-Wire方式は、JTAG方式と比較してデータ転送速度がやや遅い場合がある。
また、全てのMSP430デバイスがSpy-Bi-Wireをサポートしているわけではないため、使用するデバイスのデータシートで対応状況を確認する必要がある。
一般的に、MSP430F2xx、MSP430G2xx、F4xx、F5xx、F6xx、FRxxファミリーの多くのデバイスがSpy-Bi-Wireをサポートしている。
MSP430F149のような古いデバイスでは、Spy-Bi-Wireがサポートされていない場合が多い。
使用する開発環境 (Code Composer Studio または IAR Embedded Workbench) のユーザーガイドを参照して、特定のデバイスでどのインターフェース方式が使用可能かを確認すること。
主なMSP430マイコンのピン対応
SBWが推奨される理由として、MSP430F2013のような小型のマイコンでは、JTAGピンがI/Oポートと共有されている。
SBWを使用すれば、RSTとTESTの2本だけでデバッグできるため、他のピンをGPIOやSPI等の通信に使用できる。
(JTAGではピンの競合が発生する可能性がある)
| 項目 | MSP430F149 | MSP430F2013 | MSP430F5529 | MSP430G2553 |
|---|---|---|---|---|
| 基本仕様 | ||||
| パッケージ | 64ピンLQFP | 14ピンTSSOP/PDIP | 64ピンRGC (VQFN) 80ピンPN (LQFP) |
20ピンPDIP/TSSOP/VQFN |
| デバイス特性 | 大型デバイス | 小型デバイス | USB対応マイコン | 汎用デバイス |
| ピン設計 | ポートピン (P4.4~P4.7) との多重化 | 省ピン設計により、多くのピンをアプリケーションに使用可能 | ポートピン (PJ.0~PJ.3) との多重化 USB機能搭載 |
ポートピン (P1.4~P1.7) との多重化により柔軟な設計が可能 |
| 用途の特徴 | 古い世代のデバイスで、専用JTAGピンを持つ設計 | 限られたピン数で最大限の機能を実現 | USB接続が必要なアプリケーション データロガー、センサシステム |
開発時と製品化時で異なるインターフェースを選択可能 |
| デバッグインターフェース対応 | ||||
| 4線式JTAG | サポート | サポート | サポート | サポート |
| 2線式Spy-Bi-Wire | - | サポート | サポート | サポート |
| 電源ピン | ||||
| VCC/AVCC/DVCC | ピン48 (DVCC) ピン60 (AVCC) |
ピン1 (VCC) | 64ピンRGC: ピン33 (DVCC2) ピン15 (DVCC1) ピン11 (AVCC1) 80ピンPN: ピン50 (DVCC2) ピン18 (DVCC1) ピン11 (AVCC1) |
ピン1 (DVCC) |
| VSS/AVSS/DVSS | ピン49 (DVSS) ピン61 (AVSS) |
ピン14 (VSS) | 64ピンRGC: ピン34 (DVSS2) ピン16 (DVSS1) ピン14 (AVSS1) 80ピンPN: ピン49 (DVSS2) ピン19 (DVSS1) ピン14 (AVSS1) |
ピン20 (DVSS) |
| Spy-Bi-Wire信号線 | ||||
| RST/NMI | - | ピン10 (RST/NMI/SBWTDIO) | 64ピンRGC: ピン64 (RST/NMI/SBWTDIO) 80ピンPN: ピン76 (RST/NMI/SBWTDIO) |
ピン16 (RST/NMI/SBWTDIO) |
| TEST/VPP | - | ピン11 (TEST/SBWTCK) | 64ピンRGC: ピン59 (TEST/SBWTCK) 80ピンPN: ピン71 (TEST/SBWTCK) |
ピン17 (TEST/SBWTCK) |
| 4線式JTAG信号線 | ||||
| TCK | ピン5 (P4.4/TCK) | ピン6 (P1.4/SMCLK/A2+/TCK) | 64ピンRGC: ピン63 (PJ.3/TCK) 80ピンPN: ピン75 (PJ.3/TCK) |
ピン7 (P1.4/SMCLK/TCK) |
| TMS | ピン3 (P4.5/TMS) | ピン7 (P1.5/TA0/A2-/SCLK/TMS) | 64ピンRGC: ピン62 (PJ.2/TMS) 80ピンPN: ピン74 (PJ.2/TMS) |
ピン13 (P1.5/TA0.0/TMS) |
| TDI/VPP | ピン4 (P4.6/TDI) | ピン8 (P1.6/TA1/A3+/SDO/SCL/TDI/TCLK) | 64ピンRGC: ピン61 (PJ.1/TDI/TCLK) 80ピンPN: ピン73 (PJ.1/TDI/TCLK) |
ピン14 (P1.6/TA0.1/TDI/TCLK) |
| TDO/TDI | ピン1 (P4.7/TDO) | ピン9 (P1.7/A3-/SDI/SDA/TDO/TDI) | 64ピンRGC: ピン60 (PJ.0/TDO) 80ピンPN: ピン72 (PJ.0/TDO) |
ピン15 (P1.7/CAOUT/TDO/TDI) |
| 追加仕様 | ||||
| クロック速度 | 最大8[MHz] | 最大16[MHz] | 最大25[MHz] (PMMCOREVx設定による) |
最大16[MHz] |
| フラッシュROM / RAM容量 | 60[KB] / 2[KB] | 2[KB] / 128B | 128[KB] / 8[KB] | 16[KB] / 512[B] |
| 特記事項 | 4線式JTAG専用 TESTピンは専用ピンとして存在しない |
2線式Spy-Bi-Wire専用 4線式JTAGピンは存在しない |
USB 2.0対応 12ビットADC搭載 両方のJTAGモードをサポート |
両方のJTAGモードをサポート JTAGピンはGPIOと共用可能 |
接続方法
電源供給方法の選択
MSP-FETおよびMSP-GANG430は、ターゲット基板への電源供給機能を持っている。
電源供給方法には、以下の2つの選択肢がある。
ツールから電源を供給する場合(VCC_TOOL使用)
- 14ピンJTAGコネクタのピン2 (VCC_TOOL) に接続する。
- ターゲット基板に独自の電源がない場合に使用する。
- ピン4 (VCC_TARGET) には接続しない。
ターゲット基板の独自電源を使用する場合(VCC_TARGET使用)
- 14ピンJTAGコネクタのピン4(VCC_TARGET)に接続する
- ターゲット基板がバッテリーや独自電源を持つ場合に使用
- VCC_SENSE機能により、MSP-FETが基板の電源電圧を検出し、それに応じて出力信号を調整する
- 電源競合を防ぐため、ピン2(VCC_TOOL)には接続しない
※注意
ピン2とピン4を同時に接続してはならない。
電源競合により、MSP-FETまたはターゲット基板を破損する可能性がある。
両方の電源供給方法に対応するため、ジャンパブロックを使用して切り替え可能な設計にすることができる。
柔軟性が不要な場合は、必要な接続方法を直接配線してジャンパブロックを省略することもできる。
14ピンJTAG接続
下図に、MSP430F149マイコンと14ピンJTAGコネクタとの接続を示す。
- ※注記1 - 電源供給の選択
- ターゲットボード側でローカル電源を使用する場合は JP1 - 3 を接続する。
- MSP-FETから電源を供給する場合は JP1 - 1 を接続する。
- ※注記2 - RST/NMIピンのR1とC1の設定
- RST/NMIピンのR1とC1の構成はデバイスファミリーにより異なる。
- MSP430F14xファミリーでは、回路図に示されているように 47[kΩ]のプルアップ抵抗 と 0.01[uF]のコンデンサ が標準的な値である。
- これにより、リセット信号のノイズ耐性と適切な立ち上がり時間を確保する。
- MSP430F149のデータシート [6.9.1]セクションでも、このRSTピン回路の推奨値が記載されている。
- ※注記3 - TESTピンの有無
- TESTピンは、多重化されたJTAGピンを持つMSP430ファミリーメンバーでのみ使用可能である。
- ただし、MSP430F149にはTESTピンは存在しない。
- TESTピンは後の世代であるMSP430F2xx、G2xxシリーズ以降で導入されたものであり、JTAGピンがポートピンと多重化されているデバイスで使用される。
- ※注記4 - JTAGコネクタRSTピン接続の必要性
- JTAGコネクタのRSTピンへの接続は、SBW (Spy-Bi-Wire) 通信をサポートするデバイスをプログラミングまたはデバッグする場合に必須である。
- これは、JTAG通信を使用している場合でも同様である。
- ただし、SBW (Spy-Bi-Wire) 通信をサポートしないデバイスでは、この接続はオプション (任意) である。
- MSP430F149はJTAG通信のみに対応しているため、JTAGコネクタのRSTピン接続はオプション (任意) となる。
- ただし、実務においては、以下に示す理由から接続することを推奨する。
- JTAGコマンドによるリセットが失敗した場合の予備手段として機能する。
- デバッグツールが確実にデバイスをリセットすることができる。
- ※注記5 - SBW (Spy-Bi-Wire) 通信デバイスでのC1容量制限
- SBW (Spy-Bi-Wire) 通信をサポートするマイコンをJTAG通信で使用する場合、C1の上限値は2.2[nF]を超えてはならない。
- SBW (Spy-Bi-Wire) 通信の標準値は1.1[nF]である。
- この範囲は、SBW速度、電圧、基板設計により、0.1[nF]〜2.2[nF]の間で変化することがある。
- ただし、MSP430F149はSBW (Spy-Bi-Wire) 通信に対応していないため、この制限は適用されない。
- MSP430F14xファミリーでは、RST/NMIピンのC1として 0.01[uF]が推奨値 である。
- これは注記Eの2.2[nF]の制限よりも大きい値であるが、MSP430F149では問題ない。
- この値により、リセット信号のノイズフィルタリングと適切なデバウンス特性が得ることができる。
- ※注記6 - ノイズ・ESD対策のプルダウン抵抗
- 過度なノイズやESD (静電気放電) が懸念される用途では、ターゲットデバイスの適切なプログラミングを維持しながら、
- 500[Ω]〜1[kΩ]のプルダウン抵抗をTESTピンに追加することができる。
- MSP430F149にはTESTピンが存在しないため、この注記は該当しない。
- ただし、ノイズ・ESD対策として、以下に示す事柄に注意すること。
- JTAGピン (TDO/TDI、TDI/TCLK、TMS、TCK) にはESD保護回路が内蔵されているが、高ノイズ環境では信号ラインに直列抵抗 (22[Ω]〜47[Ω]程度) の追加を検討する。
- GNDプレーンを適切に配置して、信号ラインの長さを最小限に抑える。
※注意
JTAG通信の接続時において、以下に示す事柄を確認する必要がある。
- ピン1の位置を正しく確認すること。
コネクタには通常、切り欠きやマークでピン1が示されている。 - ターゲット基板の電源電圧が、MSP-FETの対応範囲 (1.8[V]~3.6[V]) 内であることを確認すること。
- MSP-FETはターゲット基板の電源電圧を検出して動作するため、ターゲット基板に電源が供給されていることを確認すること。
SBW (Spy-Bi-Wire) 接続
MSP430F149マイコンでは、SBW (Spy-Bi-Wire) 通信は非対応である。
※注意1
一部のSBW (Spy-Bi-Wire) 対応のMSP430デバイスでは、TEST / SBWTCKピンが立ち上がり信号エッジに非常に敏感である。
意図しないエッジ信号により、テストロジックが正常にエントリシーケンスを認識できない状態に入り、JTAGアクセスが無効化される可能性がある。
JTAGコネクタをターゲットデバイスに接続する時に、このような意図しないエッジが発生することがある。
※注意2
- 接続前に、必ずターゲット基板の電源電圧を確認すること。電圧が範囲外の場合、MSP-FETやターゲットマイコンを破損する可能性がある。
- 接続は、ターゲット基板の電源をOFFにした状態で行うことが推奨される。
- MSP-FETとターゲット基板のグラウンドが確実に接続されていることを確認すること。
グラウンドの接続が不十分な場合、通信エラーや動作不良の原因となる。 - ケーブルの長さは、できるだけ短くすること。
長いケーブルは、ノイズの影響を受けやすく通信エラーの原因となる。
一般的に、0.2[m]以下が推奨される。 - ピン2 (VCC_TOOL) と ピン4 (VCC_TARGET) を同時に接続してはならない。
RST/NMIピンのコンデンサC1容量の選定ガイド
RST/NMIピンに接続するコンデンサC1の上限値は、SBW (Spy-Bi-Wire) 機能の有無によって異なる。
コンデンサC1の上限値一覧
| マイコンの種類 | デバッグ インターフェース |
C1の容量 | 備考 |
|---|---|---|---|
| SBW対応 MSP430マイコン |
JTAG | 2200[pF]以下 (推奨 : 100[pF]~2200[pF]) |
JTAGを使用する場合でも上限は2200[pF] |
| SBW | 2200[pF]以下 (推奨 : 100[pF]~2200[pF]) |
典型値は、1100[pF]程度 | |
| SBW非対応 旧世代MSP430 |
JTAG | 0.01[µF] 程度 | RST/NMIがリセット専用のため容量制限なし |
容量制限の理由
SBW対応マイコンでは、RST/NMI/SBWTDIOピンがリセット信号と双方向データ通信の2つの機能を持つ。
このため、JTAGインターフェース使用時でもSBWと同じ容量制限が適用される。
大容量コンデンサは充放電に時間を要し、信号の立ち上がり/立ち下がり時間が長くなることでSBW通信エラーやデバイス認識の失敗を引き起こす。
2200[pF]という上限値は、MSP-FETファームウェアとCode Composer Studioでの安定動作が保証されている値である。
最適値は下表の条件により変動するため、100[pF]~2200[pF]の範囲内で調整が推奨される。
| 要因 | 影響内容 |
|---|---|
| SBW通信速度設定 | 通信速度が高いほど小さい容量が必要。 |
| ターゲット基板の電源電圧 | 電圧が低いと信号の立ち上がり時間が長くなる。 |
| 基板レイアウト | 配線長が長い または 寄生容量が大きいと信号品質が低下する。 |
| ノイズ環境 | ノイズが多い環境では安定性のため調整が必要。 |
基板設計時の重要事項
- 使用するMSP430マイコンのデータシートでSBW機能の有無を確認する。(F2xx、G2xx、F4xxシリーズ以降の多くはSBW対応)
- 典型値として1100[pF]程度を使用する。
- 通信が不安定な場合は、100[pF]~2200[pF]の範囲で調整する。
- ノイズ対策が必要な場合はTESTピンに500[Ω]~1[kΩ]のプルダウン抵抗を追加可能。
※注意
この容量制限は安定したデバッグ接続を確保するための重要な設計ガイドラインであるため、基板設計時には必ず遵守すること。
トラブルシューティング
MSP-FETがデバイスを認識できない場合、以下に示す事柄を確認する。
- C1の容量が2200[pF]以下であること。
- 配線長を可能な限り短くし、寄生容量を最小化する。
- SBW通信速度の設定を下げて試す。
- C1の容量を段階的に小さくする。(例 : 1100[pF] -> 470[pF] -> 100[pF])
- ノイズやESDの影響が懸念される場合は、TESTピンに500[Ω]~1[kΩ]のプルダウン抵抗を追加する。
ターゲット基板の設計上の考慮事項
MSP-FETを使用してプログラミングとデバッグを行うためには、ターゲット基板の設計時にいくつかの重要な点を考慮する必要がある。
これらの考慮事項を無視すると、プログラミングやデバッグが困難になったり、不可能になったりする場合がある。
JTAGピンの保護
JTAGピン (TDI、TDO、TMS、TCK) は、製品の最終動作時には通常使用されないが、開発やデバッグ時には重要な役割を果たす。
したがって、これらのピンは、他の回路要素から適切に保護される必要がある。
特に注意すべき点として、JTAGピンには直列抵抗を接続しないことが挙げられる。
直列抵抗は、信号の立ち上がりと立ち下がりを遅くし、通信エラーの原因となる可能性がある。
もし、JTAGピンを他の目的でも使用する必要がある場合は、0Ω抵抗や小さな値の抵抗 (22Ω~47Ω) を使用し、製品化時にはこれらをショートすることを検討する。
デカップリングコンデンサ
ターゲットマイコンの電源ピンには、必ずデカップリングコンデンサを配置する必要がある。
必須のデカップリングコンデンサ
- 0.1μF (100nF) のセラミックコンデンサ(C3)
- VCCピンとGNDピンの間にできるだけ近い位置に配置する
- マイコンの急激な電流変化を吸収し、電源電圧の安定化に寄与する
- プログラミングやデバッグ時の通信エラーを防ぐために重要
推奨される追加コンデンサ
- 10μF程度の容量の大きいコンデンサ(C2)
- 電源ライン全体の安定化に役立つ
- セラミックコンデンサまたは電解コンデンサを使用
デカップリングコンデンサは、プログラミングとデバッグの信頼性を大きく向上させるため、必ず実装すること。
RSTピンの処理
RSTピン (リセットピン) は、JTAGインターフェースにおいて重要な役割を果たす。
このピンは、マイコンをリセット状態にするために使用され、プログラミングの開始時やデバッグ時のマイコンの初期化に使用される。
推奨されるRSTピン回路
- 外部プルアップ抵抗(R1: 通常47kΩ)をVCCとRSTピンの間に接続
- RSTピンがフローティング状態になることを防ぐ
- 意図しないリセットを防止する
リセットボタンを使用する場合
- ボタンを押すとRSTピンがGNDに接続され、マイコンがリセットされる
- チャタリング防止のため、コンデンサ(C1)をRSTピンとGNDの間に配置する
- コンデンサ値はデバイスファミリーによって異なる(一般的には10nFまたは1.1nF)
- MSP430ファミリーのユーザーガイドで推奨構成を確認すること
Spy-Bi-Wire使用時の特別な考慮事項
2線式JTAG(Spy-Bi-Wire)モードでは、RST/NMI/SBWTDIOピンがJTAGアクセス中に双方向通信に使用される。
このピンに接続されている容量は、デバイスとの接続確立能力に影響を与える可能性がある。
- C1の上限値は2.2nFである(現行のTIツール使用時)
- Spy-Bi-Wire通信の標準値は1.1nFである
- 範囲は0.1nF~2.2nFで、SBW速度、電圧、基板設計によって変わる
- デバイス固有の推奨値については、データシートを参照すること
4線式JTAGモードでSpy-Bi-Wire対応デバイスを使用する場合
2線式JTAG通信をサポートするデバイスを4線式JTAGモードで使用する場合でも、C1の上限は2.2nFを超えないようにすること。
TESTピンの処理
TESTピンは、MSP430マイコンをJTAGモードに入れるために使用される特別なピンである。
基本的な接続
- 外部プルダウン抵抗(通常47kΩ)を接続することが推奨される
- TESTピンがHighレベルになると、マイコンはJTAGモードに入り、通常の動作を停止する
- 製品の通常動作時には、このピンがLowレベルに保たれる必要がある
- プルダウン抵抗は、TESTピンを確実にLowレベルに保つために使用される
ノイズ対策が必要な場合
過度なノイズやESDが懸念されるアプリケーションでは、500Ω~1kΩのプルダウン抵抗を追加することができる。
この抵抗は、ターゲットデバイスの適切なプログラミングを妨げることなく、ノイズ耐性を向上させる。
Spy-Bi-Wire使用時の注意
Spy-Bi-Wire方式を使用する場合、TESTピンはSBWTCKとして使用されるため、プルダウン抵抗の接続が特に重要となる。
TESTピンの可用性
TESTピンは、JTAGピンが多重化されているMSP430ファミリーメンバーでのみ使用可能である。
使用するデバイスでこのピンが使用可能かどうかは、デバイス固有のデータシートで確認すること。
※設計上の重要な注意事項
- 製品の最終基板では、必ずJTAGまたはSpy-Bi-Wireコネクタを実装すること。これにより、製造後のプログラミングやトラブルシューティングが可能となる。
- コネクタのスペースが限られている場合は、テストポイント (パッド) を配置することを検討すること。テストポイントは、ポゴピンアダプタや治具を使用して接続することができる。
- JTAGピンをGPIOとして使用する場合は、プログラミング時にこれらのピンが正しく動作するように、適切な保護回路を実装すること。
- RSTピンとTESTピンの抵抗とコンデンサの値は、デバイスファミリーによって異なる場合があるため、必ずMSP430ファミリーのユーザーガイドとデバイス固有のデータシートを参照すること。
プログラミングとデバッグの手順
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、ペリフェラルレジスタなどのメモリ領域を表示し、必要に応じて値を変更することもできる。
これは、低レベルのデバッグや、ハードウェアの動作確認に特に有用である。
※注意
- デバッグ中は、マイコンの動作が通常とは異なる場合がある。
特に、タイマやウォッチドッグタイマの動作に影響が出る可能性がある。 - ブレークポイントで停止中は、ペリフェラルの動作も停止する場合がある。
これにより、実際の動作とは異なる結果が得られる可能性がある。
ヒューズの設定とフラッシュ保護
MSP430マイコンには、セキュリティ機能としてフラッシュ保護機能が実装されている。
この機能を理解し、適切に使用することは、製品のセキュリティを確保する上で重要である。
フラッシュ保護の概念
フラッシュ保護は、マイコン内部のフラッシュROMに格納されているプログラムコードを、不正な読み出しや書き換えから保護するための機能である。
MSP430では、ヒューズビットと呼ばれる特別なビットを設定することで、フラッシュ保護を有効にすることができる。
フラッシュ保護が有効になると、JTAGインターフェースを使用してフラッシュROMの内容を読み出すことができなくなる。
これにより、競合他社や悪意のある第3者がプログラムコードを盗むことを防ぐことができる。
保護の種類
MSP430では、複数の保護レベルが提供されている。
情報メモリの保護は、特定のメモリ領域 (情報メモリ) を保護する機能である。
情報メモリには、通常、キャリブレーションデータや設定情報などが格納される。
主フラッシュROMの保護は、プログラムコードが格納されている主フラッシュROM領域を保護する機能である。
この保護を有効にすると、フラッシュROM全体が読み出し禁止となる。
保護の設定方法
フラッシュ保護は、開発環境のフューズビット設定機能を使用して設定する。
Code Composer Studioでは、デバッグ設定の中にヒューズビット設定のオプションがある。
保護を設定する際は、慎重に行う必要がある。
1度フラッシュ保護を有効にすると、フラッシュROMの内容を読み出すことができなくなるため、バックアップを取っていない場合、プログラムコードを失う可能性がある。
また、フラッシュ保護を解除するためには、フラッシュROM全体を消去する必要がある。
これにより、格納されていたプログラムコードは完全に失われる。
したがって、フラッシュ保護は、製品の最終出荷時にのみ有効にすることが推奨される。
開発やデバッグの段階では、フラッシュ保護を有効にしないことが重要である。
※注意
- Flash保護を有効にする前に、必ずプログラムコードのバックアップを取ること。
- Flash保護を有効にすると、デバッグが不可能になる。製品の出荷前に十分なテストを行うこと。
- Flash保護を解除するには、Flash ROM全体を消去する必要があり、プログラムコードは失われる。
ブートローダー (BSL)
JTAGピンは、MSP430およびCC430デバイスのメモリへのアクセスを提供する。
一部のデバイスでは、これらのピンがデバイスのポートピンと共有されており、この共有が設計を複雑にしたり、共有自体が不可能な場合がある。
BSLの概要
JTAGピンを使用する代わりに、多くのMSP430Fxxxデバイスには、より少ない信号線を使用してFlashメモリの消去とプログラミングを可能にするプログラム (ブートローダ、以前はbootstrap loaderとして知られている) が含まれている。
BSLの利点
BSLを使用することで、以下に示すメリットが得られる。
- 必要な信号線が少ない。(通常2本のピン)
- JTAGピンを他の目的に使用できる。
- 製品の最終基板でプログラミングが容易。
- フィールドでのファームウェア更新が可能。
設計上の推奨事項
Texas Instrumentsは、MSP430Fxxxを使用する開発者に対して、BSLを考慮した回路設計を推奨している。
具体的には、以下の信号へのアクセスを提供することが推奨される。(例 : ヘッダを使用)
- RST/NMIピン
- TESTピン
- BSL通信に必要な追加ピン (UARTピン等)
トラブルシューティング
ターゲットデバイスが認識されない
この問題は、MSP-FETとターゲットマイコン間の通信が確立できない場合に発生する。
まず、ターゲット基板に電源が供給されていることを確認する。
MSP-FETは、ターゲット基板の電源電圧を検出するため、電源が供給されていない場合、通信は確立できない。
テスターを使用して、VCCピンに正しい電圧 (1.8V~3.6V) が供給されているかを確認する。
次に、JTAGケーブルの接続を確認する。
ケーブルが正しく接続されているか、ピンの向きが正しいかを確認する。
ケーブルが緩んでいたり、接触不良がある場合、通信エラーが発生する可能性がある。
また、RSTピンとTESTピンの状態を確認する。
これらのピンが他の回路によって固定されている場合、JTAGモードに入ることができない可能性がある。
RSTピンには外部プルアップ抵抗が、TESTピンには外部プルダウン抵抗が接続されていることを確認する。
さらに、ターゲットマイコンのJTAGピンが他の目的で使用されていないかを確認する。
プログラムコードでこれらのピンをGPIOとして設定している場合、JTAG通信が妨げられる可能性がある。
この場合、Flash消去モードでマイコンに接続し、Flash ROMを消去してから再度プログラムをダウンロードする必要がある。
電源供給方法(VCC_TOOLとVCC_TARGET)の選択が正しいかも確認する。
両方に接続されている場合や、いずれにも接続されていない場合は、正しく動作しない。
プログラムのダウンロードに失敗する
プログラムのダウンロード中にエラーが発生する場合、いくつかの原因が考えられる。
まず、ターゲット基板の電源電圧が安定していることを確認する。
電源電圧が不安定な場合、書き込み処理中にエラーが発生する可能性がある。
オシロスコープを使用して、電源電圧の変動を確認することができる。
デカップリングコンデンサが適切に配置されているかも確認する。
次に、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をコンピュータから取り外さないように注意する必要がある。
※注意
- ハードウェアの問題が疑われる場合は、正常なプリント基板で動作を確認すること。
- 詳細な技術情報については、「MSP Debuggers User's Guide」および「MSP430 Flash Device Bootloader (BSL) User's Guide」を参照すること。