yoshiyuki's blog

Arduino/Teensy/Raspberry pi pico を利用した I2C, SPI 通信アプリを紹介します

Logic Data Logger の使用例

この記事では自作アプリの使い方を説明しています。自作アプリに関しては以下の記事をご参照ください。
ysin1128.hatenablog.com

はじめに

ACTRL の Logic Data Logger 機能は Teensy 4.0 または Raspberry Pi Pico との組み合わせで使用可能です。
この機能は Android 版アプリでは使用できません。Windows 版アプリをご使用ください。

接続

Logic 波形を取得したい端子を Teensy の 20, 21, 22, 23 のいずれかに接続してください。Raspberry Pi Pico の場合は GP8, GP9, GP10, GP11 のいずれかに接続してください。また、GND も必ず接続してください。

ここでの動作例では Teensy 4.0 を使って自分自身の I2C 波形を取得してみます。18 (SDA) を 20, 19 (SCL) を 21 に接続します。自分自身との接続なので GND の接続は不要です。

動作例のための準備 (通常は不要です)

動作例において SCL/SDA の Pull-up を外付けするのが面倒なので、SCL/SDA の内蔵Pull-up を有効にする隠しコマンドを使用します。下図のように「Command Input」に「cfg 02 01」と記入して 「Start」 をクリックすると SCL/SDA の内蔵 Pull-up が有効になります。このコマンドは Raspberry Pi Pico でも有効です。

波形取得例

1. 「Logger」タブの「Start Logger」をクリックすると Logger window が開きます。(「Start Logger」ボタンは Teensy 4.0, Raspberry Pi Pico と接続した場合のみ有効になります)

2. Logger window の「Start Logging」をクリックすると波形取得が開始されます (ボタンの表記が「Stop Logging and Show result」に変わります)。以降、Teensy は 20, 21, 22, 23 のいずれかに接続された信号で発生する High/Low 間遷移を記録します。ここではまだ取得した波形は表示されません。

3. 動作例として、20, 21 に接続した SDA/SCL を駆動してその波形を取得させます。SDA/SCL を駆動させるために ACTRL の Main window の「CMD_Multi」タブの「Command Input」に「w 24 00 01」と記入して「Start」をクリックすると、Slave device が接続されていないので NACK が検出されます。この間、Teensy は 20, 21 で SDA/SCL の駆動波形を取得、記録しています。ここでもまだ波形は表示されません。

4. Logger window に戻って「Stop Logging and Show result」をクリックすると取得した SDA/SCL の波形が表示されます。

波形の表示範囲

波形の表示範囲は以下のいずれかの方法で調節できます。

1. 「Start time」「End time」のテキストボックスに表示したい範囲を記入して「Ser Scale」をクリックする。
2. 「Fit Scale」をクリックする。(波形全体が表示されます)
3. 波形に対して右ドラッグで範囲を指定する。(指定した範囲が赤線のガイドで示されます)

I2C 波形解析

取得した波形が I2C の場合、その内容を解析することができます。

1. 「SDA」「SCL」のプルダウンで、L0/1/2/3 の波形のうちのどれが SDA/SCL かを選択します。この例では L1 が SCL、L0 が SDA です。
2. 「Exec Analysis」ボタンをクリックすると解析結果がテキストボックスに表示されます。

この例の解析結果は 時刻 0 で Start condition が検出され、続いて Slave address = 0x24 に対して Write Command を送ったが (24(W))、それに対して ACK が返らず (N)、Stop Condition で通信が終了したことを示しています。

複数の通信が連続して行われた場合も解析可能です。

Raspberry Pi Pico で使用する場合の注意

Raspberry Pi Pico は SCL = 100 kHz のような低速でも波形を取りこぼすことがあります。