디지털 신호를 반전시키는 방법


29

디지털 신호를 반전시키는 방법이 필요합니다. 즉, 입력이 높으면 출력을 낮추고 싶습니다. 입력이 낮 으면 출력을 높이고 싶습니다.

나는 이것이 단일 PNP 트랜지스터로 달성 할 수 있다고 생각하지만 여기서 확인하고 싶었다. 내가 다루고있는 전압은 5V 미만입니다.


BJT 인버터의 자세한 처리 : EE 307 섹션 2 MoHAT 프로젝트 - "이 페이지의 목적은 BJT 인버터의 기본 작동에 관심이있는 사람들을 안내하기위한 것입니다."
Peter Mortensen

답변:


34

또는 어쨌든 디지털 신호에 대해 이야기하고 있기 때문에 인버터 를 사용합니다 .

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

A입력이다 (것 이상의 입력과 게이트 용은 A, B, C등) Y출력이다. 회로도가 너무 복잡하지 않으면 입력이 왼쪽 인 기호를 배치하십시오.

NXP에는 단일 게이트 인버터가 있습니다. 전원 공급 장치, 접지, 입력 및 출력의 4 가지 연결 만 가능

그러나 트랜지스터와 두 개의 저항으로 수행 할 수 있습니다. 간단한 회로도이지만 몇 가지 간단한 계산을해야합니다. 인버터와 정확히 동일한 연결이 가능합니다.
BTW, PNP는 옵션이지만 더 자주 NPN이 사용됩니다.

편집 (댓글)

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

입력 신호가 높으면 R2와 트랜지스터의베이스 이미 터 접합 (게이트가 아닌베이스)을 통해 전류가 흐릅니다. 이 전류는 증폭되고 R1을 통한 콜렉터 전류는 전압 강하를 유발하여 출력이 낮아집니다. 입력 높음, 출력 낮음.
입력 신호가 낮 으면 기저 전류가없고 수집기 전류가 없습니다. R1을 통한 전류 없음은 전압 강하가 없음을 의미하므로 출력은 + V가됩니다. 입력 낮음, 출력 높음.

이것은 이미 조금 더 리드,하지만 난 의견에 말했듯이 sandun 출력 매우 비대칭이다. 출력이 커패시터에 연결된 경우 높은 출력 레벨은 커패시터가 R1을 통해 충전됨을 의미하며, 이는 시정 수 R1C의 지수 기울기를 초래합니다. 출력이 낮아지면 커패시터는 훨씬 낮은 저항을 통해 방전되고 기울기는 훨씬 가파 릅니다. 대칭 소스 / 싱크 기능이있는 CMOS 게이트에서는 이러한 차이를 얻지 못합니다.

트랜지스터 버전의 입력도 높을 때 (작은) 전류를 소비합니다. CMOS 버전은 높고 낮을 때 누설 전류가 적습니다.

전반적으로 통합 논리 게이트가 승자입니다.


확실히 혼란 스러울 수 있지만 게이트에 전원이 공급되면 NPN이 켜지고 전원이 공급되면 PNP가 꺼집니다. 신호 증폭에 NPN을 사용하는 것이 합리적이지만 신호가 반전되지는 않습니다. 생각?
Matt Ruwe

2
게이트는 BJT가 아닌 MOSFET 용입니다. NFET가 켜지고 PFET가 꺼집니다. 그러나 소스가 올바르게 연결되어 있는지 확인해야합니다. NPN과 PNP는 BJT이며 제대로 작동하려면 좀 더 수학이 필요합니다.
ajs410

NXP에 관해서는 매우 작은 자유의 여지가 있습니다. 타이밍, 팬인, 팬 아웃, 입력 노이즈 마진, 글리치 등과 같은 제약이 있습니다.이 경우 트랜지스터를 사용하는 것이 더 쉽습니다. 당신이 그 제약에 잠겨 있지 않기 때문에.
Standard Sandun

@ 매트-내 답변을 편집했습니다.
stevenvh

1
@sandundhammika, 직접 빌드하는 경우 여전히 팬 아웃 및 노이즈 마진에 대한 제한이 있습니다 (여기서는 팬인이 적용되지 않음). 그러나 그 한계가 무엇인지 스스로 계산해야합니다. 기성품 게이트를 사용하는 경우 데이터 시트를 읽어 보면됩니다. 또한 상용 게이트의 경우 전력 소비 (다른 일반적인 시스템 제약 조건)가 훨씬 더 우수합니다.
광자

24

그렇습니다. 이것은 단일 트랜지스터와 저항으로 달성 할 수 있지만 디지털 신호를 반전시키기 위해 특별히 설계된 칩이 있습니다. 이상하게도 인버터 라고 합니다. 예를 들어 74HC04를 확인하십시오. 단일 14 핀 패키지로 6 개의 개별 인버터를 제공합니다. 소형 SOT-23 패키지에는 단일 인버터 (및 기타 소형 로직 게이트)가 있으며 개별 트랜지스터와 동일한 패키지입니다.

자신의 인버터를 만들어야 할 이유는 거의 없지만 가능합니다.

의견에 대한 답변으로 추가 :

내가 말했듯이, 단일 바이폴라 트랜지스터는 간단한 인버터의 기초로 사용될 수 있습니다. 최소한 트랜지스터와 기본 저항이 필요합니다. 완성도를 위해 출력 부하 저항을 추가합니다. 출력에 연결할 것이 무엇인지 알지 않는 한 필요하다고 가정해야합니다. 특히 PNP 트랜지스터에 대한 마술은 없습니다. NPN도 사용할 수 있습니다. 각각의 사용법은 다음과 같습니다.

