溫度感測器 ADT7420 Pmod 控制器(VHDL)

邏輯主頁

程式碼下載

溫度感測器 Pmod 控制器(頂層檔案):pmod_temp_sensor_adt7420.vhd (10.4 KB)

I2C 主控(也必須包含在專案中):i2c_master.vhd (14.1 KB)

特點

  • Digilent Pmod TMP2 Rev. B(適用於 ADI 的 ADT7420 溫度感測器的 Pmod)精簡介面的 VHDL 原始碼
  • 透過平行介面持續輸出最新溫度數據
  • 處理 I2C 通訊以及從溫度感測器 Pmod 檢索所有數據
  • 處理溫度感測器解析度的配置
  • 可設定系統時脈頻率

介紹

本文詳細介紹了一個 VHDL 組件,用於處理與 Digilent 溫度感測器 ADT7420 Pmod 的接口,如圖 1 所示。圖 2 展示了該溫度感測器 Pmod 控制器整合到系統中的典型範例。如圖所示,此溫度感測器 Pmod 控制器連接到 Pmod 連接埠並執行交易以配置溫度感測器並收集數據。資料會持續更新並顯示在一個簡單的平行介面上,該介面可以連接到使用者邏輯或 FPGA 的輸出連接埠。

圖 1. Digilent 溫度感測器 ADT4720 Pmod

圖 2. 範例實現

背景

ADI 的 ADT7420 是一款高精度數位溫度感測器,設定為 16-bit 時(如本設計所示),解析度可達 0.0078 攝氏度。

工作原理

溫度感測器 Pmod 控制器主要由一個狀態機和一個 I2C 主控組件組成。

狀態機

此設計使用圖 3 所示的狀態機來實現其操作。啟動後,組件立即進入啟動狀態。它會在該狀態保持 100ms,以確保 Pmod 有足夠的時間完成上電。然後,它會進入設定解析度狀態,將溫度感測器的解析度配置為 16bit。暫停狀態會根據 ADT7420 規格書的要求,在 I2C 交易之間插入 1.3us的「匯流排空閒時間」。在接下來的讀取資料狀態中,它會從 Pmod 的溫度感測器收集最新的溫度資料。最後,它會在輸出結果狀態中輸出溫度資料。然後,它會在暫停、讀取資料和輸出結果狀態之間不斷循環,以保持溫度資料的定期更新。雖然圖中沒有顯示,但任何時候重置元件都會使其回到啟動狀態。

圖 3. 狀態圖

I2C 主控

set_resolutionread_data 狀態下,狀態機控制 I2C 主控組件與 Pmod 上的溫度感測器進行通訊。 I2C 主控的文件可在此處取得。

配置溫度感測器 Pmod 控制器

透過設定實體中的通用參數來配置溫度感測器 Pmod 控制器。

系統時脈頻率

通用參數 sys_clk_freq 必須設定為溫度感測器 Pmod 控制器在其 clk 連接埠上提供的系統時脈頻率。

Pmod I2C 地址

溫度感測器 Pmod 控制器必須具有 Pmod 的 7-bit I2C 位址才能進行通訊。最高五個有效位元為「10010」,接下來的 2bit 分別由 Pmod 的跳線塊 JP2 和 JP1 設定。跳線斷開時,該位元設定為「1」,跳線閉合時,該位元設定為「0」。

通用參數 temp_sensor_addr 必須設定為此位址。預設值「1001011」對應於兩個跳線均保持斷開狀態(上拉至 VCC)。 (注意:Digilent 的參考手冊中有一個錯誤,錯誤地在該地址中插入了一個額外的「0」。)

I2C 上拉電阻

與大多數 Digilent Pmod 開發板不同,Pmod TMP2 不包含上圖 2 所示的 I2C 上拉電阻。如果沒有這些電阻,I2C 匯流排將無法正常運作。

使用者可以透過在電路中連接 2.2kohm 電阻來解決此問題,如圖所示。

連接埠描述

表 1 列出了溫度感測器 Pmod 控制器的連接埠。

表 1. 連接埠描述

連接

此 Pmod 有一個 8 針連接器。表 2 提供了此連接器的引腳排列。溫度感測器 Pmod 控制器的連接埠需要分配給連接到此連接器的 FPGA 引腳,具體如下表所示。J1 連接器的兩排在 Pmod 板上連接在一起,因此只需將一側連接到 FPGA。

表 2. 溫度感測器 Pmod 接腳排列及與溫度感測器 Pmod 控制器的連接

Pmod 還配有 2 個跳線。JP1 和 JP2 用於設定 Pmod 的 I2C 位址。詳情請參閱上文「Pmod I2C 地址」部分。

重置

reset_n 輸入連接埠必須為邏輯高電平,溫度感測器 Pmod 控制器組件才能運作。此連接埠上的邏輯低電平會非同步重置元件。重置期間,元件會中止目前與 Pmod 的傳輸,並清除溫度資料輸出和 i2c_ack_err 輸出。重置解除後,溫度感測器 Pmod 控制器將重新啟動工作。它會重新配置溫度感測器,並恢復溫度資料的收集和輸出。

結論

這款溫度感測器 ADT7420 Pmod 控制器是一款可程式邏輯元件,可與 Digilent 的 PmodTMP2(溫度感測器 ADT7420 Pmod)介接。它負責處理與該 Pmod 的所有通訊,以配置 Pmod 的溫度感測器,並在平行輸出上提供持續更新的溫度資料流。

附加資訊

ADT7420 datasheet.pdf (5.7 MB)

相關主題

I2C Master (VHDL)