硬件環(huán)境: STM8SF103 TSSOP20封裝
因為項目需要用到AD采樣電池電壓,于是便開始了使用STM8S ADC進(jìn)行采樣,也就有了下文。
手冊上對STM8S ADC的管腳描述如下:
STM8SF103這款芯片是TSSOP 20管腳封裝,如下:
STM8SF103這款芯片能用的是5個AD采樣通道,分別是AIN2~AIN6。其實是還有一個通道AIN7,但手冊并沒有對其描述。
這里還有一個很奇怪的地方,從ST資料中找到一個與上面的表數(shù)據(jù)不同的地方,如:
很明顯的說STM8S103是存在這個AIN7通道的,再加上另外5個通道,應(yīng)該是6個通道才對。
要做AD采樣,首先要解決的就是AD的參考電壓,之前查看手冊上并沒有描述AIN7通道,有的僅僅是幾個外部采樣通道。AIN7通道是內(nèi)部通道,用于提供一個恒定的電壓參考值。
從別的資料找到下面這句話,很明顯是存在這么一個通道的,后面測試也證明這個是正確的。
第一步已經(jīng)解決了,找到了一個參考電壓,但這個電壓到底是多少,手冊也沒有找到痕跡。只能是根據(jù)公式自己算出來。
Vin = (ADC * Vref) / 1024
Vref = Vin * 1024 / ADC (根據(jù)Vin這個恒定的值算出參考電壓,這里的參考電壓就是VCC且是變化的。實際上真正的參考電壓是由AIN7提供的1.22V)
使用VCC做為參考電壓,VCC很明顯可以使用萬用表先測出來,1024是因為STM8S這款的AD是10位精度。
我測試的VCC為3.19V,AD值基本上是出于穩(wěn)定狀態(tài)392左右,392 * 3.19 / 1024 = 1.221171875 自然就算出了參考電壓值,這里取1.22。為了證明這個值是正確的,
使用電池供電,VCC為2.93V。分別采樣8次,計算每一次的VCC電壓。
n AD值 VCC
1 432 2.89V
2 429 2.91V
3 429 2.91V
4 429 2.91V
5 430 2.90V
6 430 2.90V
7 430 2.90V
8 431 2.89V
另外又使用3.19V進(jìn)行測試,采樣值也是很接近的,平均3.20左右。
還有另外一款STM8S903也有該采樣通道AIN7,所有的AIN通道有8個,7個內(nèi)部加上1個外部通道。如果沒有能夠提供參考電壓,則必須使用外部器件供一個參考電壓給AINx??蛇x用TL430。
由此可以看出: AIN7通道一定是存在于STM8S103的,并且參考電壓為1.22V。
后記:
經(jīng)本人測試確實如以上網(wǎng)友所說。
參考:使用STM8SF103 ADC采樣電壓
我用STM32AD大半年也沒有覺得哪里不好。只有設(shè)置和程序不對的問題,AD多通道,不同通道之間不需要延時等待。最多做了8通道加一溫度,數(shù)值都是對的。但是AD采樣的值不是固定的,有個上下波動。這個和參考電壓有關(guān)。加軟件濾波有助于改善波動。(具體版上有ADC值校準(zhǔn)的帖子,可以搜下)
其次,ADC采樣多通道必須要用DMA傳輸,DMA傳輸要注意設(shè)置buffersize以及起始地址。AD多通道之間要排好順序。再則就是先使能DMA,再使能ADC轉(zhuǎn)換。順序不要錯了,否則有的你玩的。
使用STM8SF103 ADC采樣電壓
http://blog.csdn.net/liuyu60305002/article/details/7071245
http://bbs.21ic.com/icview-107700-1-1.html
http://bbs.21ic.com/icview-812992-1-1.html
數(shù)字電源設(shè)計全過程(圖和代碼)
http://bbs.21dianyuan.com/188786.html#revert_content_729541
參考:沒有外部基準(zhǔn)的單片機如何獲得精準(zhǔn)AD
因為沒有外部基準(zhǔn)電壓,而采用內(nèi)部基準(zhǔn)往往就是VDDA的電壓,面對大批量產(chǎn)品,往往此電壓差異較大,如何消除此影響呢,
1、可以采用一路AD連接一個類似TL431的外部參考標(biāo)準(zhǔn)電壓來獲得VDDA的電壓從而消除VDDA的不定值對要測AD的影響。
2、VDDA上連接一個與電源電壓相差不大的高精準(zhǔn)電源,比如可以用TL431組成一個3.3v基準(zhǔn),但考慮TL431基準(zhǔn)2.5,穩(wěn)壓到3.3需要加電阻匹配,電阻的誤差也要考慮,所以此方案沒采用。
評論
查看更多