(1年前に書いていて投稿を忘れていたので放流)
ゼロ年代後半 個人的にオシロも持っておらず、プロトコルアナライザもデバッガの概念もなかったころ、デバッグ中の基板にはAMモードにした広帯域受信機(DJ-X11)を近づけて動作検証していた。
一昔前の5V動作の16bitマイコンはクロックの放射ノイズも大きく(周波数拡散クロックなんて無かった)、ループ処理の過程でピーとかザーとか激しく主張していた。UARTもRS232レベルシフタを通していたので、文字送信があるたびに チ、チ、チ、 とリズムを奏でていた。書き込まれたプログラムが止まってしまうとそうした喧噪も止まり、ユニバーサル基板の切れ端とUEW線とリード抵抗の足の切れ端だらけの机はホワイトノイズに包まれた。
機器間通信が増え、処理性能とソフトウェア規模が肥大化し、無料版の純正ツールやフレームワークに落とし穴があることが前提な昨今、ハードウェアの挙動をリアルタイムで把握することは問題の早期解決に役立つ。
4年前に https://www.saleae.com/ja/ のロジックアナライザ を導入して使っているが、早くから導入していればと思ったデバイスの一つ。現在はソフトウェアがLogic 2.xになり大幅に更新されている。昨今の半導体不足の流れで一度仕様変更があり、いつの間にか市販価格が倍近いお値段になっている…。
収録動作
理論上USB3.0帯域をフルで使う信号キャプチャ機器なので、レコード長はPCのメモリ容量に依存する。なのでRAM容量が許すかぎり設定したサンプルレートで連続したキャプチャを続けることができる。 ロジックの場合変化が無い区間はデータは増加しない。
負荷テストということでわざとアナログ多チャンネルの高速キャプチャを行ってみると、数秒でGB単位の信号がRAMに保存される。
開発PCのメインメモリを64GBにしたので、限界まで収録できるか実験してみたが、クラッシュせずちゃんと記録できた。
サンプルレートの最高値はUSB3.0の帯域を上限に、同時に取得するch数で割ることになる
。
パラレルバスや多数の信号を同時にデバッグするなら、値段を気にせずLogic Pro16を買っておくのが良さそう。
とはいえ、シリアルバスのモニターであれば、プロトコルトリガーをかけることができる。観測対象が明確なら膨大なメモリは必須ではなく、一般的なロジアナと似たような使い方になる。
本家でも解説されているけど、例えばUARTの出力は全部ログに残るので、デバッグモニター用のUARTラインを繋いでおけば特定メッセージの検索などができて便利。モニターchとして徒にUSBSerialを多数繋げる必要はない。
最初からプロトコル対応数も豊富で、最近のバージョンは拡張機能としてデコーダーを書くことができ、様々なプロトコルや計測法を選べる。
RF系の仕事も増えてきたので、出力確認のための簡易パワーメーターを作ろうと考えた。
時折USB絡みで動作停止することがある。動作の安定性はUSB3.0の帯域に依存するため、ハブ構成、他のポートでの抜き差しや、合計のケーブル長などには注意が必要。USB3.0接続で安定しない環境では、あえてmicroB端子のケーブルでつなぎ、USB2.0接続で動かすということができる。
アナログ観測
Proモデルは最大50Mspsでアナログ電圧測定(-10~10Vまで)が可能になっている。
ロジックを観測している端子で同時にアナログ電圧も取り込むことができる。デジタルバスで時たま通信不良が…といったシナリオや、そもそもロジック電圧として見えるかといったところを検証可能。
短期間の事象であれば、最高分解能で数分取り込み続け、あとから眺めるみたいな時系列の検証に便利だ。ただアナログchではトリガーができないので、あくまで収録後の解析手段となる。50Mspsだと1chで100MB/1秒のレートでRAMを消費する。
オシロ並みのサンプルレートを持ったデータロガーみたいな存在として使うことになる。とはいえ50Mspsなのでオシロの完全な代替とはならない。
逆にものすごく低レートにすることで長時間ロギングが可能。Ver1のソフトウェアでは10bpsが選べた。V2も2.3.7から50bpsの低速サンプリングが可能になった。数十mVステップで数秒~数時間単位の電圧変化を見るだけなら、本格的な長時間向けデータロガーが無くても代用できそう。 非安定な電圧で動作する回路の挙動確認に便利かもしれない。
波形の操作も軽快で、数十GB単位の膨大なキャプチャデータであっても、スムーズにズームとスクロール、タグ付けを行えるようになっている。 時系列で稀に起こるランダム事象の発見では強力なツールだ。Saleaeで流してグリッジの存在を探索し、特定してデジタルオシロを引っ張りだすのが効率的かもしれない。
RFパワーメータの出力を観測してみる
AD8318は1~8000MHzの範囲のRFパワーをダイレクトに検出できる対数アンプで、RSSI計測や方向性結合器を介した送信機の出力計測などに使われる。RF系の仕事も増えてきたので、出力確認のための簡易パワーメーターを作ろうと考えた。
マイコンなどで換算する例が多いけど、電圧値を取得して換算すれば出力値を得ることができる。
電源を供給して、信号源の代わりに直接アンテナを繋いでオシロで観測していたとき、スマートフォンの電波などを拾って反応していることに気づいた。
わざと入力にダミーロードを付けて、近傍電波しか拾えないようにした。卓上のiPhone以外の信号は捉えにくくなったはずなので、その電波発信をモニターしてみる。
細かいピークは定期的にあるが、たまに高出力のピークが出ているのがわかる。
強いピークだけを拡大した所 |
応答時間が10nSということで、パルス状の携帯電波等も細かくとらえることができる。適切なフィルタ回路とLNAを通せば、CWレーダーも作れそう。
(結局 、8GHzまで測れるRFパワープローブを買ってしまったので試みだけで終わった)