먼저 장비의 사용자 매뉴얼을 열어 푸시-풀(액티브 드라이브 또는 소싱이라 불리기도 함)과 오픈-드레인(오픈 컬렉터 또는 싱킹이라 불리기도 함)을 모두 지원하는지 확인해야 합니다. 사용자 매뉴얼은 장비의 기본 상태가 무엇인지 또한 알려줍니다.
참고 : 모든 NI-DAQ 디바이스를 싱킹 또는 소싱으로 설정할 수 있는 것은 아닙니다. 양방향 싱크/소싱 디지털 디바이스로 나열된 대부분의 장비는 특정 방식으로 배선되어 있어야 합니다.
Configuring the NI 940x Modules for Sinking or Sourcing Digital Outputs KB를 참고하십시오. 디지털 라인의 올바른 배선에 대한 자세한 내용은 장비의 사용자 메뉴얼을 참조하십시오.
다음으로 오픈 드레인이 무엇을 의미하는지 간단히 설명하겠습니다. 오픈-드레인(MOSFET) 또는 오픈 컬렉터 (BJT)는 하나의 저항을 풀다운 또는 풀업 저항으로 사용하여 디지털 라인을 하이 또는 로우로 변환시키는 회로를 의미합니다. 기본적으로 회로는 그라운드나 5V로 연결된 경로 사이에 저항을 가지고 있습니다. 그러므로 트랜지스터가 꺼져있을 때 도선은 하이 또는 로우 전압으로 플로팅됩니다.
BJT를 풀업 저항과 함께 사용하는 경우를 생각해봅니다. 하이인 동안은 BJT의 베이스에 0V가 가해집니다. 이는 BJT의 개회로를 야기하며 또한 풀업에 의해 라인이 5V로 당겨집니다. 고 임피던스 부하의 경우, 부하에 온전히 5V가 인가되는 것을 볼 수 있습니다. 이 때 풀업은 4.7k옴입니다. Low인 동안은 BJT의 베이스에 5V가 생성됩니다. 이는 회로를 그라운드에 접지시키며, 풀업 회로로부터의 모든 전류를 그라운드로 흘려보냅니다. 따라서 부하에는 0V를 인가하게 됩니다.
액티브 드라이브라고도 불리는 푸시-풀은 조금 다르게 동작합니다. 이 회로는 두 개의 트랜지스터를 사용하여 하이 또는 로우 로직을 결정합니다. 이러한 시스템에서는 보통 NPN BJT와 PNP BJT를 사용합니다. 아래 회로도를 보시기 바랍니다.
그림 2의 회로도에서 볼 수 있듯이 출력을 5V나 그라운드로 구동시키기 위해 두 개의 트랜지스터가 있습니다. V
in이 로우인 경우, 아래의 BJT는 켜지고 위의 BJT는 꺼지므로 부하에는 0V를 야기시킵니다. V
in이 하이인 경우, 위의 BJT는 켜지고 아래의 BJT는 꺼지므로 부하에 5V를 야기합니다.
참고 : NI-USB 6008은 출력 구동 타입이 항상 오픈-드레인이며 푸시-풀로 변환할 수 없습니다.
NI-DAQmx를 사용하여 푸시-풀 동작으로 변환하기
LabVIEW에서 채널 프로퍼티 노드를 사용하여 장비의 다양한 채널을 설정할 수 있습니다. 블럭 다이어그램에 DAQmx 채널 프로퍼티 노드를 놓은 후, 아래 그림 3과 같이 이를 클릭하여
Digital Output»Output Drive Type를 선택합니다.
DO.OutputDrive Type 프로퍼티의 입력 노드를 우클릭하여
생성»상수를 선택합니다. DAQmx의
Open Collector라는 용어는 오픈-드레인과 동일하며 DAQmx의
Active Drive는 푸시-풀과 동일합니다.
LabVIEW에서 DAQmx 채널 프로퍼티 노드가 다양한 출력 구동 타입을 지원하지 않는 장비를 참조하는 경우
DO.OutputDrive Type 채널 프로퍼티는 보이지 않습니다. 추가적으로 DAQmx 채널 프로퍼티를 우클릭하여
Select Filter에서
Show All Attributes를 선택하여 특정 채널 참조가 연결되어 있지 않더라도 모든 프로퍼티를 볼 수 있습니다.
이 기능은 LabWindows CVI, Microsoft Visual Studio 또는 NI-DAQmx 드라이버로 프로그래밍 가능한 다른 어떤 언어에서도 동일하게 동작합니다. 이에 해당하는 함수를 찾기 위해서 DAQmx API 도움말에서
Output Drive Type을 검색해보시기 바랍니다.
NI-DAQmx Base를 사용하여 푸시-풀 동작으로 변경하기
NI-DAQmx Base를 사용하고 있다면 NI-DAQmx Base Configuration Utility를 사용하여 이 프로퍼티를 설정할 수 있습니다. 하지만 NI-DAQmx Base에서는 프로그램적으로 출력 구동을 설정하는 방법은 없습니다. Configuration Utility는 NI-DAQmx Base 폴더 (일반적으로 맥에서는
Hard Drive»Applications»National Instruments»NI-DAQmx Base, 리눅스에서는 /usr/local/natinst/nidaqmxbase/bin) 찾을 수 있습니다. 출력 구동 설정을 바꾸기 위해서 다음 단계를 따라하시기 바랍니다.
- 새 작업 만들기(Create New Task) 선택
- 수집 태스크 타입으로 Digital I/O를 선택하고 태스크에 이름을 부여합니다.
- 태스크가 생성되면 Voltage Tab을 선택합니다.
- Voltage Tab에 DIO Voltage Level 옵션이 있습니다. 오픈-드레인으로 설정하려면 0-5V 옵션을 사용하고, 푸시-풀로 설정하려면 0-3.3V 옵션을 선택하십시오.
Additional Information
이 설정을 다시 수동으로 설정할 필요가 없도록 변경하는 것은 Power-On States 파라미터와 관련이 있습니다. 장치의 메뉴얼을 참조하여 프로그래밍 가능한 Power-On States를 지원하는지 확인하십시오.