1.CH573可以在低功耗模式下保持連接嗎?
2.LowPower_Shutdown喚醒后需要做什么操作,
參考demo只GPIOA_ClearITFlagBit的話,藍(lán)牙無(wú)法正常復(fù)連。目前是GPIO喚醒。
1.CH573可以在低功耗模式下保持連接嗎?
2.LowPower_Shutdown喚醒后需要做什么操作,
參考demo只GPIOA_ClearITFlagBit的話,藍(lán)牙無(wú)法正常復(fù)連。目前是GPIO喚醒。
還有一個(gè)問(wèn)題,執(zhí)行LowPower_Sleep,一樣的代碼和硬件,休眠的電流一時(shí)是ma級(jí),一時(shí)是ua級(jí),差距巨大。
1,低功耗可以保持連接, 但是這個(gè)低功耗, 需要協(xié)議棧自己去自己調(diào)用,用戶只能去屏蔽,不能去主動(dòng)調(diào)用,?
wch 的ble工程中,使能全局宏:
HAL_SLEEP=TRUE
既即可讓協(xié)議棧自動(dòng)調(diào)用休眠函數(shù)
這個(gè)低功耗是RAM保持,rtc運(yùn)行休眠時(shí)候電流CH577/578/579=2uA,CH573/571=6uA,CH581/582/583=3uA
至于平均功耗,要看配置的廣播/連接間隔
2,LowPower_Shutdown 通常是掉電模式, 喚醒后通常會(huì)重啟, 這種模式不適合處于連接/廣播態(tài)的藍(lán)牙使用.
LowPower_Shutdown 也考參考這個(gè)里面的code,http://m.findthetime.net/bbs/thread-73554-1.html
1.實(shí)測(cè),4種低功耗模式都是會(huì)斷開連接。請(qǐng)問(wèn)你們指的不會(huì)斷開連接是指定時(shí)恢復(fù)連接并發(fā)送數(shù)據(jù)?
HAL_SLEEP=TRUE,會(huì)調(diào)用sleep.c里面的函數(shù),主要是
LowPower_Sleep( RB_PWR_RAM2K | RB_PWR_RAM16K | RB_PWR_EXTEND );
LowPower_Idle();
無(wú)論自己寫還是協(xié)議棧自動(dòng)調(diào)用,功耗有下降,說(shuō)明有休眠,但是明顯斷開連接。
2.進(jìn)入低功耗模式非常玄學(xué)。一樣的代碼(無(wú)論是自己寫還是協(xié)議棧自己調(diào)用的休眠),休眠功耗一時(shí)大一時(shí)小。。。。。一時(shí)是幾百ua,一時(shí)是幾個(gè)ma(當(dāng)然這里我有其他電路的消耗,但是都不會(huì)一時(shí)一樣的吧)???
3.運(yùn)行藍(lán)牙協(xié)議棧的主頻問(wèn)題。這個(gè)是不是必須要在多少頻率以上?實(shí)測(cè)60m,48m沒有問(wèn)題,跑24m就不穩(wěn)定了(連接慢甚至連接不到),單純改個(gè)頻率。正常連接應(yīng)該是秒連,這種慢是大概10秒那樣,又不能說(shuō)他不能用,但是這樣比較有問(wèn)題。
4.dcdc問(wèn)題。開啟dcdc,一樣的就像問(wèn)題3的不穩(wěn)定。連接很慢或者連接不到,但是一旦程序關(guān)閉dcdc,一切正常得很。(這個(gè)不絕對(duì)排除layout的問(wèn)題)
1、BLE開啟休眠,編譯器HAL_SLEEP=TRUE即可,沒有TMOS任務(wù)的時(shí)候回自動(dòng)睡,有任務(wù)會(huì)提前醒來(lái)準(zhǔn)備執(zhí)行。
你可以控制喚醒,不要控制睡眠,因?yàn)锽LE一旦連接上,即使沒有用戶數(shù)據(jù)交互,也會(huì)有空包交互,一旦你控制睡眠,空包交互失?。憧梢哉J(rèn)為這個(gè)是心跳),就回導(dǎo)致斷連。
開啟HAL_SLEEP=TRUE,你用萬(wàn)用表測(cè)試,忽大忽小,是2個(gè)情況導(dǎo)致的,1個(gè)是采樣延時(shí),還有1個(gè)是芯片因?yàn)門MOS任務(wù)確實(shí)會(huì)睡眠-喚醒-睡眠-喚醒,這個(gè)是BLE實(shí)現(xiàn)低功耗的本質(zhì)原理。
建議你可以考慮搞個(gè)功率計(jì)測(cè)一下芯片電流,就能發(fā)現(xiàn),睡眠電流很低,幾個(gè)uA,工作時(shí)10+mA,低功耗就是增加睡眠時(shí)間,減少工作時(shí)間,平均電流減小。