如何在Python或MATLAB環境中使用ACE快速評估資料轉換器

作者 :

作者:ADI產品應用工程師Lluis Beltran Gil 摘要 評估板(EVB)及其配套軟體具有隨插即用功 […]

作者:ADI產品應用工程師Lluis Beltran Gil

摘要

評估板(EVB)及其配套軟體具有隨插即用功能,可輕鬆評估ADI產品的性能。其圖形化使用者介面(GUI)提供了直覺的方式,可進行手動配置並與該裝置通訊。但是,在更複雜的產品中,如果不能自動處理這些重複性任務,那麼在評估所有可用功能的同時,掃描產品的所有附加功能可能會變得非常耗時。

本文說明如何記錄巨集,以及如何無需開發複雜的軟體控制器代碼,也能在Python®和MATLAB®環境中以巨集來自動處理某些評估任務。本文以 AD7380 和 AD7606C-16 為例自動處理所有使用者通訊,用於掃描不同的配置,發起轉換,然後匯出結果。本文使用這些示例來自動評估過採樣數位濾波器帶給類比數位轉換器(ADC)的性能優勢。雖然本文著重介紹AD7380和AD7606C-16,但文中的資訊也適用於ADI的其他產品和應用。

簡介

ADI提供了一些方法來輕鬆評估每次發表的新產品、其可實現的性能及其特性。首先,我們的評估板由印刷電路板(PCB)(整合主要元件,例如ADC)和所需的配套產品(例如基準電壓源、驅動放大器、時脈源、電源解決方案等)組成。其次,這些電路板附帶的軟體展示了解決方案可實現的實際性能。其顯示使用該平台可以獲得的真實資料。在過去幾年中,ACE軟體1平台一直用於此目的。

在ACE平台中,每個產品都有一個外掛程式,透過簡潔明瞭的GUI存取裝置暫存器映射,從而簡化了裝置配置。

在ADC示例中,ACE通常以波形或長條圖的形式顯示原始資料,並透過FFT計算AC性能指標,例如SNR或THD。本文展示如何無需進行軟體發展自動處理這些程式。

Figure 1. A block diagram of an evaluation board’s hardware and software interaction, including ACE to Python/MATLAB communication. Figure 1. A block diagram of an evaluation board’s hardware and software interaction, including ACE to Python/MATLAB communication.

圖1. 評估板的硬體和軟體互動框圖,包括ACE與Python/MATLAB的通訊。

ACE外掛程式

圖2顯示AD7380外掛程式晶片視圖,其中包含多個按鈕,以便輕鬆配置該元件:

  1. REF允許選擇內部或外部基準電壓源
  2. OSC可以啟用過採樣,並設定過取樣速率
Figure 2. The AD7380’s ACE plug-in chip view. Figure 2. The AD7380’s ACE plug-in chip view.

圖2. AD7380的ACE外掛程式晶片視圖。

圖3顯示AD7606C-16外掛程式晶片視圖,其中多個按鈕用深藍色顯示,可用於:

  1. 透過按一下PGA符號選擇每個通道的類比輸入範圍
  2. 選擇內部或外部基準電壓源
  3. 選擇過採樣速率
  4. 配置偏置/增益/相位校準功能
  5. 配置診斷
Figure 3. The AD7606C-16’s ACE plug-in chip view. Figure 3. The AD7606C-16’s ACE plug-in chip view.

圖3. AD7606C-16的ACE外掛程式晶片視圖。

雖然前面的示例使用AD7380和AD7606C-16,但本文不止介紹這些產品,還包括與ACE配套使用和用於自動處理重複性任務的所有其他元件。每個ACE外掛程式都有自己的GUI佈局。但是,隨著產品日益變得複雜,功能也越來越多(例如診斷、校準等),手動測試這些功能也會變得更加複雜和繁瑣。ACE遠端控制能夠設定或掃描參數,例如,掃描過採樣速率和測量雜訊性能的改善程度。

設定ACE遠端控制

