マイコンと、表に示す二つのセンサーとをI2Cで接続した。 センサーからマイコンへのデータの読み込みは、センサーアドレス、内部アドレス、センサーアドレスの順にアドレスを送信した後に行う。 最初のセンサーアドレスは対象センサーアドレスを左に1ビットシフトして、LSBを0にしたものであり、二つ目のセンサーアドレスは対象センサーアドレスを左に1ビットシフトしてLSBを1にしたものである。 4A, 01, 4Bの順にアドレスを送信したときにマイコンに読み込まれるデータはどれか。 ここで、リスタートコンディションは自動的に行われるものとし、アドレスは16進数表記である。
センサー | センサーアドレス | 内部アドレス | データ |
ジャイロセンサー | 25 | 00 | X軸角速度 |
01 | Y軸角速度 | ||
加速度センサー | 2A | 00 | X軸加速度 |
01 | Y軸加速度 |
ア | X軸角速度 |
イ | X軸加速度 |
ウ | Y軸角速度 |
エ | Y軸加速度 |
答え ウ
【解説】
マイコンが送信したデータが「4A, 01, 4B」で、これは「センサーアドレス、内部アドレス、センサーアドレス」になっていて、最初のセンサーアドレスは対象センサーアドレスを左に1ビットシフトして、LSBを0にしたものであり、二つ目のセンサーアドレスは対象センサーアドレスを左に1ビットシフトしてLSBを1にしたものなので、送信しているセンサーアドレスを右に1ビットシフトしていると実際に指定しているセンサーのアドレスがわかり、25になる。
したがって、読み込まれるデータはセンサーアドレスが25で、内部アドレスが01なのでY軸角速度(ウ)になる。
【キーワード】
・I2Cバス