水瓶座列車

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

Raspberry Pi (ラズパイ)でロジックアナライザを使ってI2Cの波形を取得する方法

本ページは、プロモーションが含まれています。f:id:aquarius999:20201001170007j:plain

 

Raspberry Pi (以下ラズパイ)を使用する場合、組み込みの勉強をするならまず、

シリアル通信( I2C、UART、SPI )の波形を見たいと思う方もいると思います。

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

何とか低コストで波形を取得できないものかとネットで調べてみると、やっぱり世の中は広いです。

 

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

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

 

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

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

 

 

 

 

 

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

 

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

 

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

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

GPIO線がHiからLowに変わったタイミング、I2Cの通信が始まるタイミング( SDAがHiからLowになる )などを見ることができます。

 

組み込み系の仕事では、正常にデータを送受信できているか確認する時、バグ解析時などに、

ソフトウェアとハードウェアのどちらに問題があるかを見極めるために、

必ずと言って良いほどロジックアナライザを使用します。

 

 

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

 

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

とても手が出ません。

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

 

 

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

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

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

 

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

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

 

f:id:aquarius999:20190120005435p:plain


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

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

 

 

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

 

2項で波形を表示するソフトウェアのPulseViewが必要と言いましたが、

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

PulseViewは、波形を表示できる以外にもI2Cのデータを16進数に変換できますのでデータが見やすくなります。

 

 

3.1  PulseViewのダウンロード

 

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

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

 

 

3.2 PulseViewのインストール

 

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

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

インストール後、

・PulseView(debug)

・Pulseview

・Zadiag(PulseView)

が追加されます。

 

 

3.3 PulseViewの設定

 

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

まず、3.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波形の取得

 

Raspberry Pi 3B+ でI2CキャラクタLCD(1602) の動作確認」で、このロジックアナライザとPulseViewを使いました。

ちょっと暗いですが、下図は、I2CのSCL1とSDA1をロジックアナライザを接続しているところです。

f:id:aquarius999:20201001170040j:plain

 

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

f:id:aquarius999:20190120014953p:plain

 

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

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

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

 

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

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

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

他のロジックアナライザを使用する時も同様に、GNDを接続する必要があります。

 

 

5.まとめ

 

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

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

数万円もする機材でなくても、わずか数千円の機材で波形を見ることができますので、

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

 

 

<関連・おすすめ記事>

Linux勉強用の中古パソコンおすすめショップランキング - 水瓶座列車

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

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

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

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

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