組込み・ファームウェア

I2Cで、データを1バイト受け取った側が、受け取ったことを知らせる方法として正しいものはどれか。

  1. A受け取った側が、別の線で1を出し続ける
  2. B9番目のクロックの間に、受け取った側がSDAを0に引き下げる(ACK)
  3. C受け取った側が、同じバイトを送り返す
答えと解説を見る

正解:B. 9番目のクロックの間に、受け取った側がSDAを0に引き下げる(ACK)

I2Cでは、8ビットのデータに続く9番目のクロックで、受け取った側がSDAを0に引き下げて受け取ったことを知らせます(ACK)。誰も引き下げなければSDAはプルアップで1のままで、NACKになります。アドレスを送ったときにACKが返らなければ、その機器がない、配線が切れている、アドレスが違う、などが考えられ、故障の調査の手がかりになります。

  • A. I2Cに確認用の別の線はありません。
  • B. 正しい。0に引き下げなければNACKになります。
  • C. 送り返すことはしません。
この分野を解く 分野ページへ

組込み・ファームウェアのほかの問題

  1. 同じ型番のI2Cの温度センサを2つ、同じI2Cの線につなぎたいが、どちらも同じアドレスを持っている。対策として正しいものはどれか。
  2. UART・SPI・I2Cを比べた説明として正しいものはどれか。
  3. 周辺回路の状態を知る方法のうち、ポーリングと割り込みの違いとして正しいものはどれか。
  4. OSを使わないマイコンのプログラムでよく見られる「スーパーループ」の構成の説明として正しいものはどれか。
  5. 組込み機器でRTOS(リアルタイムOS)を使う主な目的はどれか。