気持ちでプローブをつなぎ、気持ちでUARTのデコードまで試してみました。気持ちの結果(うまく動作していない)サンプリングレートとサンプル数の設定をいくつか変更してみたところ、いずれもきちんと動作していそうでした(RLE付きの圧縮保存系は未確認)。動作していますが、ここでのデコード結果はデタラメです。バイナリエディタで書き込み対象のArduinoスケッチを開いてバイト列の一致を探したところ、一切見つかりませんでした。rate)が合っていないのではないかと考えました。rateを割と好きに変更できます。IDEの書き込みログを詳細表示へ切り替えて確認したところ、案の定57600指定になっていました。57600そういうわけで1MHz-16Mサンプル取得を指定してデコーダのオプションを次のように設定しました。formatをasciiからhexへ変更しただけで他はデフォルト値のままです。デコード設定の変更はダイアログを閉じるとすぐに反映されるので、データの再取得は必要ありません。rate指定に対して取得済みデータのレートが低すぎる場合には警告が表示されます。57600では200kHzまで怒られて500kHzから通りました。Modeを利用しました。さきのレート計算によると115,200bpsの通信も500kHzで収まるので、よくあるシリアル通信であれば64Mサンプルめいっぱい使って131秒間キャプチャできる計算です。Modeでは(16ch時10MHz、8ch時25MHzの制約はあるものの)データ量制限がある程度緩和されます。ディスク容量の限りキャプチャできるかというとそういうわけではなく、DSView側の制限で512Mサンプルまでしか指定できません。512Mサンプル取得を指定してキャプチャを実行するとメモリ確保エラーが発生します。32bitアプリ・・・。このあたりは必要と思う人がいじって拡張すればよいという感じでしょうか。rateを指定してデコードしたところ図11のとおり、キャプチャした信号をデコードした結果と書き込み対象ファームウェアのバイナリの一部が一致することを確認できました。rateをなんとか調べて合わせるのが重要という教訓を得ました。I2Cのように常時クロック信号が出ているものなら高レートでクロック信号をキャプチャするだけで実レートの推測が可能なはずですが、UARTだと微妙に面倒ですね。bitrateというデコーダがDSView内にあるのを見つけたので、今度使ってみます)。bitを見つけた時点で信号サイクルの逆数から通信レートを察するのが基礎技能なんでしょうか。その後にDTR信号線の立ち上がり/立ち下がりにトリガーを仕込んでのデータキャプチャも試してみました。IDEの場合、画面上の書き込みボタンを叩くと再度コンパイルから走るためキャプチャタイミングを図りづらいのですが、トリガーがあると無駄に巨大データをキャプチャせずに済みますね。DSViewのUI上で信号線にトリガーオプションを付けるだけで、期待通り必要な部分のサンプリングをおこなえました。今後DSView(というか元のPulseView+プラグイン群)ではSPI通信のデコーダ(図12)など、プロトコル解析機能が割と充実しているので開発の中で順次試していこうと思っています。Proを購入し、使ってみました。製品は2週間ほどで届き、未署名ドライバの壁はあるもののトリガー込みできちんと動作しました。Miniに対するUSBシリアル書き込み(UART)をデコードしてみました。rateをなんとか調べて合わせるのが重要です。想定通りに動作したので満足しました。これから使っていけそうです。基板上の信号が見えない昨年末に同人ハードウェア製作をしていたのですが、自前設計の基板に正しく信号が流れているのか確認するのに苦労することが何度かありました。これまでは安いテスター1本でやってきたのですが、さすがに限界かなということでオシロスコープ(オシロ)やロジック・アナライザ(ロジアナ)の導入を検討しました。オシロを買うかロジアナを買うか信号がきっちり出ていることを確認したいという意味では、オシロの範疇に思えます。回路や基板の設計をやっていると、たとえばI2Cでのプルアップ抵抗値と信号波形の関係を把握しつつ試行錯誤するケースがあります。そのような場合にロジアナではどうにもなりません(ロジアナのA/D変換部分で4-8bit程度の出力をするMSO風オプションがあっても良い気はしますが)。私が扱うのは基本的にデジタル信号です。迷ったら両方買えという格言がありますが、このあたりの高額機材をポンポン買っていては身が持ちません。扱っている信号種別はSPIやI2Cのようにスタンダードなものが多く、それらをいかにサクッと検証できるかを重視すべきと考えました。いうことで今回はロジアナを買うことにしました。格好良くいえばデジタル側に軸足を置くみたいな話ですが、アナログ側で本格的に詰まったら結局半泣きで秋月へ駆け込んでオシロも買うと思います。安価で機能の充実したロジアナ探し1万円~2万円あたりの(製品ドメインとしては)手頃なロジアナを求める人は昔から居て、一定は先人のレールがあるようでした。検討の過程で上がってきたものをいくつか書き残しておきます。AliExpressもざっと見てみましたが、ライセンス的に危うそうなSaleae製品のコピー商品が多いと感じたのでやめました。LAP−C(16064)は割と良さそうでした。2万円は予算オーバーですが、調べた限りハード・ソフト共に評判が結構良い製品です。発売から6年経っていることから、もう少し新しいアーキテクチャで確保可能なデータ量も多い製品があるのではないかと考えました。1万円ロジアナ自作キット一部界隈で有名なカメレオンUSBの方のロジックアナライザキットもあります(ました)。この方面の手組みはしたくないなと思って見送りました。オープンソースの信号分析ソフトここで少々目をソフトに転じました。信号をキャプチャするハードを安価に揃えられても、信号を解釈してデータダンプするにはソフトが必須です。いくらか探してみて見つかったのがSigrokというオシロとロジアナの両方の機能を持つオープンソースの信号分析ソフト(というか信号分析基盤)です。幅広いロジアナをサポートし、それなりに幅広い信号種をサポートするという素晴らしさです。hardwareでいくつかの製品が紹介されています。Shrimpが割とツボでした(実用性はさておき)。AndroidとがっちゃんこしたOsciPrimeも面白そうでしたがオシロはひとまず買わないことにしたのと、値が張るので回避しました。この界隈ではFPGAをベースとするロジアナの老舗SUMP.ORGがあり、これに基づいたボードが数種類存在するようでした。