數位電位器 AD5160 Pmod 控制器(VHDL)

邏輯主頁

下載

DPOT AD5160 Pmod 控制器(頂層檔案):pmod_dpot_ad5160.vhd (7.4 KB)

SPI 主控(也必須包含在專案中):spi_master.vhd (8.8 KB)

特點

  • Digilent Pmod DPOT(適用於 ADIAD5160 數位電位器的 Pmod)精簡介面的 VHDL 原始碼
  • 透過簡單的平行介面接收資料來設定數位電位器
  • 處理與 DPOT Pmod 的所有序列通訊
  • 可設定的系統時脈頻率

介紹

本文詳細介紹了一個 VHDL 元件,用於處理與 Digilent 的 DPOT AD5160 Pmod 的接口,如圖 1 所示。圖 2 展示了此數位電位器 Pmod 控制器整合到系統中的典型範例。如圖所示,DPOT Pmod 控制器連接到 Pmod 連接埠並執行傳輸以設定數位電位器的電阻。資料被閂鎖在一個簡單的平行介面上,該介面可以連接到使用者邏輯或 FPGA 上的輸入連接埠。

圖 1. Digilent DPOT Pmod

圖 2. 範例實現

背景

DPOT Pmod 提供了一個 10kohm 數位電位器,其解析度為 8bit,來自 AD5160 系列。電阻 RWBRWA 透過 SPI 介面設定。最小電阻由滑動接點接觸電阻 RW 決定,通常為 60ohm。(但在我的範例中,測量結果為 89ohm。)該電位器在 A 和 B 端點之間有 256 個接觸點,滑動觸點可以存取這些接觸點,因此電阻的設定增量為每位元約 39ohm。公式 1 和公式 2 分別定義了電阻 RWARWB

工作原理

DPOT Pmod 控制器使用一個簡單的狀態機和 SPI 主控元件來設定數位電位器的滑動端位置。

狀態機

此設計使用圖 3 所示的狀態機來實現其操作。啟動後,組件立即進入 start 狀態。它會保持此狀態 100us,以確保 Pmod 有足夠的時間完成上電。然後,它會進入 pause 狀態。在此狀態下,它會確保與 DPOT 的傳輸間隔至少 100ns(AD5160 規格書規定最小間隔為 40ns)。然後,它會解除 busy 訊號,以指示 DPOT Pmod 控制器已準備好與 DPOT Pmod 進行新的傳輸,並進入 ready 狀態。它會在 ready 狀態下等待,直到 dpot_tx_ena 啟用訊號置位,此時它會閂鎖新傳輸的資料並進入 send_data 狀態。在此狀態下,它與 Pmod 執行傳輸,然後返回 pause 狀態。雖然圖中未顯示,但隨時重置組件都會使其返回 start 狀態。

圖 3. 狀態圖

SPI 主控

send_data 狀態期間,狀態機控制 SPI 主控組件與 Pmod 上的數位電位器進行通訊。 SPI 主控的文件可在此處取得。

SPI Master 配置為 CPOL = 0 和 CPHA = 0,以滿足 AD5160 數位電位器的要求。

配置時脈

此 DPOT Pmod 控制器的時脈配置是透過為 ENTITY 中定義的 GENERIC 參數 clk_freqspi_clk_div 賦值來實現的。 clk_freq 參數必須設定為 clk 輸入連接埠提供的系統時脈頻率(以 MHz 為單位)。公式 3 定義了 spi_clk_div 值的計算方法。

image

當中 fclk 是提供的系統時脈的頻率(以 MHz 為單位)。

例如,程式碼中指定的預設值為 spi_clk_div = 1。這是因為該組件是使用 50MHz 的系統時脈進行開發和測試的。50/50 = 1。任何 clk_freq ≤ 50 MHz 都會導致預設值 spi_clk_div = 1。

公式 4 定義了由此產生的串列時脈頻率 fsclk

此計算使串列時脈保持在數位電位器的最大指定通訊頻率 25MHz 以下。

傳輸

DPOT Pmod 控制器在其 busy 輸出上指示其可用性。當 busy 訊號為「0」時,控制器已準備好接受要傳送至 DPOT Pmod 的傳輸。置位 dpot_tx_ena 輸入會閂鎖 dpot_data 的目前值。閂鎖後,控制器會置位 busy 訊號,表示傳輸正在進行中,因此目前無法使用。傳輸完成後,控制器會再次置位 busy 訊號,表示已準備好接受另一個要求。

傳輸範例

圖 4 展示了一個傳輸範例。busy 訊號為「0」。使用者邏輯隨後置位 dpot_tx_ena 訊號,將 dpot_data 匯流排上的資料傳送到 DAC。控制器置位 busy 訊號,表示請求已閂鎖,此時使用者邏輯可以置位 dpot_tx_ena 訊號。控制器將串列通訊傳送到 DPOT Pmod,然後在傳輸完成且 100ns 暫停完成後置位 busy

如果 dpot_tx_ena 訊號未置位,則新的傳輸請求將被閂鎖,並在控制器可用後立即開始。

image

圖 4. 傳輸範例

連接埠描述

表 1 描述了 DPOT Pmod 控制器的連接埠。

表 1. 連接埠描述

連接

此 Pmod 有一個 6 針連接器 J1。表 2 提供了此連接器的引腳排列。DPOT Pmod 控制器的連接埠需要指派給連接到此連接器的 FPGA 引腳,具體如下表所示。

表 2. DPOT Pmod 引腳排列及與 DPOT Pmod 控制器的連接

重置

reset_n 輸入連接埠必須為邏輯高電平,DPOT Pmod 控制器元件才能運作。此連接埠上的邏輯低電平會非同步重置元件。重置期間,元件會中止目前與 DPOT Pmod 的傳輸,並將 busy 輸出設為高電位以指示其不可用。重置解除後,DPOT Pmod 控制器將重新啟動工作。

結論

此 DPOT Pmod 控制器是一款可編程邏輯元件,可與 Digilent 的 DPOT AD5160 Pmod 介接。它簡化了與數位電位器的數據通訊,從而設置其電阻。

相關主題

SPI Master (VHDL)