水瓶座列車

どこまで行けるか、とりあえず発車します。

RaspberryPi 3B+でロジックアナライザを使ってI2Cの波形を取得する方法

f:id:aquarius999:20201001170007j:plain

 

RaspberryPi(以下ラズパイ)を使うならシリアル通信の波形を見たいと思うのは、

組み込み系なら当たり前なことなのです。

ただ仕事で使うようなロジアナやオシロスコープは新品で十万以上、中古でも数万円します。 

何とか安上がりで波形を取得できないものかとネットで調べてみると、

やっぱり世の中は広いです。ありました。

 

1000円ほどのロジックアナライザフリーソフトのPulseViewを使うことで、

パソコン上でシリアル通信の波形を見ることができます。

 

自宅で組み込みを勉強しようとしている方は、是非トライしてみてほしいので、

そのやり方をまとめたいと思います。

 

 

 

 

1.ロジックアナライザとは

 

ロジックアナライザは、ハードの通信線に流れているデータを見ることができるものです。

例えば、シリアル通信のデータ波形やGPIO線のHi/Lowの状態を見ることができます。

そして、ピンポイントで見たい波形を見るにはトリガを設定することでみることができます。

GPIO線がHiからLowに変わったタイミング、I2Cの通信が始まるタイミング(SDAがHiからLowになる)など

見ることができます。

組み込み系の仕事では、バグ解析時にソフトとハードを切り分けるために必ずと言ってよいほど使います。

 

2.KKHMF 24MHz 8チャンネル USBロジックアナライザ

 

冒頭でも言いましたように、仕事で使うようなロジックアナライザは値段が高いです。

とても手が出ません。

しかし、今から紹介するロジックアナライザは、1000円以下にもかかわらず波形が取得できます。 

 

これがあれば波形を取得できますが、波形を表示するソフトは付属していません。

なので、それを表示するソフトが必要になります。

それは、冒頭でも紹介しましたPulseViewというソフトなのですが、それは次項で説明します。

 

まずは、このロジアナをパソコンに認識させる必要があります。

ロジアナのUSBをパソコンに接続してデバイスマネージャーを確認します。

 

f:id:aquarius999:20190120005435p:plain


不明なデバイスとなっていることを確認します。

USBドライバのインストールは、次項で行いますので今はこのままの状態にしておきます。

 

 

3.PulseViewのダウンロードとインストール

 

2でアプリが必要と言いましたが、そのアプリがPulseViewといいます。

このアプリはフリーなので、無料でダウンロードできます。

PulseViewは、波形を表示できる以外にもI2Cのデータをヘキサに変換できるので見やすいです。

 

インストール手順は、以下の通りです。

 

3.1  PulseViewのダウンロード

 

 このソフトは、Windows - sigrokから使っているパソコンに対応するPulseViewをダウンロードします。

  英語ですが、Chromeで翻訳すれば問題ないと思います。

 

3.2 PulseViewのインストール

 

 ダウンロード後、exeファイルを実行しインストールします。

 内容は難しくないので割愛します。

 インストール後、

   PulseView(debug)

   Pulseview

   Zadiag(PulseView)

 が追加されます。

 

3.3 PulseViewの設定

 

 先ほど2で行わなかったロジアナのUSBドライバのインストールを行います。

 2で追加されたZadiagを起動します。

 

 f:id:aquarius999:20190120013408p:plain

 

 ➀ USBドライバをインストールするデバイスでunknown Deviceになっていることを確認します。

 ② インストールするUSBドライバを選択します。自動的にWinUSBになっているはずです。

 ③ USBドライバをインストールする場所のIDです。➀の名前だけでなく、

  デバイスマネージャで確認した不明なデバイスのUSB IDが、

  このIDと合っているかプロパティで念のため確認します。 

  f:id:aquarius999:20190120014338p:plain

 

 ④ 確認出来たらInstall Driverボタンを押します。完了後、再度デバイスマネージャを確認すると、

  「ほかのデバイスの不明なデバイス」から「ユニバーサル シリアル バスバイスのfx2lafw」

  になっていることを確認します。

  f:id:aquarius999:20190120020041p:plain

 

これで、USBドライバのインストールは完了です。  

 

 

 

4.I2C波形の取得

 

前回の記事のI2CキャラクLCDの動作確認で、このロジアナとPulseViewを使いました。

ちょっと暗いですが、I2CのSCL1とSDA1をロジアナで見ているところです。

f:id:aquarius999:20201001170040j:plain

 

その時に取得した波形は、こんな感じです。

f:id:aquarius999:20190120014953p:plain

 

D5が、I2Cのデータ線(SDA1)、D7がI2Cのクロック線(SCL1)です。

そして一番下にあるI2Cのラインは、設定をすることでデータをヘキサ表示にすることができます。

設定は、画像の右上にあるスポイトのようなマークをクリックして、使用しているI2Cラインを設定します。

ロジックアナライザを接続する際の注意点として、

ロジックアナライザのGNDに、ラズパイのGNDピンと接続して置くことです。

これをしておかないと、波形取得時に波形が乱れて正確に取得できません。

他のロジックアナライザを使用する時も同様です。

 

5.最後に

 

I2Cの波形をこんなに簡単に安い機材で自宅で見ることができたときは感動でした。

ラズパイにセンサーを接続して勉強するならロジックアナライザは、必須です。

数万円もする機材でなくても、わずか1000円ほどで波形が見れるので、

是非トライしてみてください。

 

 

<関連・おすすめ記事>

Raspberry Pi 3B+ でI2CキャラクタLCD(1602) の動作確認 - 水瓶座列車

Raspberry Pi (ラズパイ)で役に立つ書籍のおすすめランキングベスト5 - 水瓶座列車

RaspberryPi (ラズパイ)で使用できるカメラのおすすめランキングベスト5 - 水瓶座列車

Raspberry Pi 3B+ のGPIOピン割り当ての解説 - 水瓶座列車

RaspberryPi 4Bと3B+のスペック比較解説 - 水瓶座列車