熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 牛逼,不用外部電路檢測(cè)芯片工作電壓!

牛逼,不用外部電路檢測(cè)芯片工作電壓!

發(fā)布人:魚(yú)鷹談單片機(jī) 時(shí)間:2021-10-07 來(lái)源:工程師 發(fā)布文章

本篇筆記主要包含以下內(nèi)容(電池供電產(chǎn)品尤其實(shí)用):

1、如何進(jìn)行 ADC 校準(zhǔn),ADC 校準(zhǔn)基本原理 

2、如何直接通過(guò)內(nèi)部參考電壓得到芯片的工作電壓 

3、常見(jiàn)應(yīng)用場(chǎng)合

在一些應(yīng)用場(chǎng)合,往往需要得到芯片的工作電壓,確保芯片工作正常,比如低壓時(shí)進(jìn)行必要保護(hù)、 ADC 采集時(shí)校準(zhǔn)等。

一般情況下,我們使用分壓電阻方式獲得芯片工作時(shí)的電壓,比如 STM32 可工作在 2.0~3.6 V(你沒(méi)看錯(cuò),2.0 V 也能工作,魚(yú)鷹有段時(shí)間不小心用了 5 V 電壓,芯片竟然也能工作,沒(méi)燒壞,也是奇跡,但不建議這么干)。但是需要增加額外電路。

另外,如果你能得到芯片的工作電壓(或 ADC 的基準(zhǔn)電壓),在 ADC 校準(zhǔn)方面也是有奇效。因?yàn)槿绻愕膮⒖茧妷鹤兓?,那么你通過(guò) ADC 計(jì)算得到值必然也是有問(wèn)題的。

測(cè)量電壓值 = (ADC 值  *  參考電壓值 3.3)/ ADC 最大值 4096

即上式的 參考電壓 3.3v 變化了,那么你計(jì)算的測(cè)量電壓就和實(shí)際的不符。因?yàn)樵谶@個(gè)公式里面,你假設(shè)參考電壓穩(wěn)定不變?yōu)?3.3v ,但實(shí)際上如果因?yàn)槟撤N原因,導(dǎo)致電壓上升或下降了,那么計(jì)算的測(cè)量電壓值就是有問(wèn)題的。

所以,為了精確測(cè)量電壓,就有了校準(zhǔn)。

既然參考電壓也在變化,那么我們就直接把參考電壓也一起采集了,作為公式的參數(shù)輸入,如此一來(lái),就能保證測(cè)量電壓的穩(wěn)定性了。

但是參考電壓又應(yīng)該怎么測(cè)量呢?還是使用分壓方式嗎?我們本身就是為了讓分壓方式測(cè)量的電壓更精確才使用校準(zhǔn)的呀?這不是陷入了雞生蛋、蛋生雞的死循環(huán)?

如何跳出這一循環(huán)呢?關(guān)鍵在于是否存在一個(gè)電壓,可不隨外部電壓變化而變化,起碼不應(yīng)該在芯片(2.0 ~ 3.6 V)正常工作時(shí)而變化,超出電壓范圍外就和我沒(méi)關(guān)系了。

就此我們可以想到一種常用器件,LDO (低壓差線性穩(wěn)壓器),比如 5 V 轉(zhuǎn) 3.3 V,只要輸入電壓在芯片規(guī)定范圍內(nèi),它總是能穩(wěn)定輸出 3.3 V。

在 STM32 中,內(nèi)部都內(nèi)置了一個(gè)比較穩(wěn)定的內(nèi)部參考電壓,即 VREFINT,一般電壓 1.2 V,但由于芯片差異,這也是不確定的,所以為了更加確定這個(gè)電壓值,芯片出廠時(shí)會(huì)進(jìn)行校準(zhǔn)(又來(lái)一次校準(zhǔn)),即把實(shí)際采集到的電壓 ADC 值保存到一個(gè)地址里面。

