확실한 I2C 핀아웃 지침이 있습니까? "표준"을 찾지 않음


16

편집 : 이것은 여러 번 반복되어 맨 위에 놓았습니다. 예, I2C 장치 간 커넥터에 대한 "표준"이 없다는 것은 잘 알려져 있지만 분명히이 커뮤니티는 제작을위한 "지침"포인트 목록을 공식화 할 수 있습니다 신호 동작, 잡음 최소화 및 잘못된 연결로 인한 위험 완화를 기반으로 한 이러한 상호 연결.


NXP 는 I2C 커넥터에 대한 핀아웃을 지정하지 않고 I2C 표준 을 정의했습니다 . Vss / Gnd가 상호 연결을 통해 전달되는 경우 NXP의 유일한 지침은 SDA와 SCL 사이에 접지 및 / 또는 Vss를 배치하는 것에 대한 언급으로 보입니다.

다양한 I2C 모듈을 구입하면 다양한 I2C 핀아웃이 생겨 났고 약간의 작은 리본 케이블 전환 심을 추적하는 작업이 필요했습니다.

예 :

  • 모노 OLED 모듈 : SCL, SDA, GND, 5V (시계와 데이터가 나란히 있기 때문에 이상적이지 않음).
  • Arduino 용 센서 쉴드 : SDA, SCL, GND, 5V (이상적이지 않으며 스위치 SCL / SDA)
  • 컬러 LCD 모듈 : SCL, GND, 5V, SDA (Yay!)
  • 이름없는 I2C 리피터 : SCL, 5V, GND, SDA (전원 핀을 전환했습니다!

그래서 내 질문은 이것입니다 : Vss와 GND가 호스트에서 장치로 전달되는 I2C 4 핀 커넥터 핀 배치 시퀀스에 대한
결정적인 / 확실한 가이드 라인 이 있습니까?

이것을 실패하면, 각각이 채택한 핀 배치를 나열한 I2C 모듈 / 장치의 디렉토리가 불완전합니까?

설명 : 명확하게 존재하지 않는 정의 된 표준이 아닌 "SCL에 가깝게 배치"와 같은 지침을 찾고 있습니다.


3
따라서 질문입니다.
Anindo Ghosh

1
당신 자신의 질문에 따르면, 표준이 없다는 것을 분명히 알 수 있습니다 ... 만약 있다면, 사람들은 분명히 그것을 따르지 않습니다. 당신은 심 만들기에 붙어 있습니다. : P
토비 로렌스

1
@AnindoGhosh heh. 그것이 내가 있다면, 아마도 미리 구입 한 모듈을 버리고 편광 헤더를 사용하여 표준화 된 핀아웃으로 자체 보드를 굴릴 것입니다. SDA, SCL 및 5V 옆에 GND가있는 6 핀과 같은 것입니다. 그런 다음 3 개의 꼬인 쌍이있는 케이블을 사용하여 각 신호 근처에 접지를 유지하여 잡음을 줄이고 간섭을 제거합니다.
Toby Lawrence

3
일부 사람들은 I2C가 Arduino 사용자를 위해 판매되는 많은 모듈에 대한 인기있는 기본 연결 옵션이라고 생각합니다. 외부 보드 커넥터 용으로 설계되지 않았더라도 여기에 있으며 새로운 장치 용 커넥터를 만드는 것이 더 나은 방법에 대한 지침을 판매하고 요청하는 것은 전문가가 아닌 전문가에게 유용하지 않습니다.
신나는 프로젝트

1
@ExcitingProjects 아니요, I2C는 이것이 의미하는 바가 아니며 장치 간 연결에서 몇 가지 문제에 직면하고 있습니다. 모듈 디자이너가 I2C와 함께 가기로 선택한 것은 바로 그런 일입니다. 내가 선택을하면 나도 "기분을 상하게"될 것이다.
Anindo Ghosh

답변:


16

나는 최근에 I2C 커넥터가 나아갈 때까지 내 자신을 굴렸다. 커넥터 자체는 그다지 중요하지 않습니다. 지금은 단지 100mil 피치 헤더 (보통 보드상의 암컷이므로 연결되어 있지 않을 때 pokey가 아닙니다)를 사용하고 있지만 4plus 핀 커넥터는 그렇게 할 것입니다. 또한 P82B715를 사용하고 있습니다.TI에서 I2C 버스 익스텐더로 사용합니다. 이것은 사람들이 말했듯이 I2C가 처음에는 의도되지 않은 긴 I2C 드롭 오프 보드 실행과 관련된 커패시턴스 문제를 극복합니다. 나는 당신이 제공 한 예와 같이 많은 다른 조합을 시도했지만 성능에 전혀 차이가 없음을 알았습니다. 나는 이것이 I2C가 상대적으로 느리기 때문에 SDA와 SCL 간의 간섭은 큰 문제가 아니라고 생각합니다. 기본적으로 버스에서 전압의 상승 시간 (간섭이 발생할 때)은 비트 길이보다 훨씬 작습니다. 그래서 그것은 당신이 듣고 싶지 않을 수도 있지만 더 많은 옵션을 제공합니다. 개인적으로 나는이 칩으로 /로부터 쉽게 라우팅 될 수 있도록 [VCC, SDA, GND, SCL]과 함께 갔으며 뒤로 꽂을 때 VCC / GND 믹스에도 영향을받지 않았다.


2
+1 + 수락 고마워, 아마도 지금까지 가장 실제로 가능한 대답은 "장치 간 I2C가 존재합니다. 여기에 내가 어떻게 사용하고 왜?" VCC / GND 믹스 업 방지 기능이 유용합니다. 보드에 pokey 핀 헤더를 피하는 데 좋은 점은 우연히 일부 센서 모듈에서 몇 개의 핀을 찢어 버렸습니다.
Anindo Ghosh 21시 57 분

이것은 정말 도움이되는 답변 일뿐이며 충분한 명성을 얻으면 @Samuel에 보너스를 제공 할 것입니다. 많은 I2C 모듈이 있기 때문에이 가이드를 따라 언젠가 I2C 모듈을 구축 할 것이므로이 질문을 좋아합니다.
신나는 프로젝트

11

처음 구축되었을 때 I2C (Inter-Integrated Circuit) 버스 는 단일 PCB 어셈블리의 칩만 연결하도록 설계되었습니다. 여러 보드를 함께 연결하기 위해 케이블에 사용해서는 안되므로 해당 목적에 맞는 커넥터가 정의되지 않았습니다.

내가 아는 유일한 "표준"I2C 기반 외부 인터페이스는 사용자 인터페이스 장치를 컴퓨터에 연결하기위한 단기 ACCESS.bus 와 VGA, DVI 및 HDMI 커넥터를 통해 모니터 정보를 검색하는 데 사용되는 VESA 디스플레이 데이터 채널 입니다.


원래의 목적이 다르다는 것을 이해하지만, I2C는 현재 많은 케이블 연결 모듈에 사용되고 있기 때문에 다양한 제품, 특히 많은 제품에 사용되는 핀 배치를 문서화하기위한 협업 데이터베이스를 시작하기를 바랍니다. Arduino 및 기타 마이크로 컨트롤러 보드 시장.
Anindo Ghosh

4

표준 핀아웃, 표준 커넥터 없음 I2C 표준은 이런 종류의 것들에 실제로 적합하지 않습니다. 디바이스 레벨이 아닌 버스 레벨에서 지정됩니다. 예를 들어, I2C 장치를 연결하려면 풀업이 호스트에 있는지 장치에 있는지 표준으로 알고 있습니까? 케이블 커패시턴스의 위치와 같이 Vcc가 필요로하는 것들과 같이 여러분이 모르는 다른 많은 것들도 있습니다.

실제로 인터럽트 및 기타 일반 디지털 I / O를위한 추가 라인이 필요한 I2C 장치도 있습니다. 필요한 핀 수에 대한 합의를 얻지 못하면 표준에 어떻게 추가합니까?

결론적으로, 인터커넥트에서 이식성과 안정성을 찾고 있다면 I2C와 SPI가 꼭 필요한 곳이 아닙니다.


3
자신의 장치를 만들기위한 지침을 찾고 있다면 'duino를 위해 다른 모든 모듈과 함께 작동하고 좋아할 것입니까? 거기에 시장이 있는데, 그것을 무시하는 요점을 보지 마십시오. 또한 사양에 따라 호스트에서 풀업이 필요하고 장치에서 풀업이 필요합니다.
Anindo Ghosh

5
표준에 대한 "좋은"것은 선택할 수있는 사람이 너무 많다는 것입니다! MIDI, USB, RS232 (어리석은 널 모뎀 제외)와 같이 잘 정의 된 커넥터가있는 표준을 선택하고 자신의 장치에 변환기를 빌드하십시오. 다른 옵션은 IEEE와 같은 표준 조직을 통해 표준 작업 그룹을 구성하는 것입니다. 장치의 "선택적"풀업은 전체 버스의 동작에 영향을 미치므로 내 요점을 정확히 알 수 있습니다. MIDI는 모든 장치를 표준으로 광학적으로 분리하므로 호환 장치로 인해 이러한 문제가 발생하지 않습니다.
Scott Seidman

1
표준에 관한 재미 있지만 진실 된 포인트는 +1입니다! :-)
Anindo Ghosh

