풀다운 저항이 아닌 풀업 저항과 함께 작동하도록 I2C를 설계 한 이유는 무엇입니까?


22

I2C에서 SCL 및 SDA 라인은 풀업 저항을 사용하고 핀 드라이버는 핀을 접지로 구동 할 수있는 개방형 콜렉터 NPN 장치라는 것을 알고 있습니다. 이는 I2C에 동일한 버스를 여러 슬레이브와 공유 할 수 있다는 이점을 제공하며, 둘 이상의 슬레이브가 실수로 동시에 버스를 운전하려고 시도하더라도 시스템에 손상을주지 않습니다.

그러나 이는 SDA 및 SCL 라인에서 PNP 오픈 드레인 드라이버풀다운 저항 을 사용하여 수행 할 수도 있습니다 . 이것으로도 클록 스트레치 및 멀티 마스터 중재와 같은 것들을 달성 할 수 있습니다.

현재의 I2C 프로토콜 구현은 위에서 제안한 대체 구현에 비해 어떤 이점을 제공합니까?


1
오픈 컬렉터 트랜지스터는 80 년대 IC에서 가장 많은 것으로 보인다.
PlasmaHH

9
@PlasmaHH 그 이유는 NPN (모호하게 기억되는 한)이 기판의 전자 이동도가 높아 면적당 전류 용량이 더 많기 때문에 "강한"출력 단계를 구축하는 것이 더 쉽다고 생각합니다.
Marcus Müller

7
@ MarcusMüller 사실, 그것은 사실입니다. NPN과 NMOS Fets는 같은 크기로 주어 졌을 때 더 강력합니다. CMOS에서는 요소 2 ~ 3이 일반적입니다. PNP 대 NPN의 경우 제조 공정에 따라 다르지만 거의 항상 PNP는 NPN보다 훨씬 어렵고 복잡합니다. 또한 P- 도핑 된 기판으로 시작하면 (대부분의 프로세스와 마찬가지로) NPN이 더 좋습니다.
Bimpelrekkie

@Bimpelrekkie 나는 고체 물리학 수업에서이 날짜까지 2.3의 요인을 기억합니다 :-)
winny

1
기존의 I2C 버스가 어떤 이유로 든 실수로 접지로 단락 된 경우 풀업 저항 전류 만 끌어옵니다. 액티브 하이 드라이버 및 풀다운 저항의 보완적인 배열로 인해 I2C 시작 몇 년 동안 간단한 드라이버가 손상 될 수 있습니다. 보드 사이를 이동할 때는 섀시 단락을 고려해야합니다. 그러나 이는 드라이브 로우 풀 하이로가는 많은 이유 중 하나이며, 나머지는 아래에서 다른 사람들이 대답했습니다.
TonyM

답변:


30

접지는 IIC 버스의 모든 장치에 대한 하나의 공통 연결이기 때문에 전기적으로 의미가 있습니다. 이는 전력이 모든 IIC 장치에 공통으로 연결되도록 강제하는 것보다 제한이 적습니다. 풀다운을 통해 라인이 높게 구동되고 플로팅 된 경우 필요합니다.

IIC 장치에 모두 동일한 네트 또는 동일한 전압으로 전원을 공급할 필요는 없습니다. 두 버스 라인 모두를 단일 공통 전원 전압으로 구동해야한다면 이것은 사실이 아닙니다.


5
아니 내 downvote이, 당신은 여기 내 포인트 가능성이 오해 그래서, 저 많은 년 I2C 경험으로,하지만해야합니다 " IIC 장치에서 전원을 공급하기위한 모든 필요하지 않습니다 [...] 같은 전압은 "수 있습니다 예를 들어 5V 전원 및 3V 전원 I2C 장치는 레벨 변환기를 언급하지 않았기 때문에 추가 구성 요소 나주의 사항없이 동일한 I2C 버스를 공유 할 수 있음을 의미합니다. 물론 각 장치의 I2C 논리 임계 값이 자체 Vcc를 참조하기 때문에이를 수행 할 수 없습니다. 어쩌면 레벨 번역가에 대한 언급이 부족하여 다운 보트가 발생했을까요?
SamGibson

