오픈 드레인 마이크로 컨트롤러 포트


9

8051 마이크로 컨트롤러의 포트 P0과 같은 오픈 드레인 포트의 개념을 이해하고 싶습니다. 풀업 저항을 포트 P0에 연결해야하는 이유는 무엇입니까?

MOSFET 및 기타 전자 장치에 대한 기본 지식이 있습니다.


알았 으니까 이해하는 것은 기본적으로 다른 포트와 같은 기능이지만 외부 전원을 통해 전원을 공급해야합니다. 내가 맞아?
abkds 2018 년

답변:


13

모스크의 작동 방식에 대한 무시와 무시. 출력은 접지로의 스위치처럼 작동합니다. 자체적으로 높은 (+ 5V) 신호를 생성 할 수 없습니다. 풀업 저항은 스위치가 열려있을 때 출력이 높아지도록 사용됩니다. 스위치가 닫히면 출력이 낮습니다 (0V)

여기에 이미지 설명을 입력하십시오


9

오픈 드레인 (또는 BJT의 경우 오픈 컬렉터)의 두 가지 일반적인 애플리케이션이 있습니다.

1) 하나 이상의 출력을 동일한 라인에 연결합니다. 이것을 유선 OR이라고합니다. 예를 들어, 장치에 일반적으로 높은 재설정 핀이있을 수 있는데,이 핀은 마이크로 컨트롤러 핀과 다른 소스 (예 : 푸시 버튼) 모두에서 재설정됩니다. 리셋 핀은 풀업 저항과 연결되어 있습니다. 마이크로 컨트롤러는 오픈 드레인 출력으로 구성됩니다. 푸시 버튼은 누를 때 접지에 연결됩니다. 마이크로 컨트롤러가 출력을 0으로 가져 오거나 푸시 버튼을 누르면 장치가 재설정됩니다.

마이크로 컨트롤러가 출력 핀을 1로 설정하면 실제로 핀이 라인에서 분리됩니다. 전압으로 라인을 구동하지 않으므로 ( "소싱") 푸시 버튼이 라인을 접지로 당길 때 단락이 없습니다.

유선 OR 구성이 매우 유용하기 때문에, 마이크로 컨트롤러의 리셋, 인터럽트 라인, 플립 플롭과 같은 디바이스의 클리어 및 인 에이블 라인과 같은 핀이 모두 "액티브 로우"인 이유는 일반적으로 하이에 묶여 있음을 의미합니다. , 풀업 저항을 통해) 및 오픈 드레인으로 구성된 여러 장치 중 하나가 저전압을 당길 수 있습니다. 이러한 입력은 일반적으로 신호 이름 상단에 막대가 나타나거나 맨 앞에! (! CLR) 또는 후행 # 기호 (CLR #)입니다.

2) 다른 공급 전압에 연결된 장치 제어. 20mA가 필요하지만 전압이 5V 인 릴레이가 있다고 가정하십시오. 그러나 마이크로 컨트롤러 출력은 3.3V의 전원 (VCC) 전압까지만 핀을 구동 할 수 있습니다. 오픈 드레인 출력을 사용하면 릴레이의 한쪽을 5V에 연결하고 다른 쪽을 마이크로 컨트롤러의 출력 핀에 연결할 수 있습니다. 마이크로 컨트롤러의 출력이 1이면 아무 일도 일어나지 않습니다 (다시 핀이 분리 된 것처럼 작동합니다). 0으로 설정하면 릴레이의 하단이 접지되어 회로가 완료되고 릴레이가 작동합니다. 이러한 응용에서는 장치의 전원이 차단 될 때 마이크로 컨트롤러의 손상을 방지하기 위해 릴레이 코일에 "플라이 백"다이오드를 배치하는 것이 중요합니다.

ULN2803 (Darlington 트랜지스터 어레이)과 같은 출력 드라이버의 경우 50V의 높은 전압에 연결된 부하를 구동하고 로직 호환 입력으로 제어 할 수 있습니다.


a microcontroller can often sink more current (drive to ground) than it can source (drive to the VCC of the microcontroller)즉 현대 CMOS 마이크로 컨트롤러와 함께 더 이상 사실이 아니다
m.Alin

1
두 번째 사용 사례는 마이크로 컨트롤러에 거의 적용되지 않습니다. 대부분의 경우 IO 핀이 접지 전력 간격을 벗어난 전압을 견딜 수는 없습니다 (일부 저전압 칩은 5V 허용). 일부 Microchip uc의 RA4 핀은 예외입니다. 그러나 2003/2803 스타일 드라이버 칩은 두 번째 사용 사례의 훌륭한 예입니다.
Wouter van Ooijen 2016 년

MSP430, Atmel AVR 및 Pic 16/18 사이에서 동일한 양의 전류를 싱크하거나 소싱 할 수없는 최신 마이크로 컨트롤러를 아직 보지 못했습니다.
Passerby 2016 년

m.Alin, Wouter_van_Ooijen, Passerby-귀하의 의견에 감사드립니다. 제 답변을 편집했습니다.
tcrosley 2016 년

2

오픈 드레인 출력은 0V에 연결된 오픈 스위치입니다. 전류를 통과 시키려면 전류를 공급해야하며 풀업 저항으로이를 수행 할 수 있습니다. 핀에 전류를 전달하지 않으면 전압을 볼 수 없습니다.-

여기에 이미지 설명을 입력하십시오

동일한 오픈 드레인 출력을 공유하는 두 개의 장치가 있습니다. + 5V의 풀업 저항을 확인하십시오. 실제로이 회로는 로직을 수행하기 위해 "오픈 드레인"을 사용합니다. NAND 게이트가 1,1로 "활성화"되면 버스가 0V로 풀다운됩니다. 따라서 BUS로 전달되는 논리는

버스 반전 = AB + CD

일반 BJT도이 기능을 수행 할 수 있지만 MOSFET은 일반적으로 오픈 드레인 장치로 사용됩니다. 오픈 드레인 출력은 일반 CMOS 출력을 단순화 한 것으로 접지로 빠르게 켤 수 있지만 풀업 저항을 통한 기생 커패시터의 충전 시간으로 인해 + Logic으로의 복귀 과정에서 속도가 느려집니다.

Wiki의 Open Collector 는 잘 읽습니다. Open Drain과 동일하며 위에 표시된 작은 다이어그램과 같이 기사에서 언급됩니다.


0

1) tcrosley의 대답에서 첫 번째 포인트를 단순화하기 위해 출력 내에 풀업 저항을 제공하지 않는 이점은 많은 출력에서 ​​풀업 저항을 공유 할 수 있다는 것입니다. 그런 다음 출력이 병렬로 연결되고 모두 공유 저항과 접지에 연결됩니다.

2) 저항 (회로도) 아래의 지점은 결합 된 출력이 회로의 다른 부분에 의해 수집되는 위치입니다. (물론, 그것은 지상과 공급과 관련하여 다른 길을 갈 수 있었을 것입니다.)

3) 많은 출력에서 ​​결합 된 출력을 수집하지 않으려면 (그리고 회로는 모든 곳에서 동일한 전압 공급을 사용함) 풀업 부품없이 출력을 사용하고 싶지 않습니다. 그렇지 않으면 "불완전한"출력이 제공되므로 원하는대로 사용자 정의 할 수 있습니다.


텍스트 벽을 번호가 매겨진 단락으로 구문 분석했습니다. 특정 부분이나 진술을 읽고 주석을 달 때 이해하기가 더 쉽습니다. 단락은 답변의 컨텍스트가 변경 될 때 시작됩니다.
Sparky256 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.