「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
私は年末で入社して3年になる中途社員です。ソフテックに入社してからは主に組み込みシステムを担当してきました。ソフテックに入社するまでは、ソフトについては経験がありましたが、ハードについては他に専門部隊がいたこともあり、あまり触れることがありませんでした。
組み込み開発においてはソフトウェアのデバッグはもちろんですが、ハードウェアの確認も非常に大事になります。
開発中に意図しない動作が発生した際、原因がハードウェアなのかソフトウェアなのか判断が難しいケースもあります。その時にハードウェアの確認がしっかりとできていれば、ソフトウェアの調査に注力することができますが、ハードウェアの確認が不十分だとどちらも調査しないといけなくなり、時間がかかってしまいます。
自分もハードウェアの確認が不十分な状態で進めてしまって、後で問題が発生した際に実はハードウェアに問題があったため、ハードウェアの修正が必要となり大きな手戻りとなってしまった経験もあります。
また、オシロスコープで波形確認したことで、UART通信速度設定がわずかにずれていることに気づくことができたこともありました。わずかだったので、実際に通信させると通信できているのですが、ある程度開発が進んだ時などに急に通信できなくなったりすると、原因解析に時間を取られてしまう可能性が高いです。
ハードチェックの段階で気づくことができたおかげで、修正箇所も即座に限定できたため、さほど時間をかげずに修正することができました。
ハードウェアの確認でよく使われるのがオシロスコープになります。ソフテックの本社ではKeysight社のMSOX3024が使われています。
今回はMSOX3024にある機能について少しですが紹介します。
MSOX 3024Aはゾーンタッチトリガ機能を備えた8.5 インチ静電容量方式タッチユーザーインターフェイスを備えています。また、ロジックアナライザ、関数発生器、プロトコルアナライザなどの機能としても使用できます。主なスペックは以下表の通りです。
表2-1. MSOX3024Aスペック表
項目 | スペック |
---|---|
チャネル数(アナログ) | 4 |
チャネル数(デジタル) | 16 |
帯域幅 | 200MHz |
サンプリングレート | 4 GS/s |
波形更新レート | 1,000,000wfms/s |
オシロスコープを使う場合はエッジでトリガをかけることになります。1つの波形に対して最初のエッジでトリガをかける場合であれば、基本的なエッジ検出操作で問題ありませんが、
・条件が複数存在し、どれかを満たした場合でトリガをかけたい
・最初ではなくN番目のエッジでトリガをかけたい
などの場合はエッジ検出が難しい場合もあります。MSOX3024Aでは様々なトリガのかけ方があるので、一部ですが紹介します。
「エッジの次にエッジ・トリガ」とはアーミング・エッジの検知からN番目に発生したエッジでトリガすることができます。また、遅延時間を設定することもでき、アーミング・エッジ検知からトリガ検知開始の時間を遅延させることも可能です。
設定する内容は以下通りです。
アームA:アーミング・エッジが発生するチャネルを設定
スロープA:アーミング・エッジが立ち上がり/立下りのいずれかを設定
トリガB:トリガとなるエッジが発生するチャネルを設定
スロープB:トリガとなるエッジが立ち上がり/立下りのいずれかを設定
遅延:アーミング・エッジ検出からトリガエッジ検知開始までの遅延時間を設定
第NエッジB:トリガとなるエッジ番号を設定
図3.1. エッジの次にエッジトリガ イメージ図
「またはトリガ」は文字の通り「または」 = 「or」となり、1〜複数のトリガエッジを指定して、指定したトリガエッジのどれかを検知することができます。
設定する内容は以下通りです。
チャネル:トリガとなるエッジが発生するチャネルを設定
スロープ:トリガとなるエッジの立ち上がり/立下り/どちらも/任意のいずれかを設定
図3.2. またはエッジ イメージ図
「立ち上がり/立下り時間トリガ」は指定した時間よりの長い、もしくは短い時間のトリガエッジを検知することができます。
設定する内容は以下通りです。
ソース:トリガとなるエッジが発生するチャネルを設定
スロープ:トリガとなるエッジの立ち上がり/立下りのいずれかを設定
Qualifier:設定した時間より長い、短いのどちらかを設定
Time:判定の基準となる時間を設定
図3.3. 立ち上がり/立下り時間トリガ イメージ図
「第N エッジ・バースト・トリガ」は、アイドル時間後に発生したN 番目のエッジでトリガすることができます。
ソース:トリガとなるエッジが発生するチャネルを設定
スロープ:トリガとなるエッジの立ち上がり/立下り/どちらも/任意のいずれかを設定
アイドル:アイドル時間を設定
エッジ:トリガとなるエッジ番号を設定
図3.4. 第Nエッジ・バースト・トリガ イメージ図
2つの閾値を設定し、片方の閾値だけを超えるエッジを検出することができます。また、追加で、検出するパルス幅について指定時間より大きい/小さいを設定することもできます。
設定する内容は以下通りです。
ソース:トリガとなるエッジが発生するチャネルを設定
Either Runt Pulse:トリガとなるエッジのパルスタイプ(正負)を設定
High:高い方の閾値を設定
Low:低い方の閾値を設定
Qualifier:設定した時間より長い、短いのどちらかを設定
Time:判定の基準となる時間を設定
図3.5. ラント・トリガ イメージ図
いかがでしたでしょうか。今回紹介した機能はいつでもどこでも使うものではありませんが、知っていればいざという時に役立つかもしれません。
こちらの紹介が問題解決などの参考に少しでも役立つことができれば幸いです。
(T.M.)
関連ページへのリンク
関連するソフテックだより