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

邏輯主頁

程式碼下載

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

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

特點

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

介紹

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

圖 1. Digilent 溫度感測器 TCN75A Pmod

圖 2. 範例實現

工作原理

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

狀態機

此設計使用圖 3 所示的狀態機來實現其操作。啟動後,組件立即進入start狀態。它會在該狀態保持 100ms,以確保 Pmod 有足夠的時間完成上電。然後,它會進入 set_resolution 狀態,用於配置溫度感測器的解析度。完成後,它會進入 set_reg_pointer 狀態,設定溫度感測器以讀取資料。在接下來的 read_data 狀態中,它會從 Pmod 的溫度感測器收集最新的溫度數據。最後,它會在 output_result 狀態中輸出溫度資料。然後,它會在 read_dataoutput_result 狀態之間不斷循環,以保持溫度資料持續更新。隨時重置組件都會使其返回 start 狀態。

圖 3. 狀態圖

I2C 主控

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

配置溫度感測器 Pmod 控制器

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

系統時脈頻率

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

解析度

通用參數解析度定義了 TCN75A 溫度感測器的配置解析度(以 bit 為單位)。表 1 列出了相關選項及其權衡。預設值為 9bit 解析度。任何無效的解析度設定都將恢復為 9bit。


表 1. 解析度選項

Pmod I2C 地址

溫度感測器 Pmod 控制器必須具有 Pmod 的 7-bit I2C 位址才能進行通訊。最高 4bit 為「1001」,接下來的 3bit 分別由 Pmod 的跳線塊 JP3、JP2 和 JP1 設定。

通用參數 temp_sensor_addr 必須設定為此位址。預設值「1001000」對應於連接到 GND 的所有 3 個跳線。

連接埠描述

表 2 描述了溫度感測器 Pmod 控制器的連接埠。


表 2. 連接埠描述

連接

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


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

重置

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

總結

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

附加資訊

TCN75A.pdf (498.7 KB)

相關主題

I2C Master (VHDL)