最近測(cè)試ch582測(cè)量電池電壓通道。在不開啟低功耗的情況下,vinta引腳電壓為1.05v左右;如果開啟了HAL_SLEEP低功耗模式,vinta引腳電壓在0.3v+,同時(shí)ADC讀取的數(shù)值也偏小,不一致,導(dǎo)致根據(jù)手冊(cè)上增益公式計(jì)算的電壓差別很大。如果在低功耗模式下測(cè)量電池電壓還需要怎樣額外的配置,還是根據(jù)實(shí)際的adc采集數(shù)值自行校準(zhǔn)呢?
進(jìn)入睡眠的時(shí)候是無法進(jìn)行ADC采集的,需要喚醒的時(shí)候進(jìn)行電壓的采集。睡眠的時(shí)候vinta的電壓不是1.05V是沒問題的,正常工作的時(shí)候才會(huì)在1.05V的。
注意使用睡眠功能的時(shí)候,可以先喚醒再進(jìn)行采集,即放在tmos任務(wù)中進(jìn)行ADC電壓的采集。
是這樣的,使用582開發(fā)板測(cè)試,只要打開了HAL_SLEEP宏定義(同時(shí)屏蔽所有睡眠代碼,保持喚醒),vinta引腳電壓就在0.35v左右,是不是芯片原本就是這樣設(shè)置的,還是哪里缺少了配置?
進(jìn)入睡眠,vinta的電壓是不在1.05V的,這是正常的。
同時(shí)使用ADC檢測(cè)的時(shí)候也不可能在睡眠的時(shí)候進(jìn)行采集的,肯定是喚醒后再進(jìn)行采集,喚醒后的vinta的電壓是1.05V的。
好的,那如果開啟了HAL_SLEEP,代碼是自動(dòng)進(jìn)入睡眠的。在采集ADC的情況下,使用哪些代碼才能,才能確認(rèn)并保證當(dāng)前為喚醒狀態(tài)呢?我是從機(jī)開啟HAL_SLEEP,定時(shí)采集供電電壓并上傳主機(jī),主從機(jī)始終在連接狀態(tài)。
進(jìn)入sleep模式的睡眠,藍(lán)牙是可以保持連接的,由協(xié)議棧管理進(jìn)入睡眠和喚醒。
如果有自己的任務(wù)需要處理,則通過tmos管理ADC的任務(wù),即將ADC的采集放在TMOS里面就可以了。
TMOS使用參考:
WCH TMOS用法詳解 - debugdabiaoge - 博客園 (cnblogs.com)