フェーズ3

E3-00 I2C配線の“詰まりどころ”を先に潰す(電圧 / GND / SDA / SCL / AD0)

シリーズ:実験シリーズ(フェーズ3)
対応ロードマップ:フェーズ3 / E3-00
この記事で扱う範囲:I2Cセンサ実験に入る前に、QCIOT-ICM42688P を評価ボードへ正しく接続し、今回使う I2C アドレスを確定するところまでを扱う。

1. 目的

今回は、IMU を読み始める前に、I2C配線で最初に詰まりやすいポイントを先に整理します。
I2Cセンサ実験では、コードより前に

  • 電源電圧
  • GND共通
  • SDA / SCL の配線
  • I2Cアドレス

でつまずくことが多いです。

そこで今回は、まず

  • 評価ボードと IMU ボードの接続方法を確認する
  • 評価ボード側を I2C 用に切り替える
  • AD0 の状態を確認する
  • その結果、今回使う I2C アドレスを確定する

ところまでをゴールにします。

今回の段階では、まだレジスタは読みません。
まずは 「この接続方法、このアドレスで進める」 というところまでできれば十分です。

2. 前提・環境

2-1. 前提

この記事は、次の内容が終わっている前提で進めます。

  • フェーズ0:ビルド / 書き込み / main到達 / UARTログ出力
  • E1-05:ボタン入力でLED(ポーリング)
  • E2-02:1msごとの時刻を作る
  • E2-03:周期処理
  • E2-05:状態で整理(IDLE / RUN / ERROR)

2-2. 使用するもの

  • 評価ボード:RTK7EKA8M2S00001BE
  • e² studio + FSP
  • Tera Term
  • IMUモジュール:QCIOT-ICM42688P(PMOD BOARD ICM-42688-P)

2-3. 今回使うIMUについて

今回使う QCIOT-ICM42688P は、ICM-42688-P を載せた Pmod 評価ボードです。
ボードとしては Pmod Type 6A の I2C、または Type 2A の SPI に対応していますが、今回はI2Cで進めます。

ICM-42688-P の I2C アドレス候補は 0x68 または 0x69 です。
QCIOT-ICM42688P では、J4(AD0)の状態によってアドレスが決まります。
今回は J4 にジャンパキャップが付いている状態で使うため、AD0 は Low 側となり、I2C アドレスは 0x68 になります。

QCIOT ICM42688P AD0 LOW

2-4. 今回の接続方法

今回は、QCIOT-ICM42688P の J1(MCU Board側コネクタ) を、
評価ボードの Pmod1(J26) にそのまま接続して使います。
評価ボード側は、Pmod1 を I2C モードに切り替えて使います。Pmod1 を I2C モードにすると、J26-3 が SCL、J26-4 が SDA として使えます。

3. 今回の変更点

3-1. 配線変更

今回から IMU を追加します。
この接続により、I2Cに必要な

  • 3.3V
  • GND
  • SDA
  • SCL

がまとめて接続されます。

また、QCIOT-ICM42688P の J4(AD0) にはジャンパキャップが付いているため、
AD0 は Low 側となり、I2C アドレスは 0x68 になります。

QCIOT ICM42688P接続

ただし、評価ボード側でPmod1をI2C機能を使用できるようにSW4の設定を変更する必要があります。
設定内容は、次のように変更します。

  • SW4-1:OFF
  • SW4-2:ON

この設定で、Pmod1は、I2Cモードになります。

評価ボード Pmod1 I2C設定

3-2. 設定変更

  • なし

今回は、I2Cで必要な接続方法とアドレス条件を整理するところまでのため、FSP のI2C設定は行いません。

3-3. コード変更

  • なし

今回は、I2Cで必要な接続方法とアドレス条件を整理するところまでのため、コードはまだ使用しません。

4. 手順

4-1. QCIOT-ICM42688P の J4(AD0)を確認する

QCIOT-ICM42688P の J4 にジャンパキャップが付いていることを確認します。
今回は、この状態のまま使います。
J4 にキャップが付いている場合、AD0 は Low 側となり、I2C アドレスは 0x68 になります。

4-2. 評価ボード側を I2C 用に切り替える

評価ボードの Pmod1 を I2C として使うため、SW4 を次の設定にします。

  • SW4-1:OFF
  • SW4-2:ON

