ZHCAAO7A May 2020 – August 2021 ADS1015 , TLA2024 , TMP61
| 溫度 (°C) | 電阻電壓 (mV) | TLA2024 數(shù)字輸出代碼 | TMP61 電壓 (mV) | TLA2024 數(shù)字輸出代碼 |
|---|---|---|---|---|
| -40 | 3012.5 | 3E1h | 1987.5 | 5E2h |
| 125 | 1781.1 | 649h | 3218.9 | 37Ah |
| 電源 | ||
|---|---|---|
| VDD | GND | |
| 5V | 0V | |
設(shè)計說明
該電路設(shè)計描述了一種使用線性熱敏電阻和 12 位 ADC 的溫度測量電路。TMP61 線性熱敏電阻的阻值在 –40°C 至 125°C 范圍內(nèi)隨溫度變化而變化,并且在遠離 ADC 放置時可用于遠程測量。TLA2024 ADC 用于測量 TMP61 和精密電阻器兩端的電壓。利用 ADC 的內(nèi)部電壓基準,該電路可作為一種緊湊的低成本、低功耗解決方案來測量溫度。該設(shè)計包含用于配置器件的 ADC 寄存器設(shè)置以及用于配置和讀取器件的偽代碼。此電路可用于 PLC 模擬輸入模塊、實驗室和現(xiàn)場儀表 以及工廠自動化和控制 等應(yīng)用中。

設(shè)計說明
元件選型
TMP61 的溫度測量范圍為 –40°C 至 125°C。在此溫度范圍內(nèi),TMP61 的電阻在 6537Ω 至 17853Ω 之間變化,具有正溫度斜率。該范圍用于在 ADC 的滿量程范圍條件下,最大限度地提高測量的分辨率。
下圖顯示了 TMP61 電阻的傳遞函數(shù)。

雖然該傳遞函數(shù)不是完全線性的,但它比標準 PTC 熱敏電阻具有更高的線性度。如前所述,需要使用查找表或多項式方程來根據(jù)電阻確定溫度。
更多有關(guān) TMP61 熱敏電阻溫度轉(zhuǎn)換的信息,請下載熱敏電阻設(shè)計工具。該工具包含電阻表、示例溫度轉(zhuǎn)換方法和代碼示例。
為進行測量,由 TMP61 和精密電阻器 (R1) 組成一個分壓器并使用電源。

首先,ADC 使用 TLA2024 多路復用器的一個通道測量 R1 兩端的電壓。在兩次測量中,先測量已知電阻,依此確定 TMP61 的阻值。然后,ADC 使用第二個通道測量 TMP61 兩端的電壓。這兩次測量會產(chǎn)生兩個輸出 ADC 代碼。
由于 R1 電阻是已知的,TMP61 的電阻可以根據(jù)兩次 ADC 測量的輸出代碼之比計算得出。R1 用作熱敏電阻阻值的比較基準,因此該電阻必須準確。電阻有任何誤差都會導致測量 TMP61 電阻時出現(xiàn)誤差。
為方便起見,選擇 R1 的基準電阻值作為 10kΩ。TMP61 在 25°C 時的室溫電阻也約為 10kΩ。在此溫度下,熱敏電阻接近溫度范圍的中點。如果 25°C 是中點,則電阻測量值和 TMP61 在整個溫度范圍內(nèi)都具有類似的電壓幅度。下圖顯示了 R1 和 TMP61 兩端的電壓與溫度的關(guān)系。

