임베디드 시스템과 펌웨어

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가 돌아오지 않으면 그 기기가 없거나, 배선이 끊어졌거나, 주소가 다르거나 하는 것을 생각할 수 있어 고장 조사의 단서가 됩니다.

이 분야 연습하기 분야로 돌아가기

임베디드 시스템과 펌웨어의 다른 문제

  1. 같은 모델명의 I2C 온도 센서 2개를 같은 I2C 선에 연결하고 싶은데, 둘 다 같은 주소를 가지고 있습니다. 대책으로 올바른 것은 무엇입니까?
  2. UART, SPI, I2C를 비교한 설명으로 올바른 것은 무엇입니까?
  3. 주변 회로의 상태를 파악하는 방법 중 폴링과 인터럽트의 차이로 올바른 것은 무엇입니까?
  4. OS를 사용하지 않는 마이크로컨트롤러 프로그램에서 흔히 볼 수 있는 '슈퍼 루프' 구성의 설명으로 올바른 것은 무엇입니까?
  5. 임베디드 기기에서 RTOS(실시간 OS)를 사용하는 주된 목적은 무엇입니까?

이 분야의 비교