現在、フルスクラッチでJTAGをしゃべるプログラムを開発しています。 このプログラムのデバッグ用にJTAG信号を解析できるロジックアナライザを探したところ、うまく使えるものが見つかったので、備忘録として残しておきます。
sigrok
JTAG信号を解析できる信号解析アプリケーションとして、sigrokというオープンソースソフトウェアがあります。 今回はこれを使ってJTAG信号を解析しようと思います。
sigrokの持っているデコーダ一覧は以下参照です。
sigrok対応デバイスを買う
sigrokを使うには対応ハードウェアが必要なので、探します。 sigrokがサポートするハードウェア一覧は以下です。
sigrokをM1 Mac(Big Sur)で動かす
Mac OSX用のsigrokは以下からダウンロードできますが、私の環境ではエラーが出て起動すらしませんでした。
そのため、ちゃんと起動するsigrokをビルドするhomebrewスクリプトを作成しました。
一部HEAD指定必須なので、以下のコマンドを実行してインストールしてください。 (WIPなので修正したほうが良い点があればPRお願いします!)
brew tap tnishinaga/sigrok brew install libsigrok sigrok-firmware-fx2lafw brew install --HEAD libsigrokdecode brew install sigrok-cli brew install --HEAD pulseview
sigrokを使ってみる
デバイスをPCに接続し、terminalからpulseviewを実行してGUIアプリを起動します。
起動したら画面上のデバイス選択部分をクリックし、fx2lawドライバを選択してデバイススキャンを行い、出てきたデバイスを選択します。
次に画面上からデコーダー選択ボタンを押し、JTAGを選択したあと、ピンの割当を行います。
あとは画面左上のRunボタンを押してJTAGの信号を流すだけです。 うまく信号を捕まえられれば、JTAGのステートを確認したり、送受信したデータのhexがみられて開発効率が向上すること間違いなしです。
2024.04.10追記: Cloneデバイスの利用を進めることに疑問を持ったので一部記述を削除しました。