각각에는 전원, 접지, 입력 및 출력의 4 가지 연결이 있습니다. 이 둘의 차이점은 입력을로드하는 방향과 출력이 능동적으로 구동되는 방향과 부하에 의해 수동적으로 당기는 방향입니다. 이러한 문제에 관심이 없다면 두 회로는 기능적으로 동일합니다.

그러나 이것은 더 쉽습니다.

또한 더 빠르며 안정된 상태의 전력을 소비하며 더 높은 임피던스 임피던스를 가지며 더 작습니다. 위의 인버터와 동일한 4 개의 연결이 있습니다. 이와 같은 단일 게이트는 단일 트랜지스터와 동일한 패키지 인 SOT-23 패키지로 제공됩니다. 여기에는 외부 부품 인 바이 패스 캡이 하나만 필요합니다. 출력이 능동적으로 양방향으로 구동하기 때문에 부하 저항이 필요하지 않습니다.

실제로, 디지털 신호의 일반적인 반전을 위해, 자신의 인버터를 만드는 것은 일반적인 어플리케이션에는 어리 석습니다.

회로도에 대한 주제를 제외하고 :

스크립트는 실제로 세 줄입니다. 전체 파일은 다음과 같습니다.

@ 에코 오프
렘
렘 MAKE_SCHEM_GIF
렘
rem 원시 Eagle 출력에서 ​​멋지게 필터링 된 회로도 GIF 파일을 만듭니다.
rem /temp/a.tif. 결과 GIF 파일은 /temp/b.gif이며
렘 그레이 스케일.
렘
image_filter /temp/a.tif /temp/b.img-축소 5
image_copy /temp/b.img /temp/b.gif-형태-회색
image_disp /temp/b.gif-확대 1 -dev 매체

매우 구체적인 일회성 스크립트이지만 목적에 충분하게 작동합니다. Eagle에서는 회로도를 이미지 파일 \ temp \ a.tif로 내보내고 \ temp \ b.gif를 만드는 스크립트를 실행합니다. 이미지 내보내기를위한 Eagle 설정은 600 DPI 및 단색입니다. 실제로, 그게 전부입니다. 아마 그것보다 더 복잡하게 들릴 것입니다.


1
@MattRuwe "충분한"것이지만 Olin의 요점은 전용 칩이 더 나을 것이라는 점이다 (상승 및 하강 시간이 더 대칭적일 것이다). PNP는 Vdd로 "풀업 (pull up)"할 수 있지만 PNP에서 출력이 플로팅 될 때 다시 끌어 올릴 무언가가 필요합니다. 이 "무언가"는 임피던스에 따라 상승 / 하강 시간에 비대칭을 만듭니다.
ajs410

이해가
되었네요

1
회로도가 내 것보다 더 예쁘게 보입니까? :-)
stevenvh

4
@ stevenvh : 나는 단지 나아지기 때문에 있어야합니다. 진지하게, 나는 Eagle을 사용하고 약간의주의를 기울입니다. Eagle에서 그림을 그린 후 600 DPI로 회로도를 이미지 파일로 내 보낸 다음이를 필터링하고 5 배 축소하고 결과를 회색조 GIF 파일에 기록하는 스크립트를 실행합니다. 결과적으로 픽셀 아티팩트가없는 적당한 크기가됩니다. 그러나 선을 약간 흐리게 처리하므로 앨리어싱과 눈에 띄는 픽셀 화가 없다는 단점이 있습니다.
Olin Lathrop

1
@abdullah : 답변을 참조하십시오.
Olin Lathrop

8

CMOS 신호에 사용할 수있는 저항 값은 다음과 같습니다.

구식 "LCD 디지털 백팩"을 Arduino에 연결하려고했기 때문에이 스레드를 찾았습니다. Arduino는 양의 직렬 신호를 내보내고 디지털 백팩은 반전 된 신호를 원합니다. 최신 버전의 LCD 컨트롤러에는 반전 / 비 반전 점퍼가 있지만 그렇지 않습니다. 마찬가지로 소프트웨어를 통해 역 직렬 직렬 신호를 생성 할 수 있지만 비표준 라이브러리를 실행해야합니다. 표준 Serial.write명령 을 사용하고 싶었습니다 .

처음에는 인버터로 4001 CMOS 쿼드 NOR 게이트에서 4 NOR 중 하나를 배선했지만 내 브레드 보드에서 많은 공간을 차지하고 사용되지 않은 모든 입력을 접지에 연결해야하기 때문에 많은 배선. (패키지의 14 핀 중 3 개를 제외하고 3 개의 미사용 NOR에 대한 출력을 제외한 모든 것을 연결해야한다고 생각합니다.)

더 간단한 유선 솔루션을 원했습니다. @stevenvh가 제공 한 회로를 사용했습니다.

여기에 링크 :

enter image description here

9600 보드에서 5V CMOS 로직을 처리하고 있으므로 입력 임피던스가 매우 높거나 전류가 매우 낮습니다. 9600 보드 속도로만 스위칭하기 때문에 트랜지스터 기반 인버터의 비대칭 동작이 크게 아프지 않다고 생각합니다.

입력의 100K 저항 (stevenvh 다이어그램의 R2)이 작동하고 R1의 풀업 저항으로 3.3k 저항을 사용했습니다. 내 계산 (I = V / R, 5/3300)을 기반 으로이 설정은 ON 상태에서 <= 1.5 mA를 그립니다 (트랜지스터의 내부 저항으로 인해 다소 적습니다). 냄비를 연결하고 얼마나 큰지 볼 수 있습니다 LCD로 신호를 수신 할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.