13
사용 된 풀업 및 I / O 핀에 따라 I2C 스타일 통신은 5V와 3.3V 장치 사이에서 원활하게 작동 할 수 있습니다. 예를 들어, 10V 풀업을 5V로 사용하면 5V 허용 언 클램프 입력이 있거나 보호 다이오드에 150uA를 허용 할 수있는 경우 3.3V 장치를 사용할 수 있습니다. 풀업을 3.3V로 사용하면 2.5V 이하의 입력 높은 임계 값을 갖는 5V 장치와 인터페이스하기 위해 적어도 느린 속도로 작동합니다.
supercat

7
@Sam : 실제로 5V 및 3.3V IIC 장치 동일한 IIC 버스에있을 있습니다. 공급 전압에 관계없이 고정 전압 레벨을 갖는 장치는 IIC 사양에서 구체적으로 언급되고 제재됩니다.
Olin Lathrop

5
필립스의 이전 문서 "I2C 버스 및 사용 방법"에서 10.0 절은 초기 (일반적으로 NMOS) 5V I2C 장치의 고정 입력 임계 값을 언급합니다. " VDD와 관련된 입력 레벨을 가진 I2C- 버스 디바이스 는 풀업 저항이 연결되는 하나의 공통 공급 라인가져야합니다 "(내 볼드체). @supercat-당신은 언급했습니다 : " 2.5V 이하의 입력 높은 임계 값을 가진 5V 장치 "그런 장치의 예를 제공함으로써 저를 도울 수 있습니까? 오래된 I2C 문서를 읽으면 오래된 5V 장치에 대해 고정 된 3V I2C Vih 최소값 만 언급 할 수 있습니다. 감사.
SamGibson

2
@SamGibson : VDD와 관련된 입력 레벨을 가진 장치 는 서로의 특정 범위 내에있는 전압에서 작동해야합니다. 전압이 얼마나 근접해야 하는가는 전압이 VDD와 어떤 관련이 있는지에 달려 있습니다. PIC16F877 (임의로 선택한 5V 부품)에 대한 Microchip 데이터 시트에는 일반 핀의 V (IH)가 0.25VDD + 0.8V로 나열되어 있지만 슈미트 트리거 입력의 경우 훨씬 높습니다. VDD = 5.2V에서 일반 입력은 2.1V의 지정된 V (IH)를 갖습니다. 하드웨어 I2C V (IH)에 대한 사양을 보지 못했지만 일반적인 성능 그래프는 일반 입력과 ST 입력 사이에 있음을 나타냅니다.
supercat

24

예전에는 TTL 드라이버가 신호를 당기는 것보다 신호를 내리는 것이 훨씬 낫습니다. 따라서 I2C와 같은 프로토콜뿐만 아니라 인터럽트 라인, 리셋 및 기타 프로토콜도 모두 분산 풀다운이있는 풀업을 사용하여 구현되었습니다.


8
현대의 더 나은 시대에도 반도체의 본질적인 속성이므로 동일하게 적용됩니다. 오늘날 동일한 전류를 처리하기 위해 더 강력한 풀업 트랜지스터를 얻는 데 비용이 많이 들지 않습니다.
아스날

2
CMOS를 사용하면 파워 레일 전압에 가까워지는 것이 훨씬 쉽다고 들었습니다. TTL이 어려움을 겪고있는 또 다른 '문제'. (아마도 우리는 3V3 CMOS가 TTL과 인터페이스하도록 허용했기 때문에 운이 좋을 것입니다)
Oldfart

14

다양한 공급 전압을 가질 수있는 서브 시스템간에 공통 참조로 접지를 사용하는 것이 더 쉽습니다. PNP 트랜지스터를 사용하여 공급 전압을 끌어 올리면 모든 서브 시스템을 동일한 공급 장치에 연결해야합니다.


