현재 프로젝트에서 마이크로 컨트롤러와 I2C를 통한 일부 센서 간 통신이 필요합니다. 그중 하나는 온도 센서이며 마이크로 컨트롤러에서 약 2 미터 떨어져 있어야합니다. 다른 프로토콜을 선택할 수 없습니다 (센서가 지정된 커넥터 / 핀 / 프로토콜이있는 모듈에 있음).
이 구성에서 통신이 가능하다고 생각하십니까? 그것이 가능하거나 불가능할 수 있도록 어떤 정보를 찾아야합니까? 조언이 있습니까?
PCB 외부의 IC와 통신하는 것은 처음입니다.
현재 프로젝트에서 마이크로 컨트롤러와 I2C를 통한 일부 센서 간 통신이 필요합니다. 그중 하나는 온도 센서이며 마이크로 컨트롤러에서 약 2 미터 떨어져 있어야합니다. 다른 프로토콜을 선택할 수 없습니다 (센서가 지정된 커넥터 / 핀 / 프로토콜이있는 모듈에 있음).
이 구성에서 통신이 가능하다고 생각하십니까? 그것이 가능하거나 불가능할 수 있도록 어떤 정보를 찾아야합니까? 조언이 있습니까?
PCB 외부의 IC와 통신하는 것은 처음입니다.
답변:
I2C는 장거리에서 사용하도록 설계되지 않았지만 실제로 약 2 미터 거리에서 사용되는 여러 응용 분야를 알고 있습니다. 또한 문제가 발생한 사례를 알고 있으며 결국 접지 루프를 수정하여 문제를 해결했습니다.
제대로 작동하려면 P82B715와 같은 I2C 버스 익스텐더를 사용해야합니다.
그러나 PB2B715 의 데이터 시트에는 8.2 절에 다음 내용이 나와 있습니다.
전화 또는 이더넷 (Cat5e) 배선에 사용되는 일반적인 연선 또는 플랫 케이블의 경우, 정전 용량은 약 50 pF ~ 70 pF / 미터이므로 이론적으로 케이블 길이는 최대 50 m입니다 . 실제 경험을 통해 30m은 표시된 값을 사용하여 최대 100kHz까지이 간단한 방식으로 안전한 케이블 길이를 구동 할 수 있음을 입증했습니다 . 더 먼 거리와 더 빠른 속도가 가능하지만 더 신중한 디자인이 필요합니다.
따라서 전문가들 (NXP는 전 필립스, I2C의 발명가)은 30 미터가 가능한 거리로 입증되었다고 말합니다. 내 경험에 따르면 2 미터는 가능한 거리이며 나에게보고 된 경험에 따르면 익스텐더없이 더 많이로드 된 I2C 버스도 가능합니다.
장거리 I2C 버스 작동의 핵심 포인트는 다음과 같습니다.
Texas Instruments에는 풀업 계산에 대한 유용한 애플리케이션 노트 (SLVA689)가 있습니다.
가능하지만 권장하지 않습니다.
SPI와 마찬가지로 I2C는 보드 또는 보드 그룹 (Raspberry Pi 및 해당 모자 또는 arduino 및 해당 차폐 장치) 내 통신을 위해 설계되었습니다. 더 먼 거리에서 작동 할 수 있지만 (다른 답변 참조) 그러한 경우에는 설계, 최적화 및 자격을 갖춘 것이 아니기 때문에 사용해서는 안됩니다.
향후에 더 많은 센서를 추가 할 수 없거나 시스템이 모든 곳에서 작동하지 않거나 특정 상황에서 실패 할 위험이 있습니다.
당신이 찾고있는 것은 1-wire, CAN, RS-485, 이더넷 등과 같은 필드 버스입니다.
블루투스 또는 지그비와 같은 무선 시스템도 옵션이 될 수 있습니다.
@filo에 의해 언급 된 바와 같이, I2C는 일반적으로 버스 커패시턴스에 의해 제한된다. 그러나이 문제를 해결할 수있는 방법이 있습니다.
나는 filo와 Caleb의 답변을 좋아합니다.
다른 옵션은 하나 이상을 사용하는 것입니다 개별 센서에서 DS28E17 1-Wire-to-I2C 마스터 브리지 를 사용하고 버스를 Onewire로 연결하는 것입니다. 이는 100m가 넘는 버스에 적합하며 분산 온도 및 배터리 관리와 같은 처리량이 적은 센서 어레이 애플리케이션에 적합합니다.