驗證工程師、生產測試工程師和系統集成商經常負責開發自動化測試設備(ATE)系統,該系統被廣泛應用于各種半導體器件的測試,如晶體管、二極管、MOSFET和ASIC等。
自動化測試有助于識別缺陷、驗證器件性能并確保元件質量——尤其是在半導體、航空航天和國防等對可靠性要求極高的行業中。
MP5000系列是Tektronix推出的模塊化ATE系統,目前配備有直流電源(DC Power Supply)和源測量單元(SMU)模塊。這些模塊可自由組合,以滿足各種測試應用需求。與Keithley 26xx系列源測量單元(SMU)類似,MP5000系列主機與模塊支持 TSP(Test Script Processor)命令集。
TSP是一種靈活的軟硬件架構,允許基于消息的編程。它類似于SCPI,但增加了更強的控制能力,用于測試順序/流程控制、邏輯決策以及儀器的自主運行。啟用TSP的儀器可以像傳統的SCPI儀器一樣運行,通過響應由PC發送的一系列命令完成控制。
在本指南中,我們將介紹以下內容:
■1. 熟悉儀器的TSP命令集
■2. 如何進行命令序列化
■3. 構建測試流程
■4. 將測試集成到您的測試環境中
學習TSP命令
在實現MP5000系列自動化之前,首先要熟悉儀器及其TSP命令集。
TSP命令集是一組預定義的函數與屬性,用于控制儀器操作。它們的功能類似于某些儀器中使用的SCPI命令。與SCPI一樣,TSP命令也可分為多個類別,但并非所有類別都適用于所有儀器。以下示例展示了傳統SCPI命令與TSP命令在語法上的區別(以2461型SMU為例):
| SCPI示例 | TSP示例 |
| *RST | reset() |
| SOURce: FUNCtion VOLTage | smu. source. func = smu. FUNC_DC_VOLTAGE |
用于控制MP5000系列的TSP命令可在《MP5000系列編程手冊》中找到。MP5000系列的命令結構要求用戶在命令中明確指定目標儀器在MP5103主機中的槽位(slot)和通道(channel)。
TSP MSMU60-2示例
reset()
slot[1]. smu[2]. source. func = slot[1]. smu[2]. FUNC _ DC _ VOLTAGE
這些命令可以通過別名(aliasing)進行縮寫,以提高速度與可讀性。別名是一個包含命令表結構中部分路徑的變量。通過創建別名,可以根據應用需求簡化并自定義TSP命令。
別名示例
gateSMU = slot[1].smu[2]
gateSMU. source. func = gateSMU. FUNC _ DC _ VOLTAGE
命令順序化
自動化新的MP5000模塊化精密測試系統的第一步,是通過將一系列TSP命令按順序組合,來創建一個簡單的測試程序。這可以通過任何程序或語言逐條發送TSP命令來實現,方式與使用SCPI命令類似。常用的編程語言包括Python和C#。
首先,需要與儀器建立通信連接。這可以通過VISA實現,如下Python示例所示:
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm. open _ resource ('TCPIP0 :: 192. 168. 0. 2 :: hislip0 :: INSTR')
接下來,發送必要的命令以配置測試設置。在設置完參數后,可以開啟儀器輸出,并通過編程邏輯實現所需的測試行為。
下面的Python示例展示了如何向MP5000 MSMU60-2發送TSP命令以執行一個簡單的電流掃描(Current Sweep):
inst.write('reset()')
#SourceSettings
inst.write('slot[1].smu[2].source.func = slot[1]. smu[2]. FUNC_DC_CURRENT')
inst.write('slot[1].smu[2].source.rangei = 1000e-3')
inst.write('slot[1].smu[2].source.leveli = 0')
inst.write('slot[1].smu[2].source.limitv = 6')
#MeasureSettings
inst.write('slot[1].smu[2].measure.rangev = 6')
inst.write('slot[1].smu[2].measure.rangei = 1000e-3')
inst.write('slot[1].smu[2].measure.nplc = 1')
inst.write('slot[1].smu[2].measure.autorangei = 1')
#SenseMode
inst.write('slot[1].smu[2].sense = slot[1]. smu[2]. SENSE _ 2WIRE')
#Calculatestop current / (number of sweep points -1)
delta=300e-3/ (31-1)
#TurnOutput On
inst.write('slot[1].smu[2].source.output = 1')
inst.write('reset()')
#foreach sweep point, calculate the source level and then take an iv
Measurement
For j inrange(1, 31):
inst.write('slot[1].smu[2].source.leveli ='str((j-1) * delta))
inst.write('slot[1].smu[2].measure.iv(slot[1].smu[2].defbuffer1,
slot[1].smu[2].defbuffer2)')
#TurnOutput Off
inst.write('slot[1].smu[2].source.output = 1')
對于希望在編程中進一步抽象化TSP命令或需要使用多種儀器的用戶而言,驅動程序能顯著簡化代碼編寫過程。Tektronix為MP5000提供了Python驅動程序和IVI驅動程序,這些驅動程序可在任意IDE或代碼編輯器(如Visual Studio Code)中使用。
Tektronix Python驅動庫:tm_devices
tm_devices是Tektronix提供的設備管理包,包含大量命令與函數,可幫助用戶輕松通過Python自動化控制Tektronix各類儀器。它支持代碼自動補全功能,使具有不同軟件經驗水平的工程師都能輕松實現測試自動化。安裝非常簡單,可通過Python的包管理系統pip完成:
pip install tm_devices
以下為使用tm_devices Python驅動自動化控制MP5000 MPSU50-2ST的示例:
From typing importcast, TYPE_CHECKING
From tm_devices import DeviceManager
From tm_devices.drivers import MP5103
If TYPE_CHECKING:
From tm_devices.commands import PSU50STCommands
With DeviceManager(verbose=True) as device _ manager:
# Add a mainframe to the device manager and access its commands.
mainframe: MP5103 =device_manager.add_mf("0.0.0.0")
# Some examples demonstrating the usage of mainframe level commands.
mf_model=mainframe.commands.localnode.model
value=mainframe.commands.eventlog.count
# Get access to the psu module command object available in third slot of
the mainframe.
modular_psu=cast("PSU50STCommands",
mainframe.get_module_commands_psu(slot=3))
# Some examples demonstrating the usage of module level commands.
# Get the psu model and version
psu_model=modular_psu.model
psu_version=modular_psu.version
modular_psu.firmware.verify()
# Some examples demonstrating the usage of channel level commands.
# Set the measurement aperture in seconds
modular_psu.psu[1].measure.count=5
# Enable the source output
modular_psu.psu[2].source.output=1
# Set the offset value used for voltage measurements
rel_value=modular_psu.psu[1].measure.rel.levelv
# Create a reference to the default buffer
my_buffer=modular_psu.psu[1].defbuffer1
# Read the value in the specified reading buffer
# Measure the voltage on channel 1 of the PSU
voltage_value=modular_psu.psu[1].measure.v()
構建測試
在使用MP5000進行測試開發時,有兩種選擇:
■傳統測試開發—— 由PC軟件控制測試執行;
■完全利用TSP—— 同時作為命令集和編程語言,通過編寫TSP腳本實現。
腳本是TSP的核心功能之一,它允許用戶在無需外部計算機處理的情況下,直接自動控制儀器,類似于嵌入式設備的腳本執行方式。TSP腳本可完成多種復雜任務,例如:根據最近一次測量動態調整源輸出值;在多臺儀器間同步觸發掃描;或執行簡單任務,如對緩沖區讀數應用數學公式。通過腳本,儀器成為一個功能強大的“邊緣計算解決方案”,可即時做出決策,減少通信開銷并簡化數據分析。

