01
引言
STM32 在內(nèi)部都集成了一個(gè)溫度傳感器,STM32U5 也不例外。這個(gè)位于晶圓上的溫度傳感器雖然不太適合用來測(cè)量外部環(huán)境的溫度,但是用于監(jiān)控晶圓上的溫度還是挺好的,以防止芯片過溫運(yùn)行。
02
問題
2.1.問題詳情
某客戶在使用 STM32U575ZIT6Q 時(shí),使用 ADC4 對(duì)內(nèi)部溫度傳感器 VSENSE進(jìn)行采樣計(jì)算,但是總覺得溫度值不對(duì)。那么,應(yīng)該如何對(duì)內(nèi)部溫度傳感器信號(hào)的 ADC 采樣進(jìn)行計(jì)算以得到正確溫度值呢?
2.2. 問題分析
首先,我們應(yīng)該看一下參考手冊(cè)如何描述內(nèi)部溫度傳感器的。參考手冊(cè)說明了,未經(jīng)校準(zhǔn)的內(nèi)部溫度傳感器更適用于對(duì)溫度變化而非絕對(duì)溫度進(jìn)行測(cè)量的應(yīng)用。為了提高溫度傳感器測(cè)量的準(zhǔn)確性,ST 在生產(chǎn)過程中將校準(zhǔn)值存儲(chǔ)在每個(gè)器件的系統(tǒng)存儲(chǔ)器中,用戶可以在應(yīng)用中去讀取這些數(shù)據(jù)。
這個(gè)校準(zhǔn)值是寫在數(shù)據(jù)手冊(cè)的,如圖 1 所示。
圖1. 內(nèi)部溫度傳感器
這張表格告訴我們,校準(zhǔn)值 TS_CAL1 的數(shù)值位于存儲(chǔ)器地址 0x0BFA0710 和0x0BFA0711,也就是它是一個(gè) 16-bit 的數(shù)據(jù);同理,校準(zhǔn)值 TS_CAL2 的數(shù)值位于存儲(chǔ)器地址 0x0BFA0742 和 0x0BFA0743。
再回過頭來看一下參考手冊(cè)是如何描述怎么讀取內(nèi)部溫度傳感器的溫度的,如圖 2 所示。
圖2. 讀取溫度傳感器
這里描述的是如何讀取內(nèi)部溫度傳感器的溫度,前面主要介紹 ADC 的配置和對(duì)溫度傳感器的采樣,最后根據(jù)得到的數(shù)據(jù)使用公式進(jìn)行計(jì)算,得到溫度值。前面的 ADC 的配置和采樣就不說了,我們主要來看一下公式的使用。
其中,
Temperature (in ℃) 就是內(nèi)部傳感器的當(dāng)前溫度結(jié)果;
TS_DATA 為內(nèi)部傳感器當(dāng)前溫度對(duì)應(yīng)的采樣值;
TS_CAL2_TEMP 為校準(zhǔn)值 2 的溫度值,TS_CAL2 為對(duì)應(yīng)的采樣值,對(duì)于 STM32U5來說,TS_CAL2_TEMP 為 130℃,對(duì)應(yīng)的采樣值存儲(chǔ)在 0x0BFA0742 和 0x0BFA0743;
TS_CAL1_TEMP 為校準(zhǔn)值 1 的溫度值,TS_CAL1 為對(duì)應(yīng)的采樣值,對(duì)于 STM32U5來說,TS_CAL1_TEMP 為 30℃,對(duì)應(yīng)的采樣值存儲(chǔ)在 0x0BFA0710 和 0x0BFA0711;
對(duì)于 STM32U5 來說,公式可簡化為:
那么,是不是直接讀取了 TS_CAL2 和 TS_CAL1,放到公式里,然后通過 ADC 得到TS_DATA,就可以直接算溫度了呢?接著往下看。
2.3. 問題解決
在室溫下使用 NUCLEO-U575ZI-Q 做個(gè)實(shí)驗(yàn):
讀取 0x0BFA0742 和 0x0BFA0743 得到 TS_CAL2 為 0x155D,也就是 0d5469;讀取 0x0BFA0710 和 0x0BFA0711 得到 TS_CAL1 的值為 0x102F,也就是 0d4143。
此時(shí),由 ADC1 對(duì)內(nèi)部溫度傳感器進(jìn)行采樣轉(zhuǎn)換,得到 TS_DATA 為 0xEAA,也就是0d3754。
那么,如果直接放進(jìn)去算:
室溫下,這個(gè) 0.66℃顯然不對(duì)。
2.3.1. 使用 ADC1 測(cè)量內(nèi)部溫度傳感器的溫度值
再來看數(shù)據(jù)手冊(cè)里對(duì)校準(zhǔn)值的描述,如圖 3 所示。
圖3. 溫度傳感器校準(zhǔn)值重要參數(shù)
這個(gè)表格有一個(gè)非常重要的參數(shù),就是 ADC1 的參考電壓,它是 3.0V,而 NUCLEOU575ZI-Q 板子的 ADC 參考電壓為 3.3V。所以,這兩個(gè) TS_CAL1 和 TS_CAL2 對(duì)于NUCLEO-U575ZI-Q 中的 STM32U575ZIT6Q 的內(nèi)部溫度傳感器肯定是不能直接用的,需要先換算為 3.3V 參考電壓的值才行。
所以,新的值計(jì)算如下:
TS_CAL2 = 5469 × 3 / 3.3 = 4972
TS_CAL1 = 4143 × 3 / 3.3 = 3766
再回到剛才的實(shí)驗(yàn)中,計(jì)算的公式如下:
這次算出來的結(jié)果為 29℃就對(duì)了。
2.3.2. 使用 ADC4 測(cè)量內(nèi)部溫度傳感器的溫度值
那對(duì)于 ADC4 是否也是一樣的呢?
首先,要知道在 STM32U5 中,ADC1 為 14-bit SAR ADC,而 ADC4 為 12-bit SARADC。同樣的這塊板子,同樣的室溫下,由 ADC4 對(duì)內(nèi)部溫度傳感器進(jìn)行采樣轉(zhuǎn)換得到的值是 0x3AA,也就是 0d938。
要使用 0d938 計(jì)算溫度值,TS_CAL1 和 TS_CAL2 也要相應(yīng)轉(zhuǎn)為 12 位的數(shù)據(jù)才行。將它們由 14 位數(shù)據(jù)轉(zhuǎn)為 12 位的數(shù)據(jù),相當(dāng)于就是右移 2 位,也相當(dāng)于除以 4。
由于參考電壓仍然是 3.3V,所以針對(duì) ADC4 的 TS_CAL2 和 TS_CAL1 應(yīng)該計(jì)算如下:
TS_CAL2 :由讀取到的 0x155D 右移 2 位,得到 0x557,也就是 0d1367,再換算成3.3V 的 。
TS_CAL2 = 1367 × 3 / 3.3 = 1243也可以直接使用上面 ADC1 例子的值來計(jì)算。
TS_CAL2 = 4972 / 4 = 1243
TS_CAL1 :由讀取到的 0x102F 右移 2 位,得到 0x40B,也就是 0d1035,再換算成3.3V 的 。
TS_CAL2 = 1035 × 3 / 3.3 = 941
也可以直接使用上面 ADC1 例子的值來計(jì)算。
TS_CAL2 = 3766 / 4 = 941
計(jì)算的公式如下:
算出來的結(jié)果也是 29℃。
03
小結(jié)
當(dāng)我們使用芯片的內(nèi)部溫度傳感器計(jì)算內(nèi)部溫度時(shí),需注意校準(zhǔn)值是使用哪個(gè) ADC、在什么參考電壓下得到的。當(dāng)實(shí)際應(yīng)用與內(nèi)部溫度傳感器校準(zhǔn)時(shí)所使用 ADC 及條件不一樣時(shí),應(yīng)該對(duì)存儲(chǔ)單元里的校準(zhǔn)值先做計(jì)算轉(zhuǎn)化,然后才可以使用參考手冊(cè)所提供的公式進(jìn)行計(jì)算,否則將會(huì)得到錯(cuò)誤值。
審核編輯:劉清
-
溫度傳感器
+關(guān)注
關(guān)注
48文章
3037瀏覽量
158800 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7644瀏覽量
167132 -
晶圓
+關(guān)注
關(guān)注
53文章
5145瀏覽量
129657 -
adc
+關(guān)注
關(guān)注
99文章
6681瀏覽量
548980 -
STM32
+關(guān)注
關(guān)注
2293文章
11030瀏覽量
364214 -
ADC采樣
+關(guān)注
關(guān)注
0文章
134瀏覽量
13173
原文標(biāo)題:實(shí)戰(zhàn)經(jīng)驗(yàn) | 基于 STM32U5 片內(nèi)溫度傳感器正確測(cè)算溫度
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
挑選正確溫度傳感器的方法

基于LL庫實(shí)現(xiàn)STM32U5 LPTIM功能

怎么讀取51片內(nèi)溫度傳感器的溫度?
振動(dòng)傳感器項(xiàng)目外包,有實(shí)戰(zhàn)經(jīng)驗(yàn)的電子工程師聯(lián)系我。
開關(guān)電源維修方法和實(shí)戰(zhàn)經(jīng)驗(yàn)
KE04在片內(nèi)集成溫度傳感器使用方法

C8051單片機(jī)片內(nèi)溫度傳感器測(cè)量環(huán)境溫度誤差的分析論文

嵌入式項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn)

實(shí)戰(zhàn)經(jīng)驗(yàn) | STM32U5 ADC 自校準(zhǔn)不成功的問題分析

STM32項(xiàng)目實(shí)戰(zhàn):基于STM32U5的智能燈光控制系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

STM32項(xiàng)目實(shí)戰(zhàn):基于STM32U5的火災(zāi)報(bào)警系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

STM32項(xiàng)目實(shí)戰(zhàn):基于STM32U5的智能大棚溫控系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

評(píng)論