4

많은 사람들이 일종의 커넥터를 사용하여 두 PCB 사이에서 I²C 신호와 전력을 전달합니다. 예를 들어

장거리 I²C 신호 전달을위한 몇 가지 일반적인 팁 :

추신 : 나는 Wikipedia : I²C 회로 상호 연결 이이 질문과 관련이 있음을 알았습니다 .


3

I²C 핀아웃 또는 커넥터 표준은 없지만 표준화 된 I²C가 사용되는 곳은 거의 없습니다. 마음에 와서 그 일부는 메모리 모듈 (DIMM, SO-DIMM), 비디오 커넥터 (이다 DDC 에서 DVI , VGA ) 및 SM-버스 (예, 뭔가 같은 자신의 웹 페이지 외모 90 년대 중반에 만들어진 아이). 특히, SM- 버스 커넥터 는 키가 있으며 I²C 및 전원 만 포함하지만 SM-Bus는 추가적인 제한 사항을 적용하므로 기술적으로 모든 I²C 장치가 실제 SM-Bus에 연결되는 것은 아닙니다. 레고 NXT 센서와 같은 몇 가지 독점 플러그도 있습니다.


표준이 없다는 것을 감안할 때 ... 내가 바라는 것은 장치 디자이너가 따라야 할 표준 지침 모음입니다. 예를 들어 SMBus는 외부에 + 5V 라인이있는 반면 NXP는 + V와 GND를 신호 트레이스 사이에 둘 것을 권장합니다. 어느 쪽이 더 좋고 왜?
Anindo Ghosh