R1 和 TMP61 的電壓在大約 1.8V 到 3.2V 之間變化。即使 R1 的電壓發(fā)生變化,已知電阻仍保持 10kΩ 的恒定值。將該電壓的測量值與 TMP61 電壓的測量值進行比較,以計算電阻之間的比率。
TLA2024 具有通過縮放電容采樣實現(xiàn)的可編程增益放大器 (PGA),這并非真正的放大器。通過此 PGA,輸入范圍可擴展為整個電源范圍,并為 ADC 提供六個不同的滿量程范圍 (FSR) 設(shè)置選項。為了最大限度地提高分辨率,請選擇包含溫度測量范圍的最小 ADC 滿量程范圍。
根據(jù) –40°C 至 125°C 的溫度范圍,您可以確定兩個電阻元件兩端的電壓。第一次測量的 10kΩ 電阻兩端電壓在 3012.5mV 至 1781.1mV 范圍內(nèi)。相反,第二次測量的 TMP61 電壓在 1987.5mV 至 3218.9mV 范圍內(nèi)。在這些電壓范圍內(nèi),±4.096V FSR 可用于同時測量電阻器和 TMP61。兩者使用相同的 ADC 和 FSR,因此測量間的增益誤差差異非常小。使用此設(shè)置,R1 和 TMP61 的溫度測量范圍涵蓋 616 個代碼。由此得出的基本分辨率近似為每個代碼 0.27°C。
電阻器具有相同的電流,因此 ADC 輸出代碼與電阻成正比。不需要計算輸出電壓,TMP61 的電阻可以根據(jù)兩次測量的 ADC 代碼之比計算得出。
TLA2024 16 位 ADC 會以差分方式報告數(shù)據(jù)。即使使用 ADC 進行單端測量,ADC 也會將數(shù)據(jù)報告為差分數(shù)據(jù)。單端測量具有 15 位的分辨率。
配置寄存器設(shè)置
配置寄存器會設(shè)置 ADC 的操作模式和配置。配置包括前面各節(jié)中描述的所有設(shè)置。在 16 個位之間使用六個字段來配置器件。下表顯示了配置寄存器字段描述以及位名稱和位置、讀寫用法和復位值。
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
|---|---|---|---|---|---|---|---|
| 操作系統(tǒng) | MUX[2:0] | PGA[2:0] | MODE | ||||
| R/W-1h | R/W-0h | R/W-2h | R/W-1h | ||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DR[2:0] | 保留 | ||||||
| R/W-4h | 始終寫入 03h | ||||||
OS 位會設(shè)置操作狀態(tài)并啟動單次轉(zhuǎn)換。MUX[2:0] 位會設(shè)置輸入多路復用器以選擇模擬輸入。MODE 位會將器件設(shè)置為單沖轉(zhuǎn)換模式。DR[2:0] 位會設(shè)置器件的數(shù)據(jù)速率。有關(guān)配置寄存器的詳細信息,請參閱《TLA202x 成本經(jīng)優(yōu)化的超小型、12 位、系統(tǒng)監(jiān)控 ADC》數(shù)據(jù)表。
對于此應(yīng)用,首先設(shè)置 ADC 來測量 R1 兩端的電壓,并使用多路復用器在 AIN0 和 AIN1 之間測量。FSR 設(shè)為 ±4.096V,數(shù)據(jù)速率為 1600SPS。TLA2024 中配置寄存器字段的設(shè)置如下表所示。
| 位 | 字段 | 設(shè)置 | 說明 |
|---|---|---|---|
| 15 | 操作系統(tǒng) | 1 | 開始轉(zhuǎn)換 |
| 14:12 | MUX[2:0] | 000 101 |
單端輸入測量,AINP – AINN = AIN0 – AIN1,首次測量 R1 差分輸入測量,AINP – AINN = AIN1 – GND,第二次測量 TMP61 |
| 11:9 | PGA[2:0] | 001 | FSR = ±4.096V,將 ADC 設(shè)置為能夠測量 0V 至 VDD 的整個電源范圍 |
| 8 | MODE | 1 | 單沖轉(zhuǎn)換模式下的運行 |
| 7:5 | DR[2:0] | 100 | 數(shù)據(jù)速率 = 1600SPS |
| 4:0 | 保留 | 00011 | 始終寫入 03h |
結(jié)合字段描述中的這些位,配置寄存器值為 1000 0011 1000 0011 或 8383h。這會配置對 R1 電阻器的第一次測量。
然后在第二次測量中,將多路復用器設(shè)置為測量 TMP61 兩端的電壓。在這次測量中,唯一的變化是將輸入設(shè)置為在 AIN1 和 GND 之間測量,作為單端測量。配置寄存器設(shè)置為 1101 0011 1000 0011 或 D383h。
TLA2024 的通道循環(huán)
TLA2024 具有四個模擬輸入通道,它們來自連接到 ADC 的可配置多路復用器。溫度測量只需在 TLA2024 的 AIN0 和 AIN1 輸入進行即可(一次差分測量和一次單端測量)。但是,也可以添加最后兩個通道來循環(huán)執(zhí)行所有測量。
為進行上述測量,ADC 經(jīng)編程可循環(huán)使用所有通道,啟動每一轉(zhuǎn)換過程,等待轉(zhuǎn)換完成,然后讀回數(shù)據(jù)。然后,開始下個通道的轉(zhuǎn)換過程。在移動到下一個通道之前,對四個單端輸入通道重復每次測量。
在系統(tǒng)中重復此序列會循環(huán)使用所有通道。寫入配置寄存器會啟動轉(zhuǎn)換并將 ADC 配置為正確的運行模式。通信從寫入器件的 I2C 從器件地址開始。I2C 寫入后跟三個字節(jié)。第一個字節(jié)是 01h,用以指示配置寄存器。接下來的兩個字節(jié)是寫入配置寄存器的數(shù)據(jù)。下表中顯示了設(shè)置 R1 電阻器測量的四個字節(jié)的完整通信。
| I2C 地址: 1001000 寫入 |
地址指針: 配置寄存器 |
配置 MSB:開始轉(zhuǎn)換、設(shè)置輸入、FSR、單沖模式 | 配置 LSB:128SPS, 比較器已禁用 |
|---|---|---|---|
| 1001 0000 | 0000 0001 | 1000 0011 | 1000 0011 |
然后,主器件等待轉(zhuǎn)換完成。在本示例中,TLA2024 器件設(shè)置為默認數(shù)據(jù)速率 1600SPS。該器件使用內(nèi)部振蕩器,因此數(shù)據(jù)速率存在一些變化。為確保在 ADC 完成轉(zhuǎn)換后讀取器件,微控制器需等待轉(zhuǎn)換完成所需的最長時間。該等待時間是標稱數(shù)據(jù)周期加上 10%(用以補償器件的內(nèi)部振蕩器變化)。對于每次單沖轉(zhuǎn)換,ADC 喚醒時間都額外增加 20μs。使用以下公式計算總等待時間。
例如,如果器件以 1600SPS 運行,則標稱數(shù)據(jù)周期為 625μs。所需的等待時間將為:
讀取器件從寫入轉(zhuǎn)換寄存器 (00h) 的寄存器指針開始,然后從同一 I2C 地址再次讀取兩個字節(jié)。下面顯示了在首次配置 ADC 之后讀取 R1 電阻器測量數(shù)據(jù)。五個字節(jié)的完整通信如下表所示。
| I2C 地址: 1001000 寫入 |
地址指針: 轉(zhuǎn)換數(shù)據(jù)寄存器 |
I2C 地址: 1001000 讀取 |
讀取轉(zhuǎn)換數(shù)據(jù) MSB | 讀取轉(zhuǎn)換數(shù)據(jù) LSB |
|---|---|---|---|---|
| 1001 0000 | 0000 0000 | 1001 0001 | xxxx xxxx | xxxx xxxx |
收集 R1 的數(shù)據(jù)后,TLA2024 被配置為測量 TMP61 兩端的電壓。下表中顯示了設(shè)置 TMP61 測量的四個字節(jié)的通信。
| I2C 地址: 1001000 寫入 |
地址指針: 配置寄存器 |
配置 MSB:開始轉(zhuǎn)換、設(shè)置輸入、FSR、單沖模式 | 配置 LSB:128SPS, 比較器已禁用 |
|---|---|---|---|
| 1001 0000 | 0000 0001 | 1101 0011 | 1000 0011 |
等待 ADC 完成轉(zhuǎn)換后,使用相同的前五個字節(jié)讀取轉(zhuǎn)換數(shù)據(jù)寄存器來檢索上表中所示的數(shù)據(jù)。剩余的其他 TLA2024 通道可以通過重復此序列以任意順序循環(huán)。
測量轉(zhuǎn)換
如前所述,ADC 數(shù)據(jù)不需要轉(zhuǎn)換為電壓。ADC 輸出代碼之比相當于 R1 和 TMP61 電阻之比。使用從 R1 測量獲得的 OutputCode1 和從 TMP61 測量獲得的 OutputCode2,可以通過以下公式計算 TMP61 電阻:
請注意,對于 TLA2024,數(shù)據(jù)格式為 12 位,右側(cè)填充了 4 位零。滿量程讀數(shù)為 7FFh,將從轉(zhuǎn)換寄存器 7FF0h 中讀取。
若要將 TMP61 從電阻轉(zhuǎn)換為溫度,請下載熱敏電阻設(shè)計工具。使用該工具,可以通過查找表、四階多項式或 Steinhart-Hart 方程進行計算,從而進行轉(zhuǎn)換。
偽代碼示例
以下示例顯示了偽代碼序列以及設(shè)置器件和微控制器所需的步驟,該微控制器與 ADC 相連,以便在單沖轉(zhuǎn)換模式下從 TLA2024 獲取后續(xù)讀數(shù)。ADC 首先讀取的是基準電阻器 R1,使用 AIN0 和 AIN1 的差分測量。使用最大數(shù)據(jù)周期獲取數(shù)據(jù),留出喚醒器件、配置 ADC、進行單次轉(zhuǎn)換和設(shè)置其他 ADC 測量的時間。然后使用類似方法對 TMP61 使用單端測量 AIN1,以進行第二次測量。其他測量通道以類似方式用于寫入配置寄存器和開始轉(zhuǎn)換,等待轉(zhuǎn)換完成,然后回讀轉(zhuǎn)換。
Configure microcontroller for I2C communication, I2C address=1001000 (48h)
Loop
{
Send 90h 01h 83h 83h // Measure R1 voltage as Data1
// 開始寫入地址 48h,寫第 0 位 (90h)
// 配置寄存器 01h
// 設(shè)置 8383h,AIN0-AIN1,F(xiàn)SR=±4.096V,單沖轉(zhuǎn)換,DR=1600SPS,停止
Wait 708us // 等待數(shù)據(jù)周期,+10% 補償內(nèi)部振蕩器變化,+20us
Send 90h 00h 91h xxh xxh // Read back ADC conversion data
// 開始寫入地址 48h,寫第 0 位 (90h)
// 轉(zhuǎn)換寄存器 00h,停止
// 開始從地址 48h 讀取,讀第 1 位 (91h)
// 讀回 2 個字節(jié),停止
Send 90h 01h 83h 83h // Measure TMP61 voltage as Data2
// 開始寫入地址 48h,寫第 0 位 (90h)
// 配置寄存器 01h
// 設(shè)置 D383h,AIN1-GND,F(xiàn)SR=±4.096V,單沖轉(zhuǎn)換,DR=1600SPS,停止
Wait 708us // 等待數(shù)據(jù)周期,+10% 補償內(nèi)部振蕩器變化,+20us
Send 90h 00h 91h xxh xxh // Read back ADC conversion data
// 開始寫入地址 48h,寫第 0 位 (90h)
// 轉(zhuǎn)換寄存器 00h,停止
// 開始從地址 48h 讀取,讀第 1 位 (91h)
// 讀回 2 個字節(jié),停止
// 將 TMP61 的電阻計算為 R_TMP61
Calculate R_TMP61 from 10kOhms*Data2/Data1
// 使用熱敏電阻設(shè)計工具中的示例代碼將 R_TMP61 轉(zhuǎn)換為溫度
// 從 AIN2 和 AIN3 的測量(可選)
Send configuration for channel 2
Wait for conversion to complete
Read channel 2
Send configuration for channel 3
Wait for conversion to complete
Read channel 3
}
布局示例
下面顯示了 TLA2024 器件和 TMP61 的布局示例。使用 0402 電容器為 ADC 放置旁路電容。生成的布局約為 200mil×225mil。此測量未考慮 I2C 上拉電阻器。
布局示例設(shè)計中采用的器件
| 器件 | 關(guān)鍵特性 | 鏈接 | 其他可能的器件 |
|---|---|---|---|
| TLA2024 | TLA202x 成本經(jīng)優(yōu)化的超小型、12 位、系統(tǒng)監(jiān)控 ADC | http://www.cqwzaes.cn/product/cn/TLA2024 | 指向類似器件的鏈接 指向類似 SPI 器件的鏈接 |
| TMP61 | TMP61 ±1% 10-kΩ 線性熱敏電阻,帶 0402 和 0603 封裝選件 | http://www.cqwzaes.cn/product/cn/TMP61 |
設(shè)計參考資料
請參閱《模擬工程師電路設(shè)計指導手冊》,了解 TI 的綜合電路庫。
其他資源
如需 TI 工程師提供直接支持,請登陸 E2E 社區(qū):
TI e2e.ti.com