汎用ポート接続で16進数などの異常データが表示される、もしくはデータが取得できない

DT+Traceで汎用ポートを使用した接続時に、以下のようにテストレポート上に16進数が表示されたり、ターゲット機器が実行されているにも関わらずレポートデータが全く取得されない場合があります。
GPIO_IlligalData_Example

発生頻度が低い場合は上の図のように目視ですぐ判別できませんので、FAQの「正常なテストレポートが取得されているかを確認する方法」を参照し、レポートデータが正常に取得できているかご確認ください。(特に汎用ポートを使用した接続で初めてデータを取得する際は必ず行うことを推奨します。)

1. 考えられる要因


DBOX+Traceで検知した、ターゲット機器からの出力波形が正常でないためこのような事象が発生します。代表的な要因を以下に列挙します。後述する波形の計測によって要因の絞り込みが可能ですが、「A. 接続が正しく行われていない」に記載されている項目は事前に確認することをお勧めします。

A. 接続が正しく行われていない

1. ターゲット機器の該当ポートと8pinプローブが正しく接続されていない
  • 該当ポートが8pinプローブのクリップでしっかりと接続されていない
  • GNDが接続されていない
  • CS/CLKなどターゲット機器側でのポートの割り当てと、8pinプローブの番号が一致していない
    • なお、それぞれの接続では以下のように8pinプローブの番号が割り振られています。
      表の中の(*)は変数値書き換え機能使用時のみ接続します。
プローブNo.GPIO4BitGPIO2BitSPII2C
1GNDGNDGNDGND
2CLKCLKCLKSCL
3CSCSCS未使用
4(*)(*)(*)未使用
5DAT0DAT0DAT0SDA
6DAT1DAT1未使用未使用
7DAT2未使用未使用未使用
8DAT3未使用未使用未使用

2. DBOX+Traceと8pinプローブが正しく接続されていない
  • 以下の図のように、8pinプローブの白い●印が上向き(「DBOX+Trace」のロゴと同じ面)になる状態が正しい接続です。
  • 8pinプローブが奥までしっかりと挿されていることも併せて確認してください。
    GPIO_IlligalData_Connection

B. ソフトウェアの要因

1. ドライバでの出力処理
  • 以下の関数での処理が正しくない
    • portReverseCLK (GPIO4Bit/GPIO2Bit接続)
    • portSetCLK (SPI/I2C接続)
    • portSetCS (GPIO4Bit/GPIO2Bit/SPI接続)
    • portSetDATA
    チュートリアル「汎用ポート接続(GPIO4Bit/GPIO2Bit/SPI/I2C)の導入手順」を参考に、ドライバの処理を確認してください。また、実際にプローブが接続されているポートと、ドライバ内の出力処理でアクセスしているポートが一致していない場合もありますので、併せてご確認ください。

  • 出力処理中に、ターゲット機器の割り込み処理内のテストポイントが実行された
2. DT+Traceで使用するポートが、ターゲット機器内の別の処理によって使用されている
  • 他の処理で使用されているポートは使用できません。ほかのポートをお選びいただくか、別の処理で使用しないよう変更してください。  

C. ハードウェアの要因(波形のなまりやノイズによる影響)

1. Hi=5Vのターゲット機器で、DT+Traceで使用するピンが隣り合っている
  • 以下のように、ターゲット機器と8pinプローブの間に100Ω程度のダンピング抵抗をはさむようにしてください。なお、ダンピング抵抗はターゲット基板(CPU)により近い場所に配置した方が効果的です。
GPIO_IlligalData_DumpingRegistance

2. 大電流が流れるターゲット機器で、ターゲット側のGNDとDBOX+Trace側のGNDに電位差が生じる
  • 弊社で提供している「GPIO Noise Isolator」を使用してください。
  • なお「GPIO Noise Isolator」の使用/未使用と、DT+Traceの「GPIO接続設定」が一致していない場合はデータが取得できません。
3. ターゲット機器の該当ポートから引き出した信号線が長すぎる
  • 信号線が長い場合、浮遊容量によって波形品質が劣化する可能性がございます。
GPIO_IlligalData_SignalLine

2. 波形の計測方法

1. 事前準備

ターゲット機器と8pinプローブ、DBOX+Traceが正しく接続されていることを確認したうえで、以下のコードをご使用のドライバに追加します。
  • ドライバの“_TP_BusOutDrv”関数より下の行の記載してください。
void DtPortTest()
{
	portInit();
  
	_TP_BusOutDrv( 0x10, 0xFF );
	_TP_BusOutDrv( 0x20, 0xFF );
	_TP_BusOutDrv( 0x40, 0xFF );
	_TP_BusOutDrv( 0x80, 0xFF );
	_TP_BusOutDrv( 0xF0, 0x01 );
	_TP_BusOutDrv( 0xF0, 0x02 );
	_TP_BusOutDrv( 0xF0, 0x04 );
	_TP_BusOutDrv( 0xF0, 0x08 );
}
ドライバに上記の処理を追加したら機器実行時に必ず通過するターゲットのソースコード内に、“DtPortTest()”の呼び出し処理を追加してください。

2. データ(波形)の取得

以下のように「トレースチェックモードで実行する」にチェックをつけた状態で、データを取得
  • 「トレースチェックモード」を使用すると、プローブの各ラインの出力波形をDT+Traceで計測することが可能です。
GPIO_IlligalData_TraceCheckMode

ひととおりデータの取得が完了したら、データの取得を停止します。

3. データ(波形)の確認

1. 計測した波形をロジックウェーブスコープから確認
  • 以下の例のように、CS, CLK, DATラインがそれぞれHi/Loしていることを確認してください。
    GPIO_IlligalData_TraceCheckMode_LWS

  • テストレポートの該当行をダブルクリックすることで、ロジックウェーブスコープの該当タイミングにジャンプします。
    GPIO_IlligalData_DtPortTest

     
2. 出力波形が各接続のタイミングチャート通りになっているかを確認
  • タイミングチャートはハードウェアマニュアルに記載されています。必要に応じて参照ください。
  • GPIO4Bit, GPIO2Bit, SPI接続では以下のようになります。
GPIO_IlligalData_TimigChart

上記の方法は出力波形をロジックデータとして取り扱っているため、波形のなまりなどは表現されません。必要に応じて、オシロスコープを使用して波形の確認してください。なお、その際はCSラインの立下り箇所をトリガーとして検出できるようにすることで、波形の確認がしやすくなります。

3. お困りの際はお問い合わせください


上記の「波形の計測方法」を実施していただき、弊社サポート(user@hldc.co.jp)までお問い合わせください。 お問い合わせの際には、以下のファイルを添付してください。
  • DT+Traceプロジェクトファイル(*.dtxprjファイル)
  • ご使用のドライバファイル
  • 「波形の計測方法」で取得したデータ(AS00000000.DAT)
    • DT+Traceのプロジェクトが保存されているフォルダの「Prof_yyMMdd_hhmmss」フォルダ⇒「Repo_yyMMdd_hhmmss」フォルダ内に存在します。
  • オシロスコープで波形計測した場合は、波形のキャプチャ画像
なお上記のファイルのみであれば、ターゲット機器のコードの内容などはこちらから確認できないようになっておりますので、お気軽にお問い合わせくださいませ。

->テストレポートを取得する

▲トップページへ戻る