2

표준이 없습니다.

일반적인 실천은 없습니다.

무엇을해야할지 결정하는 문제에 대해 :

  1. 신호를 처음에 의도 한대로 한 보드에 유지하십시오. IIC 라인은 상당히 높은 임피던스를 가지며 싱글 엔드이므로 잡음에 취약하여 전송 라인을 제대로 종료하지 않습니다. IIC는 단순히 출발을위한 것이 아닙니다.

  2. 어쨌든 버스에서 내리려면 버스를 짧게 유지하십시오. 아마 몇 인치는 괜찮을 것입니다. 미터 이상은 실제로 문제를 요구합니다.

  3. 보드 라인을 노이즈 소스에서 멀리하십시오. 예를 들어 모터 주위를 감싸거나 근처에 가지 마십시오.

  4. 거꾸로 연결할 수없는 커넥터를 사용하십시오. 누군가가 거꾸로 연결할 수 있다면 누군가가 할 것입니다.

  5. 리본 케이블이 가장 사용하기 쉽습니다. 최소 3 개의 전선, SCL, SDA 및 접지가 필요합니다. 힘을 추가하는 것이 좋습니다. 어쨌든 누화를 피하기 위해 접지선이 SCL과 SDA 사이에 있는지 확인하십시오. 전원 선에 노이즈가 없어야하므로 한쪽에 붙이면 문제가되지 않습니다.

  6. 커넥터를 어지럽히고 잠재적 인 문제를 쫓은 후에 포인트 1이 실제로 알아야 할 유일한 지점임을 인식하십시오.


그래서 우리는 사람들이 arduino 및 기타 마이크로 컨트롤러의 초보자를 위해 만들고 판매하는 수백 가지의 I2C 물건을 모두 모래에 담아 야합니까?
흥미 진진한 프로젝트

1

왜 어떤 것이 표준화되어 있지 않은지 묻는 게시물 에서처럼 :
다행스럽게도 충전 용 배터리는 모두 미니 USB로 표준화되었으므로 해결되었습니다.  [또는 마이크로 USB입니까?  똥.
XKCD에서


아마도 당신이 질문을 더 신중하게 읽었거나 많은 주석 스레드를 읽었다면, 그것이 표준 이 아니라 표준 지침의 형태로 지혜의 모음 이라는 것을 알았을 것입니다 .
Anindo Ghosh

1
@AnindoGhosh-그것이 어떻게 다른지 모르겠습니다. 위의 만화에서 표준을 지침으로 바꾸면 동일하게 유효합니다. 어떤 일을하는 여러 방법이있는 상황은 일반적으로 많은 사람들이 여러 가지 방법으로 말한 것을합니다. 공식적인 "표준"이 아닌 경우에도 마찬가지입니다.
코너 울프
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.