怎么理解這次校準(zhǔn)呢?這個(gè)參考電壓內(nèi)部連接到  ADC 外設(shè)中的一個(gè)通道,而 ADC 外設(shè)使用高精度穩(wěn)壓源穩(wěn)定供電 3.0 V,而此時(shí)該參考電壓也會(huì)輸出一個(gè)電壓,大概在 1.2V, 然后通過(guò) ADC 采集這個(gè)電壓的 ADC 值,并把這一次電壓值保存在一個(gè)地址里面。

這里舉一個(gè)具體例子(參考文章里面的):

1.png

在這個(gè)芯片里面的參考電壓輸出就是 1.216 V,可以說(shuō)相當(dāng)精確了,但是另一個(gè)同款芯片就不一定就是這個(gè)電壓了(但也基本在 1.2 V 左右,不會(huì)差太多),這就是所謂的差異,也是為什么要校準(zhǔn)的原因。

那么得到這樣一個(gè)穩(wěn)定的參考電壓有什么用,它的特點(diǎn)又是什么呢?

這個(gè)參考電壓你可以理解為,只要芯片工作在 2.0 ~ 3.6 V,它總是能輸出 1.216 V(當(dāng)然是說(shuō)上面那顆芯片,其它芯片就不一定是這個(gè)電壓了)。

這樣一來(lái),我們讓 VDDA(ADC 外設(shè)的基準(zhǔn)電壓)= VDD(芯片工作電壓)。當(dāng)工作電壓下降時(shí),VDDA 電壓也在下降,也就是說(shuō) 4095 在下降前代表 3.3 V,那下降后代表的電壓值肯定更小了(還是代表 VDDA 的值,即總是代表的基準(zhǔn)電壓)。

2.png

(圖片來(lái)源:茶話 MCU) 

但是不管 VDDA(VDD) 怎么變化,Vrefint 的電壓值總是穩(wěn)定在 1.216 V(但是這個(gè) ADC 值是處于變化中的)。而這也是我們反推外部電壓的基礎(chǔ)。

于是我們可以得到下面公式(前提芯片能正常工作,即 2.0 ~ 3.6 V):

VDDA : 4095 = VREFINT : Adc_vrefint

因?yàn)?VDDA 等于 VDD,所以也可以認(rèn)為是芯片的工作電壓。在這個(gè)公式中,Adc_vrefint 的 ADC 值我們可以通過(guò) ADC 的特殊通道(VREFINT 通道)采集回來(lái),而 VREFINT 我們?cè)谇懊嫱ㄟ^(guò)某個(gè)地址的 ADC 值已經(jīng)計(jì)算出來(lái)了,就是 1.216 V,那么只有 VDDA 一個(gè)值不確定,計(jì)算它就是輕而易舉的事情了。

于是,通過(guò)采集 VREFINT 通道的 ADC 值,即可得到我們需要的 VDDA 值,也就是我們的芯片工作電壓!?。?/p>

這就是不用外部電路檢測(cè)芯片電壓的內(nèi)幕(原理)!

本來(lái)應(yīng)該一切順利,這篇筆記也有一個(gè)完美的結(jié)局,但是很不幸的是,魚(yú)鷹找遍了手冊(cè),網(wǎng)上也是到處找,始終沒(méi)有找到 STM32F1xx 系列芯片校準(zhǔn)值的保存地址,而據(jù)網(wǎng)上的說(shuō)法是,這款芯片并沒(méi)有校準(zhǔn)值,這就很讓人尷尬了(其它系列是否存在該校準(zhǔn)值,可以看對(duì)應(yīng)的數(shù)據(jù)手冊(cè),如果有道友知道 STM32F1xx的地址,可留言告知)。