在開始編寫遠端控制ACE的代碼之前,需要先按照以下步驟與ACE建立通訊:

  1. 打開ACE,前往 設定
  2. 找到 IPC伺服器 選項卡,確保已啟動該伺服器
  3. 確保已分配了一個埠,最好是2357
Figure 4. Setting up communication with ACE. Figure 4. Setting up communication with ACE.

圖4. 與ACE建立通訊。

記錄巨集,產生腳本

ACE提供巨集工具功能表,透過將配置和裝置互動步驟存入巨集檔案進行記錄。產生巨集之後,便可以用其一次性自動重複所有步驟。以下是產生巨集的步驟:

  1. 打開ACE,進入 工具 >> Macro Tools
  2. 點擊圖5中藍色焦點顯示區域中圖示右側的記錄巨集命令按鈕。
  3. 開始執行裝置互動,例如更改參數、向記憶體映射中的暫存器輸入值、擷取資料等。在瀏覽和使用GUI時,命令視窗中會填入資訊。
  4. 在記錄要輸入的所有操作/設定之後,點擊停止記錄巨集命令按鈕。按鈕在上述同一位置。將會自動彈出命令窗口。

例如,在記錄巨集時,使用者使用圖2中所示的按鈕配置過採樣速率和解析度模式。命令窗口如圖5所示。

Figure 5. Command window and macro tools. Figure 5. Command window and macro tools.

圖5. 命令視窗和巨集工具。

在這個視窗中,可以查看記錄的所有步驟,甚至可以跳過/中斷任何無需自動產成的步驟,然後將整個程式匯出到一個可選擇語言的腳本中,如圖5中紅色框線部分所示。

記錄巨集檔案之後,可以再次保存和播放,以重複之前執行過的步驟。ACE有一個內建功能,可以產生腳本,按照所選的受支援的語言執行記錄的操作。所以,按照之前的清單,接下來的步驟是:

  1. 點擊圖5中藍色顯示區域右側的產生圖示,打開腳本產生器視窗。
  2. 從C#、MATLAB或Python中選擇所需的語言,然後點擊匯出

之後,可以將該代碼導入IDE中執行。以此段代碼為基礎,增加額外的功能,例如儀器控制,建構自動測試台,以獲取測量結果。2接下來的章節中顯示的示例使用Visual Studio Code或MATLAB,這些示例僅使用產品評估板來執行雜訊分析,不使用任何額外的裝置。如需查找用於管理、儲存或對所收集的資料進行繪製之代碼示例,請瀏覽 wiki.analog.com 並搜尋相關的評估板。

Figure 6. An ACE generated code editor using Python language. Figure 6. An ACE generated code editor using Python language.

圖6. 使用Python語言的ACE代碼產生編輯器。

使用Python自動處理評估任務

上一節中產生的.py檔可用於輕鬆啟用和重複之前記錄的一系列操作。此外,通過編輯這些腳本和自動處理某些任務,還能獲得更大的益處。在前面的示例中,在AD7380 ACE外掛程式中設定了過採樣速率和解析度,對產生的巨集進行了編輯,以便使用輸入參數,如圖7所示。注意,預設情況下,這些巨集被稱為execute_ macro(),但這個名稱可更改為更具描述性的名稱。

Figure 7. Edit the Python function in order to use input parameters. Figure 7. Edit the Python function in order to use input parameters.

圖7. 編輯Python函數,以便使用輸入參數。

這些巨集現在可以在內部調用實現迴圈,掃描過取樣速率值,顯示雜訊性能如何隨著過取採速率提高而改善,以及啟用兩個額外的解析度位元帶來的好處。

Figure 8. These instructions are for a loop that sweeps the oversampling ratio and turns on and off the two extra bits of resolution. Figure 8. These instructions are for a loop that sweeps the oversampling ratio and turns on and off the two extra bits of resolution.

圖8. 這些指令用於實現迴圈,該迴圈掃描過採樣速率,打開和關閉兩個額外的解析度位元。

