두 개의 I2C 장치 (I2C 마스터-> I2C 슬레이브)를 연결하는 데 사용할 수있는 최대 케이블 길이는 얼마입니까?
예, I2C는 보드 내 통신용으로 설계되었습니다. 데모를 지원하기 위해 여러 I2C 슬레이브에 공통 I2C 버스를 사용하는 "디자인 목표"를 맡았습니다.
명확성을 위해 100 kHz의 표준 I2C 버스 속도를 가정합니다.
두 개의 I2C 장치 (I2C 마스터-> I2C 슬레이브)를 연결하는 데 사용할 수있는 최대 케이블 길이는 얼마입니까?
예, I2C는 보드 내 통신용으로 설계되었습니다. 데모를 지원하기 위해 여러 I2C 슬레이브에 공통 I2C 버스를 사용하는 "디자인 목표"를 맡았습니다.
명확성을 위해 100 kHz의 표준 I2C 버스 속도를 가정합니다.
답변:
빠른 모드 및 저항 풀업의 경우이 NXP 문서 I2C- 버스 사양 및 사용 설명서 에 따라 커패시턴스가 200pF 미만이어야합니다 .
전류 소스 풀업을 사용하면 저항이 아닌 400pF로 이동할 수 있습니다.
와이어가 20pF / 30cm이고 다른 50pF의 스트레이 및 입력 커패시턴스가있는 경우 케이블 길이는 2.25m로 제한됩니다. 다른 가정은 다른 숫자로 이어질 것입니다.
10,25 및 100m와 같은 미친 소리 길이는 완벽하게 가능하며 물건을 빨리 정리해야 할 때 자주 방법을 사용합니다 (I2C가 아니라 UART 사용). 그러나 최선의 방법은 아닙니다.
핵심은 입력 전압 임계 값을 아는 것입니다. 접지 리드의 전압 강하가 이보다 훨씬 낮은 지 확인하십시오. 그렇지 않으면 접지 전위가 높은 트랜스미터가 전압을 충분히 낮출 수 없습니다. 접지 오프셋 허용 오차 부족 IMHO는 RS485를 사용하거나 트랜시버를 사용하는 가장 큰 이유입니다 (CAN을 통한 I2C는 몇 가지 애플리케이션 노트에 언급되어 있음).
이상적으로 모든 장치에는 자체 벽면 사마귀 및 배터리가 있으며 장치 사이의 접지선을 통해 전원이 공급되지 않습니다.
그러나 CAT5를 예로 들어 보겠습니다. CAT5는 52pf / m보다 높거나 CAT5가 아닙니다.
52pf 케이블 100m의 정전 용량은 5200pf 또는 5.2nf입니다.
5.2n 곱하기 20kohms (풀업)는 약 104 마이크로 초의 시간 상수를 제공합니다. 속도가 약 10kHz 정도로 제한됩니다.
2.2kohm 풀업을 사용하면 100kHz에 도달 할 수 있습니다.
나는 장치가 구동하는 큰 용량 성 부하로 인해 180 또는 200 옴과 같은 SDL 및 SCK에 저항이 있어야한다고 들었습니다.
그러나 솔직히 I2C는 먼 거리를 갈 수는 없습니다. 일반 UART와 함께 사용되는 CAN 트랜시버 또는 RS485는 1 달러 정도의 비용으로 매우 우수한 결함 보호, ESD 저항, 속도, 거리 등을 갖춘 강력한 솔루션입니다. 접지 오프셋은 거의 상관 없습니다 데이터와 함께 전력을 자유롭게 전달할 수 있습니다.
유일한 단점은 캔 트랜시버가 70ma 전송 및 1 또는 2ma 청취에 도달 할 수 있으므로 I2C 또는 직접 TTL UART는 극도의 저전력 상황에서 유용 할 수 있지만 실제로 전송하는 데 걸리는 시간을 고려하십시오.
USB 센서를 만드는 회사에서 일합니다. 대부분은 I2C 센서 칩을 기반으로하며, 이러한 장치는 2 개로 분할 될 수 있으므로 CPU 부분을 한 곳에 설치하고 센서 부분을 다른 곳에 설치할 수 있습니다. 우리는 장치 CPU와 I2C 센서 사이의 I2C 연결에 대해 많은 테스트를 수행했습니다. 100kHz에서는 우수한 오류 복구 프로토콜을 사용하여 기본 와이어를 사용하여 25m에 쉽게 도달 할 수 있습니다. CAT5 케이블로 100m에 도달 할 수도있었습니다.
NXP의 P82B96과 같은 것을 사용하여 버스의 전압 레벨을 변경하여 훨씬 더 먼 거리를 허용 할 수 있습니다.
데이터 시트는 3m, 25m, 100m와 250m의 I2C 케이블 길이에 대한 예제가 포함되어 있습니다.
비슷한 기능을 가진 다른 칩이 있습니다.