I2C バスの使用
最新リビジョンの micro:bit の I2C バスでは、I2C 信号が内部用と外部用に分離されています。以前のリビジョンでは I2C バス をエッジコネクタおよびターゲット MCU と共有しています。
内部信号はターゲット Nordic チップに接続され、モーションセンサーおよびインターフェイスチップと通信します。
外部ラインはエッジコネクタに接続され、アクセサリで使用できます。
I2C ブロック図
I2C ブロック
使用されるアドレスの表
| 加速度センサー | 磁力計(コンパス) | インターフェイス管理 | インターフェイスストレージ | |
|---|---|---|---|---|
| モーションセンサー バリアント 1 (LSM303AGR) | 0x19 (0x32/0x33) | 0x1E (0x3C/0x3D) | 0x70 (0xE0/0xE1) | 0x72 (0xE4/0xE5) |
| モーションセンサー バリアント 2 (FXOS8700CQ) | 0x1F (0x3E/0x3F) | 0x1F (0x3E/0x3F) | 0x70 (0xE0/0xE1) | 0x72 (0xE4/0xE5) |
micro:bit V2 にはオンボード I2C 周辺機器専用のバスがありますが、micro:bit V1 ではオンボード I2C デバイスと外部 I2C デバイスで同じバスを共有します。予約済みの I2C アドレスについては、V1 共有バス のドキュメントを確認してください。
micro:bit アクセサリで使用されるアドレスの表(編集してください)
micro:bit 用のアクセサリを作成した場合は、以下の表を編集し、使用している I2C アドレスの詳細を共有してご協力ください。
| アクセサリ名 | 組織 | 使用している I2C アドレス |
|---|---|---|
| EDU:BIT | Cytron Technologies | 0x08 (0x10/0x11) |
I2C アクセサリで許容される容量
モーションセンサーの変更に関する最近の試験で、SCL-GND 間に接続した 10nF のコンデンサによって I2C バスは低速化しましたが、動作は継続することがわかりました。別途、SDA には動作しなくなるまで容量を追加しました。
- 100KHz では 1nF で動作を継続しましたが、2nF では動作しませんでした。
- 400kHz では 150pF で動作を継続しましたが、180pF では動作しませんでした。
リビジョン間で差は見られませんでした。
注意事項
V2 デバイスは、P0.25 上の統合センサー割り込みをアクティブ化することで(Low にプルすることで)ウェイクアップできます。このオープンドレイン信号は、ターゲット MCU、Interface MCU、およびモーションセンサーの間で接続されており、デバイスがスリープ中であっても、ターゲット MCU の内部プルアップを設定しておく必要があります。