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

**URL:** <https://forum.digikey.com/t/pmod-vhdl/58107>\
**Category:** 產品技術提示\
**Tags:** texas-instruments\
**Created:** [August 4, 2025, 8:59am UTC](https://forum.digikey.com/t/pmod-vhdl/58107 "2025-08-04T08:59:07Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kevin\_6462](https://sea2.discourse-cdn.com/digikey/user_avatar/forum.digikey.com/kevin_6462/32/8856_2.png) [@Kevin\_6462](https://forum.digikey.com/u/Kevin_6462)\
**Post date:** [August 4, 2025, 8:59am UTC](https://forum.digikey.com/t/pmod-vhdl/58107/1 "2025-08-04T08:59:07Z")

</div>

[邏輯主頁](https://forum.digikey.com/t/topic/47590)

# 程式碼下載

溫濕度感測器 Pmod 控制器（頂層檔案）：[pmod\_hygrometer.vhd](https://forum.digikey.com/uploads/short-url/n7g6YRmtdRpH8w85j3I2e0htgPY.vhd) (15.1 KB)

I2C 主控（必須包含在專案中）：[i2c\_master.vhd](https://forum.digikey.com/uploads/short-url/eTzT1qKMVrvoZN2gh0DFKWRg0kQ.vhd) (14.1 KB)

# 特點

- [Digilent Pmod HYGRO](https://www.digikey.tw/zh/products/detail/digilent-inc/410-347/6679813)（適用於 [TI](https://www.digikey.tw/zh/supplier-centers/t/texas-instruments) 的 [HDC1080](https://www.digikey.tw/short/d4vcprnr) 濕度計的 Pmod）精簡介面的 VHDL 原始碼
- 透過平行介面持續輸出最新的相對濕度和溫度數據
- 處理 I2C 通訊以及從濕度計 Pmod 檢索所有數據
- 處理濕度計採集模式、濕度解析度和溫度解析度的配置
- 使用者可選擇相對濕度分辨率和溫度分辨率
- 可設定系統時脈頻率

# 介紹

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

 ![image](https://global.discourse-cdn.com/digikey/original/3X/4/e/4edeb335a9718eda5c64699d3cc3384bbb8aeff9.jpeg)

**圖 1**. Digilent 濕度計 Pmod

 ![image](https://global.discourse-cdn.com/digikey/original/3X/5/1/51c3ed58b2f4cfe06a9881ad8e40339c057196a2.jpeg)

**圖 2**. 範例實現

# 工作原理

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

## 狀態機

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

 ![image](https://global.discourse-cdn.com/digikey/original/3X/0/d/0db6ed0a9b4d71d98c668b7628a5fe6349bb9f7c.png)

**圖 3.** 狀態圖

## I2C 主控

在 _configure_、_initial_ 和 _read\_data_ 狀態下，狀態機控制 I2C 主控元件與 Pmod 上的 HDC1080 濕度計進行通訊。I2C 主控的文件可在[此處](https://forum.digikey.com/t/i2c-vhdl/58934)取得。

# 配置濕度計 Pmod 控制器

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

## 系統時脈頻率

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

## 濕度分辨率

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

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

 ![image](https://global.discourse-cdn.com/digikey/original/3X/3/7/3728c0de71b699d97095d259744026af3965cdc3.png)

**表1**. 濕度測量時間

## 溫度分辨率

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

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

 ![image](https://global.discourse-cdn.com/digikey/original/3X/a/5/a56c7eff0900206eac94d11313912e531b80a12b.png)

**表 2**. 溫度測量時間

# 連接埠描述

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

 ![image](https://global.discourse-cdn.com/digikey/original/3X/b/2/b25e15ac4315e2256ba603e160dbf655cfa68833.jpeg)

**表 3**. 連接埠描述

# 連接

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

 ![image](https://global.discourse-cdn.com/digikey/original/3X/6/b/6b52a5cdd77e9d5d1c3ac4358fc6bf960e261e84.png)

**表 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 主控（VHDL）](https://forum.digikey.com/t/i2c-vhdl/58934)
