將NI裝置設定為Open-Drain或Push-Pull

更新 Jul 27, 2023

環境

硬件

  • USB-6000
  • USB-6501
  • USB-6001

驅動程式

  • NI-DAQmx

  • 什麼是Open-Drain和Push-Pull?
  • 如何將 NI 裝置的數位輸出設置為Open-Drain (open collector) 或Push-Pull (active drive)?

如果您不熟悉 Open-Drain或Push-Pull的含義,請參閱以下文件。
在NI設備的Line Driver, Open Collector和Push Pull Encoders之間進行選擇NI 設備的 Line Driver、Open Collector 和 Push Pull Encoders 之間進行選擇

首先,檢查您裝置的使用手冊,確保您的設備支援push-pull (也稱為active driver或sourcing)和open-drain (也稱為open collector或sinking),及其預設狀態。

注意:並非所有 NI-DAQ 裝置都可以設置為sinking或sourcing。大多數可設置為sinking/sourcing的數位裝置必須拖過特定方式接線才能達成其目的,如Configuring the NI 940x Modules for Sinking or Sourcing Digital Outputs中所示。有關正確接線的資訊,請參閱裝置的使用手冊。


使用 NI-DAQmx更改為Push-Pull

在 LabVIEW 中,您可以使用channel property node來設置裝置上的各種通道。在block diagram上放置 DAQmx channel property node後,單擊它並選擇Digital Outpu>>Output Drive Type,如以下範例所示:

右鍵單擊DAQmx Channel Property並選擇Select Filter>>Show All Attributes以顯示可用屬性,即使未連結chnnel reference也可進行選取。在 LabVIEW 中,DO.OutputDriveType的選項預設是隱藏的,除非 DAQmx channel property node連結到對應且支援的裝置,同時Show All Attributes在啟用的狀態下,對應的功能才會是看見的。

右鍵單擊DO.OutputDriveType的輸入節點,然後選擇Creat>>Constant。"Open Collector"對應至open-drain而"Active Drive"則對應至push-pull。

此功能與 LabWindows CVI、Microsoft Visual Studio 和任何其他可使用 NI-DAQmx 驅動程式的程式語言相同。要找到所需的函數使用,請在DAQmx API Help中搜索"Output Drive Type"。
 

使用NI-DAQmx Base更改為Push-Pull

如果您使用NI-DAQmx Base,您可以在NI-DAQmx Base Configuration Utility中設置該屬性。無法在NI-DAQmx Base中以程式的方式設置輸出的方式。設置的範例可以在NI-DAQmx Base 件夾中找到 (在 Mac上通常為Hard Drive>>Applications>>National Instruments>>NI-DAQmx Base,或在 Linux 上為/usr/local/natinst/nidaqmxbase/bin)。完成以下步驟進行相關設置:
  1. 選擇Create New Task
  2. 選擇 Digital I/O 作為acquisition task並為其命名
  3. 完成建立後,選擇Voltage Tab
  4. Voltage Tab中,有一個 DIO Voltage Level選項。對於open-drian,使用 0-5 V 選項。對於push-pull,使用 0-3.3 V 選項。


在Visual Studio中更改為Push-Pull

在 Visual Studio 中,您可以使用相關參數在設置各種通道的屬性。

Open Collector:
myTask.DOChannels.All.OutputDriveType = DOOutputDriveType.OpenCollector

Active Drive:
myTask.DOChannels.All.OutputDriveType = DOOutputDriveType.ActiveDrive


附加信息

重新啟動電源後是否需要手動進行設置與Power-On States參數有關,請參閱您的使用手冊確認其是否支援可程式化設置Power-On States。

Open-drain (MOSFET)或open collector (BJT)是使用帶有下拉或上拉電阻數位電路。基本上,電路在接地路徑或 5 V 路徑上有一個電阻。所以當晶體管關閉時,線路將浮動到高電位或低點為。

考慮使用帶有上拉電阻的BJT的情況。在高電位期間,BJT的基極電壓為0 V。這會導致BJT在開路時,線路被上拉至 5 V 。對於高阻抗負載,您應該在負載上看到完整的5 V (上拉電阻為 4.7k Ω)。在低電位期間,BJT基極產生5 V電壓。這會使電路對地短路,並導致從上拉電路流出的所有電流直接流向地,這時提負載上電壓為 0 V。

Push-pull,也稱為active drive,工作方式有很大不同。該電路使用兩個晶體管來確定邏輯高低。對於該系統,通常有兩個BJT,一個是NPN,另一個是PNP。請參閱下方的示意圖:

從push-pull電路中可以看出,有兩個晶體管用於驅動5 V或地之間的輸出。當Vin為低電位時,底部BJT將開啟,頂部BJT將關閉,這將導致負載兩端為0 V。當Vin為高電位時,頂部BJT將開啟而底部將關閉,這將導致負載兩端為 5 V。

注意: NI USB-6008 的輸出方式始終為open-drain,不能改成push-pull。