임베디드 시스템과 펌웨어
같은 모델명의 I2C 온도 센서 2개를 같은 I2C 선에 연결하고 싶은데, 둘 다 같은 주소를 가지고 있습니다. 대책으로 올바른 것은 무엇입니까?
- A그대로 연결하면 마이크로컨트롤러가 자동으로 구별해 준다
- BSDA와 SCL 선을 서로 바꿔 연결한다
- C주소 설정용 핀으로 한쪽의 주소를 바꾸거나, 별도의 I2C 선으로 나누어 연결한다
정답과 해설 보기
정답: C. 주소 설정용 핀으로 한쪽의 주소를 바꾸거나, 별도의 I2C 선으로 나누어 연결한다
I2C에서는 주소로 상대를 선택하므로 같은 주소의 기기가 2개 있으면 둘 다 동시에 응답하여 통신이 깨집니다. 많은 부품은 핀을 전원이나 그라운드에 연결하여 주소의 일부를 바꿀 수 있도록 되어 있습니다. 바꿀 수 없는 경우에는 마이크로컨트롤러의 다른 I2C 주변 회로를 사용하거나, I2C 선을 전환하는 부품(멀티플렉서)으로 나누어 연결합니다.