8

여기에는 좋은 답변이 많이 있지만 다른 이유도 있습니다.

버스의 대기 상태가 지상에있는 경우 버스가 연결되어 있거나 공간에 걸려 있는지 알 수있는 방법이 없습니다.

풀업이 마스터 장치에있는 것이 정상입니다. 슬레이브는 일반적으로 풀업이 없습니다. 낮은 레벨을 주장하는 데 필요한 풀다운 전류가 버스에 연결된 장치 수에 따라 증가하기 때문입니다.

그런 다음 슬레이브를 버스에 꽂으면 라인이 높게 당겨 졌음을 감지하고 (사용하지 않는 것으로 가정) 버스가 실제로 저소음임을 알 수 있습니다. 접지 바이어스 버스의 경우에는 그렇지 않습니다.


버스가 높게 당겨지는 것을 감지하려면 슬레이브가 먼저 당겨야합니다. 왜 반대 극성으로 비슷한 절차를 수행 할 수 없는지 잘 모르겠습니다.
Dmitry Grigoryev

@DmitryGrigoryev 왜 이미 높은 물건을 가져와야합니까?
Trevor_G

5

질문을 올바르게 이해하면 한 가지 측면이 있습니다.

  • 풀다운 저항과 PNP 트랜지스터 대신 풀업 저항과 NPN 트랜지스터를 사용하는 이유는 무엇입니까?

우선 바이폴라 트랜지스터 (NPN, PNP)를 사용하지 않고 MOSFET (네 가지 변형이 있음)을 사용하십시오.

" 풀업 및 NPN "변형을 사용하는 장치는 n 채널 향상 MOSFET을 사용합니다. 이 MOSFET의 소스가 접지에 연결되어 있으므로 게이트 소스 전압 (전류 흐름 제어)은 게이트와 접지 사이의 전압과 같습니다. 따라서 0에서 Vdd 사이의 전압을 사용하여 MOSFET을 제어 할 수 있습니다.

" 풀다운 및 PNP "변형 을 구현할 수있는 세 가지 가능성이 있습니다 .

  • 사용하여 A p 채널 인핸스 MOSFET을

    NMOS 또는 CMOS IC에서 비슷한 특성 (저항 등)을 갖는 p 채널 MOSFET은 n 채널 MOSFET보다 더 많은 공간이 필요합니다.

    마이크로 일렉트로닉스에서 공간은 비용이 많이 들기 때문에 가능한 경우 p 채널 MOSFET을 피할 수 있습니다.

  • 사용한 n 채널 인핸스 MOSFET을

    이것은 트랜지스터를 구동하는 논리 회로의 출력이 공급 전압의 "LOW"전압 (예 : + 5V)과 공급 전압보다 높은 "HIGH"전압 (예 : 나머지 회로가 공급 될 때 + 10V)을 가져야합니다. + 5V로).

    이유 : MOSFET이 전도 될 때 소스 접지 전압은 Vdd가됩니다. 게이트 소스 전압은 양수 여야하므로 게이트와 접지 사이의 전압은 더 높아야합니다.

    두 개의 전압 공급 장치와 논리 회로의 출력을 0 ... + 5V에서 + 5V ... + 10V로 전환하는 회로가 필요합니다.

  • 사용한 n 채널 공핍 MOSFET을

    불행히도 나는이 솔루션에 대해 많이 말할 수 없습니다. 그러나 Google을 사용하는 일부 페이지에서 고갈 MOSFET은 개선 MOSFET보다 생산하기가 어렵 기 때문에 이러한 이유로 피할 수 있습니다.

    전력 전자 장치 (마이크로 일렉트로닉스가 아닌)로부터 위에서 설명한 "두 전원 공급 장치"변형이 공핍 MOSFET보다 선호된다는 것을 알고 있습니다. (그러나 나는 당신에게 이유를 말할 수 없습니다.)

    편집 n 채널 공핍 MOSFET을 사용하면 음의 전압 (예 : -5V)이 필요할 수 있으므로 두 개의 공급 전압도 필요합니다 ...