圖1:傳統PC測試開發與在儀器上運行的TSP腳本的可視化對比
TSP腳本可使用文本編輯器編寫,也可通過Tektronix提供的TSP Toolkit(Visual Studio Code擴展)實現。該擴展為開發者提供了:
■語法高亮
■內聯命令提示與自動補全
■完整調試器
■其他豐富功能,顯著提升TSP腳本開發體驗。
TSP腳本可以保存到MP5000系列儀器中在本地運行,也可以通過TSP Toolkit終端以Sockets或VISA連接方式從外部運行。

圖2: 在TSP Toolkit終端中運行的TSP腳本、函數調用及命令
關于TSP腳本的重要規則
■每個腳本必須具有唯一名稱,且名稱不能以數字開頭。
■腳本名稱不能包含空格。
■腳本名稱必須保持唯一。
若加載一個與現有腳本同名的新腳本,系統將生成錯誤事件信息。
用戶必須在創建同名新腳本之前刪除原有腳本。
■ 若對現有腳本進行修改并以新名稱保存,則原始腳本仍會以舊名稱保留在儀器中。
■用戶可將腳本保存到儀器的非易失性存儲器中。
將腳本保存到非易失性存儲器可確保儀器在斷電后不會丟失腳本。
以下是一個簡單的TSP腳本示例
使用MP5000 MSMU60-2模塊執行一個基本的電流掃描(Current Sweep):
reset()
-- Source Settings
slot[1].smu[2].source.func=slot[1].smu[2].FUNC_DC_CURRENT
slot[1].smu[2].source.rangei=1000e-3
slot[1].smu[2].source.leveli=0
slot[1].smu[2].source.limitv=6
-- Measure Settings
slot[1].smu[2].measure.rangev=6
slot[1].smu[2].measure.rangei=1000e-3
slot[1].smu[2].measure.nplc=1
slot[1].smu[2].measure.autorangei=1
--Sense Mode
slot[1].smu[2].sense=slot[1].smu[2].SENSE_2WIRE
--Calculate stop current / (number of sweep points -1)
localdelta=300e-3/ (31-1)
--Turn Output On
slot[1].smu[2].source.output=1
--for each sweep point, calculate the source level and then take an iv
Measurement
forj=1, 31 , 1do
slot[1].smu[2].source.leveli= ((j-1) *delta)
slot[1].smu[2].measure.iv(slot[1].smu[2].defbuffer1,
slot[1].smu[2].defbuffer2)
end
TSP命令可以組合在一起,并與其他編程邏輯結合,創建一個函數(function)。
這類函數即稱為腳本(script),儀器可將其解釋為一個單獨的TSP命令來執行。
將測試集成到測試環境中
可以使用Python或其他編程語言來調用TSP腳本。這種能力意味著用戶可以復用部分或全部現有的編程代碼,無需完全重構代碼庫,同時利用TSP提供的更高吞吐量、更好的同步性與觸發控制。TSP腳本使用TSP Toolkit編寫和調試非常方便,而測試框架的其余部分可通過相應的VS Code擴展輕松編輯,以提升開發效率。
一個加載到儀器內存中的TSP腳本可以通過一行Python代碼執行:
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm.open_resource('TCPIP0::INSTR')
inst.write('SimpleIVTest()')
另一個需要考慮的方面是如何從儀器中獲取數據。用戶可以使用TSP命令直接在TSP Toolkit終端中打印緩沖數據:
--for each sweep point, calculate the source level, take an iv measurement, and then print the values to the terminal
print("Current Voltage")
for j = 1, 31 , 1 do
slot[1].smu[2].source.leveli = 0 + ((j-1) * delta)
slot[1].smu[2].measure.iv(slot[1].smu[2].defbuffer1,
slot[1].smu[2].defbuffer2)
print(slot[1].smu[2].defbuffer1[j],slot[1].smu[2].defbuffer2[j])
end
這些命令同樣可以在Python中執行,以實現相同的功能。
#foreach sweep point, calculate the source level, take an iv measurement, and then print the values to the terminal
print("Current Voltage")
for j in range(1, 31):
inst.write('slot[1].smu[2].source.leveli =' str((j-1) * delta))
inst.write('slot[1].smu[2].measure.iv(slot[1].smu[2].defbuffer1,
slot[1].smu[2].defbuffer2)')
inst.query('print(slot[1].smu[2].defbuffer1[j],slot[1].smu[2].defbuffer2[j])')
|結論|
MP5000模塊化精密測試系統(MP5000 Modular Precision Test System)結合TSP腳本的靈活性與驅動程序支持,為工程師提供了一個功能強大且可擴展的平臺,用于自動化測試開發。通過學習TSP命令結構、編排命令序列、構建可復用腳本,并將其集成到現有測試環境中,用戶可以:
■優化測試流程;
■減少通信開銷;
■實現更快、更可靠的測試結果。
無論是利用Python驅動實現簡潔控制,還是全面采用嵌入式TSP腳本實現高效率執行,MP5000都能幫助工程師構建高效、靈活、并面向未來的自動化測試解決方案,以支持廣泛的半導體和電子器件驗證需求。
我們提供專業的測量洞見信息,旨在幫助您提高績效以及將各種可能性轉化為現實。
泰克設計和制造能夠幫助您測試和測量各種解決方案,從而突破復雜性的層層壁壘,加快您的全局創新步伐。我們攜手共進,一定能夠幫助各級工程師更方便、更快速、更準確地創造和實現技術進步。
我們隸屬于銳聯特(Ralliant)公司。銳聯特在精密技術領域擁有值得信賴的測試與測量(Test and Measurement)、傳感器與安全系統(Sensors and Safety Systems)等行業標桿品牌,匯聚全球精英團隊,共同護航客戶關鍵應用,攜手締造未來科技圖景。
-
Tektronix
+關注
關注
1文章
69瀏覽量
29948 -
python
+關注
關注
58文章
4878瀏覽量
90134 -
TSP
+關注
關注
1文章
26瀏覽量
17455 -
自動化測試系統
+關注
關注
0文章
25瀏覽量
9108 -
泰克科技
+關注
關注
2文章
220瀏覽量
20618
原文標題:從Python到TSP:快速上手MP5000自動化測試系統
文章出處:【微信號:泰克科技,微信公眾號:泰克科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
Renesas QuickConnect Beginners Kit 快速上手:從入門到實踐
泰克MP5000系列的TSP Toolkit I-V腳本生成功能
構建高效自動化測試系統:盛鉑科技功率計的程控與集成之道
從設計到落地,音圈執行器如何適配你的自動化需求??
泰克MP5000系列模塊化精密測試系統, 重新定義自動化測試
重磅發布 | 泰克(Tektronix)推出全新7系列DPO示波器與MP5000系列模塊化精密測試
泰克科技推出全新7系列DPO示波器與MP5000系列模塊化精密測試系統
EasyGo TestSim:新能源電力系統自動化測試的利器
如何用Renix實現網絡測試自動化: 從配置分離到多廠商設備支持
干貨分享 | TSMaster MBD模塊全解析:從模型搭建到自動化測試的完整實踐
從Python到TSP:快速上手MP5000自動化測試系統
評論