但是如果你對(duì)電壓精度要求不是很高的話,你可以直接認(rèn)為參考電壓就是 1.200 V,用它來(lái)大概計(jì)算芯片的工作電壓也是問(wèn)題不大的。而如果你要更高的精度,那么你也可以像前面說(shuō)的那樣,自己找出每一顆芯片的實(shí)際參考電壓,人工校準(zhǔn)。當(dāng)然工作量就大了那么一些了(專(zhuān)門(mén)寫(xiě)一個(gè)校準(zhǔn)程序,把校準(zhǔn)值寫(xiě)入內(nèi)部 FLASH 中)。

應(yīng)用

那么這個(gè)功能一般用于什么場(chǎng)合呢?

實(shí)時(shí)檢測(cè)芯片的工作電壓,我們就知道芯片是否正常工作,從而排除芯片因?yàn)殡娫床环€(wěn)導(dǎo)致的一些問(wèn)題。同時(shí),我們可以把這個(gè)電壓值用于前面所說(shuō)的 ADC 校準(zhǔn)中,這樣不管芯片工作電壓怎么變化(前提是芯片工作電壓和 ADC 基準(zhǔn)電壓是一同一個(gè)),你測(cè)量的電壓值一定是準(zhǔn)確的(即使電壓源紋波比較大)。

這個(gè)功能對(duì)于電池供電的產(chǎn)品尤其實(shí)用,因?yàn)殡姵仉妷涸谑褂眠^(guò)程中,肯定會(huì)發(fā)生變化,這也意味著可能你的 ADC 基準(zhǔn)電壓發(fā)生了變化(當(dāng)然你也可以使用額外的穩(wěn)壓源,這樣就會(huì)增加成本)。

當(dāng)工作電壓低到一定程度時(shí),我們希望能做一些保護(hù)工作,或者保存一些參數(shù),我們?cè)撊绾巫瞿??三種方法:

1、通過(guò)上述方法,定時(shí)采集 參考電壓 的 ADC 值,從而得到工作電壓,當(dāng)電壓低于一定水平時(shí),再采取一些措施。

2、使用 ADC 模擬看門(mén)狗功能,將這個(gè)通道的值加入到看門(mén)狗中,如此一來(lái),只要電壓下降到你想要的值,就可以觸發(fā)看門(mén)狗,比方法一更及時(shí),這也是參考文章介紹的一個(gè)應(yīng)用,強(qiáng)烈建議各位道友看看這位大佬寫(xiě)的。

3、芯片內(nèi)部有低電壓保護(hù)功能,當(dāng)電壓低到一定水平時(shí),可觸發(fā)中斷,但是只有幾個(gè)固定電平可選,不像上述方法可設(shè)置任意電平。

而在已出貨的產(chǎn)品中,可能當(dāng)時(shí)我們并沒(méi)有考慮那么多,并沒(méi)有預(yù)留檢測(cè)工作電壓的電路,使用這個(gè)方法,就可以只更新軟件即可獲取工作電壓,相當(dāng)實(shí)用。

這個(gè)方法魚(yú)鷹也曾用高精度穩(wěn)壓源測(cè)試過(guò),發(fā)現(xiàn)計(jì)算出來(lái)的電壓值精度相當(dāng)高,而當(dāng)魚(yú)鷹改變電壓大小時(shí),計(jì)算出來(lái)的電壓也在實(shí)時(shí)變化,可謂實(shí)用的一匹,再也不用怕硬件工程師說(shuō)你采集的 ADC 值(軟件)有問(wèn)題了。

簡(jiǎn)單總結(jié)就是,采集 ADC 外設(shè)中的 VREFINT 通道值,通過(guò)上面公式簡(jiǎn)單計(jì)算,即可得到芯片當(dāng)前的 ADC 參考電壓,也可認(rèn)為是芯片工作電壓。代碼和普通的 ADC 采集沒(méi)多大區(qū)別,只是采集的通道由外部通道變?yōu)榱藘?nèi)部通道,所以魚(yú)鷹就不再提供具體參考例子了(可惜忘記截圖了,否則更有說(shuō)服力)。

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: 單片機(jī)

相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