システム全体の動作を観察できる強力なデバッグツール

マイクロプロセッサの出力については、JTAG-ICEなどのエミュレータを利用しても見ることができる。これとオシロスコープを組み合わせてデバッグを行う場合では、どのように違うのだろうか。

「システム全体の動作についてのデバッグは、JTAG-ICEではできません。実際にあった例ですが、図(図1)のようなSPI、I2C、パラレルバスが混在するシステム上で、ステータスLEDがエラーを示し、不定期に点灯するという問題がありました。MSOを使用して図中の①~④の信号ポイントを同時にプロービングし、LEDの点灯するタイミングでトリガをかけ波形を観察しました。その結果、マイクロプロセッサからLCD制御のためのI2Cデータが転送された直後のSPIバスの動作がおかしいことが分かりました。I2Cデータの値をデコードして調べた結果、間違えたアドレスにデータを書き込んでいることが分かったのです。マイクロプロセッサ側のコーディングミスで、LCD制御用のデータをFPGA側に書き込んでいたのです。またこれと同時にMUXの入力をアナログチャネルを使用してプロービングすることにより、入力信号品質に問題がないことも確認しています。MSOを使用することにより、システム全体の動作を観察し、問題の発見を短時間で行うことができます。」(稲垣氏)

図1 システム例

稲垣氏は続けてアナログ/デジタル双方の波形の時間相関が見られるMSOのメリットについて、例を示しながら説明を行った(動画2)。

この例は、信号線に混入するノイズの影響により、システムが誤動作していたという例である。回路中のバスにおいて意図しないグリッチが出力にあることに気が付いた。そこで入力信号のアナログ波形を測定したが、出力で測定されたようなグリッチを起こさせる信号は入力されていなかった。出力信号が何かに影響されていることを予測し、プリント基板の出力信号線を観察したところ、近くにビアがあることが分かった。

そこでビアをアナログプローブでプロービングし、シリアル出力との時間相関を見たところ、グリッチと同じタイミングでアナログ波形にノイズが混入していることが分かった。隣り合う信号線は絶縁体である基板を挟んでコンデンサを形成し、影響を与えることがある。このビアが出力信号に影響を与えていたのだ。動画2は、ビアをアナログプローブでプロービングした結果を説明している。

動画2(WMV形式)