임베디드 시스템과 펌웨어

같은 모델명의 I2C 온도 센서 2개를 같은 I2C 선에 연결하고 싶은데, 둘 다 같은 주소를 가지고 있습니다. 대책으로 올바른 것은 무엇입니까?

  1. A그대로 연결하면 마이크로컨트롤러가 자동으로 구별해 준다
  2. BSDA와 SCL 선을 서로 바꿔 연결한다
  3. C주소 설정용 핀으로 한쪽의 주소를 바꾸거나, 별도의 I2C 선으로 나누어 연결한다
정답과 해설 보기

정답: C. 주소 설정용 핀으로 한쪽의 주소를 바꾸거나, 별도의 I2C 선으로 나누어 연결한다

I2C에서는 주소로 상대를 선택하므로 같은 주소의 기기가 2개 있으면 둘 다 동시에 응답하여 통신이 깨집니다. 많은 부품은 핀을 전원이나 그라운드에 연결하여 주소의 일부를 바꿀 수 있도록 되어 있습니다. 바꿀 수 없는 경우에는 마이크로컨트롤러의 다른 I2C 주변 회로를 사용하거나, I2C 선을 전환하는 부품(멀티플렉서)으로 나누어 연결합니다.

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

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

  1. UART, SPI, I2C를 비교한 설명으로 올바른 것은 무엇입니까?
  2. 주변 회로의 상태를 파악하는 방법 중 폴링과 인터럽트의 차이로 올바른 것은 무엇입니까?
  3. OS를 사용하지 않는 마이크로컨트롤러 프로그램에서 흔히 볼 수 있는 '슈퍼 루프' 구성의 설명으로 올바른 것은 무엇입니까?
  4. 임베디드 기기에서 RTOS(실시간 OS)를 사용하는 주된 목적은 무엇입니까?
  5. 선점형 RTOS에서 우선순위가 낮은 태스크가 실행 중일 때, 우선순위가 높은 태스크가 기다리던 데이터를 받아 실행 가능한 상태가 되었습니다. 일반적으로 어떻게 됩니까?

이 분야의 비교