因此,Python示例代碼存取匯出的資料檔案,讀取ACE外掛程式測量的SNR資料,並透過串列監控器報告資料。如表1所示,過採樣可以改善雜訊性能3,但在某些情況下,為了展示AD7380顯示為18位元字而非16位元字帶來的真正優勢,需要兩個額外的解析度位元。

表1. AD7380 SNR與過採樣速率的關係
OSR 動態範圍 (正常解析度) 動態範圍 (提高解析度, 18位)
1 90.8 dB 90.8 dB
2 92.6 dB 93.6 dB
4 94.3 dB 96.5 dB
8 95.8 dB 99.2 dB
16 96.3 dB 100.4 dB
32 96.5 dB 100.5 dB

使用MATLAB自動處理評估任務

與Python示例一樣,自動產生的代碼也可以匯出用於MATLAB中,在本例中產生一個.m文件。在本例中,巨集被定義為一個函數,但可以對巨集進行編輯,以便使用輸入參數。以下MATLAB示例使用AD7606C-16板。

同樣,可以透過自動使用ACE來輕鬆評估AD7606C-16的過採樣優勢。圖9顯示一個MATLAB函數,經過編輯後可以使用多種參數,例如輸送量、樣本數量、介面類別型(串列或並行)、基準電壓源(內部或外部)、過採樣速率、數位佈線數量或類比輸入範圍。

Figure 9. Edit the MATLAB function in order to use input parameters. Figure 9. Edit the MATLAB function in order to use input parameters.

圖9. 編輯MATLAB函數,以便使用輸入參數。

這個特定函數可以在主代碼中使用,以快速啟用不同配置的資料擷取,輕鬆執行多個AD7606C-16指標比較,例如:

  • 雜訊性能與過取樣速率
  • 性能與輸送量
  • 性能與類比輸入範圍
  • 內部基準電壓源與外部基準電壓源
  • 序列介面與平行介面

等等。注意,這只是以AD7606C-16為例;根據所評估的產品不同,可能需要執行多種不同的性能評估。

您可以瀏覽wiki.analog.com4 查看AD7606C-16的使用說明,包括可用的原始程式碼。其中介紹了如何產生巨集代碼,也提供了後期處理資料的示例。OversamplingSweep.m示例掃描過取樣速率,針對每個值繪製代碼長條圖。如圖10所示,過採樣速率越大,代碼長條圖越窄。表2也顯示代碼的峰對峰值分佈如何隨過採樣降低。

Figure 10. Histograms of codes show how the noise performance improves with the oversampling ratio. A simple script allows to sweep across the many oversampling ratio options available (up to 256). Figure 10. Histograms of codes show how the noise performance improves with the oversampling ratio. A simple script allows to sweep across the many oversampling ratio options available (up to 256).

圖10. 代碼長條圖顯示雜訊性能如何隨過採樣速率改善。可使用簡單腳本掃描可用的多種過取樣速率選項(高達256個)。

表2. AD7606C-16的代碼分佈與過採樣速率的關係
OSR 峰對峰值 (LSB)
1 16
2 13
4 12
8 10
16 7
32 6
64 4
128 4
256 2

結論

新型ACE平台可作為新評估板的軟體框架,由於能夠記錄巨集,對於希望加快ADI產品評估工作速度的硬體設計人員而言是一項有利的工具。這些巨集透過產業通用的程式設計語言,例如Python或MATLAB助力實現測試自動化。自動處理這些任務反過來又會加快產品評估和選型,協助加速上市,縮短硬體設計週期。有關此主題和其他主題,可瀏覽EngineerZone獲取更多支援,也可瀏覽wiki.analog.com取得更多遠端控制示例。

參考電路

1分析 | 控制 | 評估(ACE)軟體」。 ADI

2AD5791 ACE Remote Control」。 ADI,2020年2月。

3 Jonathan Colao。 「適用於微型電機驅動應用的快速反應、光學編碼器回饋系統」。 類比對話,第54卷第2期,2020年4月。

4AD7606B/C ACE遠端控制」。 ADI,2021年2月。

發表評論