0

공통 접지 및 풀업 데이터 라인을 사용하는 경우 (공통 VCC 및 풀다운을 사용하는 것) 추가적인 이점이 있습니다.

원래 의도가 몇 인치에 불과한 동일한 PCB의 장치를 연결하려는 경우에도 이제는 충분히 성공 했으므로 이제는 컴퓨터 나 동등한 장치가 될 수있는 긴 몇 피트 라인과 "장치"를 연결하는 것이 일반적이지 않습니다. 자체 전원을 사용하는 일부 장치의 경우 복잡성 (다른 품질의 경우 벽면 콘센트로 전원이 공급되거나 배터리로 전원이 공급되는 제품)을 말합니다. 이상적이지 않은 사양에서라도 연결이 "적어도 양호"하게 작동하는 것이 좋습니다.

그리고 이러한 연결된 장치 중 많은 부분이 다른 방법으로 연결된 다음 I2C 통신만으로도 연결될 수 있습니다. 일반적으로 장치를 함께 연결할 때 common ground때로는 다른 기능의 일부로 장치를 연결합니다 . 때로는 금속 케이스에 장착되어 장치가 케이스와 (또는 일반적인 냉각기 또는 이와 유사한 장치) 접지되어 있거나 내부에 접지 차폐가있는 차폐 케이블이어야하며 접지도 연결해야합니다.

이러한 장치의 전원 라인 (VCC)을 직접 연결하면 해당 라인의 전압이 자연적으로 다른 전압에있을 때 문제가 발생합니다 (확실히 여기 저기 5V라고 말할 수 있지만 전원 구성 및 부품 허용 오차에 따라 다름) 4.9V 또는 5.2V이거나 배터리로 구동되고 때로는 일부 모터가 작동하여 시간이 지남에 따라 전력 강하 및 상승이 발생할 경우 변경 될 수 있습니다).

이러한 경우, 볼트의 일부 전원 공급원 사이에 효과적으로 단락이 발생하고 전원 (및 방법의 저항)에 따라 상대적으로 높은 전류가 흘러 에너지 낭비 및 열 상승뿐만 아니라 손상을 초래할 수 있습니다 ( 또는 그 원인 중 일부의 수명 단축). 어느 것이 좋지 않습니다.

공통 접지 및 풀업을 사용하면 이러한 문제를 피할 수 있습니다. 접지는 접지이며 풀업 저항은 VCC가 장치와 크게 다른 경우에도 실제로 작은 크로스 전류 만 허용합니다.


1
이것은 본질적으로 Dave Tweed의 답변과 동일합니다.
Janka

-2

칩이 풀리면 칩을 통해 너무 많은 전력을 공급할 필요가 없습니다.

이 칩은 아무 것도 구동하지 않기 때문에 버스를 0으로 만드는 단락을 만들고 1로 가져 오기 위해 열린 것입니다.

풀다운 상태 인 경우 버스를 1로 구동하기 위해 칩을 통해 전력을 공급해야합니다. 버스가 우발적으로 단락 된 경우, 칩을 통해 푸시하려고 시도하는 데 많은 전력이 필요할 수 있습니다. 최대 1 개

면책 조항 : 나는이 시점에서 꽤 시끄러운 EE입니다.


3
EE.SE에 오신 것을 환영합니다. " 그것은 끌어의 경우, 칩을 통해 너무 많은 전력을 보낼 필요가 없습니다. "풀업 및 저항 풀다운 크기가 동일한 경우, 전류는 동일합니다. 풀업은 구동 칩에서 전류를 공급 받아 구동 칩에 가라 앉아야합니다. 풀다운에는 구동 칩에서 전류가 공급되어야하고 구동 칩에 의해 가라 앉아야합니다. 실수로 V + 또는 접지가 단락 될 수 있습니다.
트랜지스터
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.