この設定で、Pmod1 は I2C モードになります。

4-3. IMUボードを Pmod1 に接続する

QCIOT-ICM42688P の J1 を、評価ボードの Pmod1(J26) に接続します。
この接続により、I2C に必要な

  • 3.3V
  • GND
  • SDA
  • SCL

がまとめて接続されます。

今回は、ブレッドボードやジャンパ線は使いません。
Pmod コネクタ同士をそのまま接続する形で進めます。

4-4. 今回の接続条件を整理する

次回の E3-01 で迷わないように、今回の条件を整理しておきます。

  • 通信方式:I2C
  • 電源:3.3V
  • GND:共通
  • SDA / SCL:Pmod1 経由で接続
  • AD0:Low(J4 にキャップあり)
  • I2C アドレス:0x68

5. 接続の考え方

今回は、まだセンサ値は読みません。
ただし、次回の接続確認で迷わないように、今の時点で「なぜこの接続にするか」を整理しておきます。

  • 3.3V:評価ボード側と IMU 側の電圧条件をそろえるため
  • GND:基準点を共有するため
  • SDA / SCL:I2C通信のため
  • AD0 = Low:アドレスを 0x68 に固定するため
  • Pmod1 を使う:Pmod ボード同士で接続でき、初心者でも配線を間違えにくいため

6. 実行結果

6-1. 今回確認したいこと

今回は、次の内容が整理できればOKです。

  • QCIOT-ICM42688P をどこへ接続するか分かる
  • Pmod1 を I2C モードにするための SW4 設定が分かる
  • J4 の状態から、今回のアドレスが 0x68 に決まることが分かる
  • 次回の接続確認に進める状態になっている

6-2. 今回確認できればよいこと

今回の段階では、次が確認できれば十分です。

  • 次回の接続確認に使う接続条件が整理できる
  • I2Cアドレスをあいまいにせずに進められる
  • Pmod1 の切り替えが必要なことを把握できる

7. ハマりポイント/原因と対策

7-1. Pmod1 に挿しただけで使えると思ってしまう

原因

  • 評価ボード側の Pmod1 に切り替え設定が必要なことを見落としている

対策

  • Pmod1 を使う前に、SW4-1 = OFF、SW4-2 = ON にする
  • 「Pmod1 を I2C モードにする」という手順を先に行う

7-2. I2Cアドレスが分からなくなる

原因

  • AD0 の状態を確認しないまま進めている

対策

  • QCIOT-ICM42688P の J4 にジャンパキャップが付いているか確認する
  • 今回は、J4 にキャップが付いている状態で進める
  • この状態では、I2C アドレスは 0x68 になる

7-3. Pmod1 を使っているのに I2C でつながらない

原因

  • 評価ボード側の SW4 設定が I2C になっていない
  • QCIOT-ICM42688P の接続向きを見間違えている
  • J4(AD0)の状態を確認していない

対策

  • SW4-1 = OFF、SW4-2 = ON になっているか確認する
  • QCIOT-ICM42688P の J1 を評価ボード側へ接続しているか確認する
  • J4 にキャップが付いており、今回のアドレスが 0x68 になっていることを確認する

8. 今回わかったこと

今回の実験で大事なのは、
I2Cセンサは、コードを書く前に接続方法とアドレス条件を確定しておく方が迷いにくい
ということです。

  • どこへ接続するか
  • 評価ボード側で何を切り替えるか
  • 今回のアドレスは何か

を先に固めてから進める方が、次の接続確認がかなり分かりやすくなります。

9. 次回やること

E3-01 I2C接続確認:0x68 に対して応答があるか確認する

10. 関連リンク

  • 実験シリーズ:E2-02 タイマで1ms毎にカウントアップするストップウォッチを作る(リンク)
  • 実験シリーズ:E2-03 タイマで周期処理(リンク)
  • 実験シリーズ:E2-05 状態で整理(IDLE / RUN / ERROR)(リンク)
  • 基礎シリーズ:電気回路 はじめに読む(リンク)
  • 基礎シリーズ:電子回路 はじめに読む(リンク)
  • 基礎シリーズ:GNDとは?なぜ基準点が必要なのか?(リンク)
  • 基礎シリーズ:マイコン(RA8M2) はじめに読む(リンク)

-フェーズ3