濕度和溫度感測器 Pmod 控制器 (VHDL)

邏輯主頁

程式碼下載

溫濕度感測器 Pmod 控制器(頂層檔案):pmod_hygrometer.vhd (15.1 KB)

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

特點

  • Digilent Pmod HYGRO(適用於 TIHDC1080 濕度計的 Pmod)精簡介面的 VHDL 原始碼
  • 透過平行介面持續輸出最新的相對濕度和溫度數據
  • 處理 I2C 通訊以及從濕度計 Pmod 檢索所有數據
  • 處理濕度計採集模式、濕度解析度和溫度解析度的配置
  • 使用者可選擇相對濕度分辨率和溫度分辨率
  • 可設定系統時脈頻率

介紹

本文詳細介紹了一個 VHDL 組件,用於將 FPGA 與 Digilent 的數位溫濕度感測器(濕度計)Pmod 介面連接起來,如圖 1 所示。圖 2 展示了此濕度計 Pmod 控制器整合到系統中的典型範例。如圖所示,濕度計 Pmod 控制器連接到 Pmod 連接埠並執行傳輸以配置 Pmod 並收集資料。相對濕度資料和溫度資料會持續更新,並透過簡單的平行介面顯示出來。

圖 1. Digilent 濕度計 Pmod

圖 2. 範例實現

工作原理

濕度計 Pmod 控制器主要由一個狀態機和一個 I2C 主控組件組成。

狀態機

此設計使用圖 3 所示的狀態機來實現其操作。啟動後,組件立即進入start 狀態。它會在該狀態保持 100ms,以確保 Pmod 有足夠的時間完成上電。然後,它會進入configure 狀態,在此狀態下設定濕度計的採集模式以測量濕度和溫度,並設定濕度計相對濕度和溫度測量的解析度。在initiate 狀態下,它透過執行指標寫入傳輸來觸發測量,將濕度計的位址指標設為 0x00。pause狀態會實現暫停,暫停時間等於濕度計依序完成溫度和濕度測量所需的時間。在接下來的 read_data 狀態中,控制器從 Pmod 檢索測量結果。最後,它會在 output_result 狀態中輸出資料。然後,它會在 initiatepauseread_dataoutput_result 狀態之間不斷循環,以保持濕度和溫度資料的更新。儘管狀態圖中未顯示,但隨時重置組件都會使其返回 start 狀態。

圖 3. 狀態圖

I2C 主控

configureinitialread_data 狀態下,狀態機控制 I2C 主控元件與 Pmod 上的 HDC1080 濕度計進行通訊。I2C 主控的文件可在此處取得。

配置濕度計 Pmod 控制器

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

系統時脈頻率

通用參數 sys_clk_freq 必須設定為透過其 clk 連接埠提供給濕度計 Pmod 控制器的系統時脈頻率。

濕度分辨率

通用參數 humidity_resolution 設定相對濕度測量的解析度和 relative_humidity 輸出的資料寬度。有效選項為 8、11 和 14bit。預設值為14bit。將 humidity_resolution 設為任何無效值也會導致解析度為14bit。

濕度測量的持續時間取決於分辨率,因此該值也會影響輸出資料更新的頻率。表1列出了每種解析度的測量時間。

表1. 濕度測量時間

溫度分辨率

通用參數 temperature_resolution 用於設定溫度測量的分辨率和溫度輸出的資料寬度。有效選項為 11bit 和 14 bit。預設值為 14bit。將 temperature_resolution 設為任何無效值也會導致解析度為 14bit。

溫度測量的持續時間取決於分辨率,因此該值也會影響輸出資料更新的頻率。表 2 列出了每種解析度的測量時間。

表 2. 溫度測量時間

連接埠描述

表 3 描述了濕度計 Pmod 控制器的連接埠。

表 3. 連接埠描述

連接

此 Pmod 有一個 6 針連接器。表 4 提供了此連接器的引腳排列。濕度計 Pmod 控制器的連接埠需要分配給連接到此連接器的 FPGA 引腳,具體如下表所示。

表 4. 濕度計 Pmod 引腳排列及與濕度計 Pmod 控制器的連接

Pmod 還配有兩條跳線。必須啟用(即連接)這些跳線才能連接 SCL 和 SDA 所需的 I2C 上拉電阻。

重置

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

結論

這款濕度計 Pmod 控制器是一款可編程邏輯元件,可與 Digilent 的 Pmod HYGRO(數位溫濕度感測器 Pmod)進行介面。它負責處理與 Pmod 的所有通訊,以配置 Pmod 的採集模式和數據分辨率,並透過並行輸出提供持續更新的相對濕度和溫度數據流。

相關主題

I2C Master (VHDL)