ch573 做藍(lán)牙遙控如何降低功耗?

目前用ch582做主機(jī),用ch573做遙控,只有一個(gè)按鍵,電池用2032紐扣電池。

第一版的電源是直接接到2032電池,ch573啟用dcdc。

ch573通過按鍵喚醒,30s沒有按鍵按下就進(jìn)入休眠。

目前來看,遙控還是很費(fèi)電,1節(jié)2032電池用一周就不行了。并且,藍(lán)牙的距離很近,只有0.5m左右。

如果想降低功耗,延長(zhǎng)電池使用時(shí)間,有怎樣的方法呢?

外部加一個(gè)dcdc輸出3.3v的電源給ch573供電,會(huì)不會(huì)好點(diǎn)?

有沒有辦法讓藍(lán)牙連接的時(shí)間短一些,目前遙控喚醒后,大概需要1-2s才能穩(wěn)定的發(fā)送按鍵信息。

我計(jì)劃如下工作流程,不知能否將功耗降低到最低:

1,遙控平時(shí)在shutdown模式。

2、在按鍵喚醒后,開啟藍(lán)牙進(jìn)行連接。

3、連接成功后,發(fā)送按鍵狀態(tài)。

4、發(fā)送完成后,進(jìn)入sleep模式,并保持連接。

5、按鍵再次按下,喚醒并發(fā)送按鍵狀態(tài)。

6、長(zhǎng)時(shí)間沒有按鍵操作(5分鐘),進(jìn)入shutdown模式。

在這種情況下,廣播間隔和連接間隔設(shè)置為多少合適呢?


遙控按鍵,按鍵觸發(fā)不頻繁,最快大概3-5秒按一次,慢則一兩分鐘按一次。

我查了一下,有一下幾個(gè)參數(shù)設(shè)置可以平衡功耗與通信速率。這幾個(gè)參數(shù)應(yīng)該如何設(shè)置呢?



// Minimum connection interval (units of 1.25ms, 6=7.5ms)?

#define DEFAULT_DESIRED_MIN_CONN_INTERVAL? ? ?6


// Maximum connection interval (units of 1.25ms, 100=125ms)

#define DEFAULT_DESIRED_MAX_CONN_INTERVAL? ? ?100


// Slave latency to use parameter update

#define DEFAULT_DESIRED_SLAVE_LATENCY? ? ? ? ?0


// Supervision timeout value (units of 10ms, 100=1s)

#define DEFAULT_DESIRED_CONN_TIMEOUT? ? ? ? ? 100



啟用HAL_SLEEP, 啟用DCDC后,再把IO仔細(xì)配置,是可以極低功耗待機(jī)的。


藍(lán)牙連接的速度跟廣播間隔有關(guān),在第一次按下按鍵喚醒藍(lán)牙功能的時(shí)候,將廣播間隔配置小一些,然后立馬連接,這樣連接速度會(huì)比較快。如果一直沒有連接,則將廣播間隔配置大一些防止功耗過高。

連接間隔配置小可能導(dǎo)致連接后的功耗比較高,但是數(shù)據(jù)收發(fā)(可以理解為按鍵的藍(lán)牙傳輸延遲)比較快。這點(diǎn)建議實(shí)測(cè)一下,如配置間隔為80-100,或者配置為800-1000,查看功耗和延時(shí)是否滿足需求。

長(zhǎng)時(shí)間待機(jī)使用shutdown就可以了,此時(shí)藍(lán)牙是停止的,可以通過GPIO中斷喚醒。喚醒后則不需要手動(dòng)調(diào)用睡眠函數(shù),HALSLEEP開啟后協(xié)議棧會(huì)調(diào)用sleep的。

DCDC功能開啟需要使用一顆電感。開啟DCDC后功耗會(huì)降低。

開啟HAISLEEP后io默認(rèn)是輸入上拉,注意如果外圍有拉低拉高引腳,則將引腳配置為跟外部的一樣,防止有壓差導(dǎo)致漏電。


提供一份按鍵喚醒與休眠參考:

在TMOS系統(tǒng)中手動(dòng)管理休眠 - JayWell - 博客園 (cnblogs.com)


好的,謝謝。

PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE,Long_Delay );?

參數(shù)的Short_Delay與Long_Delay 有什么區(qū)別么?


跟喚醒的時(shí)間有關(guān),建議使用long_delay。這里是如果使用short_delay,需要確保中斷代碼在RAM中運(yùn)行。


目前用ch592 開啟halsleep,gpio中斷喚醒,在按gpio按鍵時(shí),ch592很容易重啟,藍(lán)牙就斷開了。 關(guān)閉halsleep后,就不重啟了。?

目前,只能手動(dòng)啟動(dòng)shutdown,進(jìn)入低功耗。

這樣,在進(jìn)入shutdown之前,按按鍵ch592不重啟。


CH592開啟睡眠后使用GPIO中斷喚醒不存在重啟的現(xiàn)象。

硬件使用開發(fā)板進(jìn)行測(cè)試。

軟件排查,使用最新peripheral例程:

CH592EVT.ZIP - 南京沁恒微電子股份有限公司 (wch.cn)

MRS預(yù)編譯開啟HAL_SLEEP,將PM例程中的GPIO中斷配置完整的拷貝到peripheral例程中。然后通過中斷觸發(fā)查看是否進(jìn)入中斷正常。

image.png

image.png


你連續(xù)多按幾次,按快一點(diǎn),就復(fù)位重啟了。


建議先使用開發(fā)板進(jìn)行測(cè)試,如果使用開發(fā)板測(cè)試復(fù)現(xiàn)問題,發(fā)送郵件至郵箱lpc@wch.cn,我們這里進(jìn)行查看。

如果是使用的自己的板子,注意GPIO直連即可不需要外接電容等其他元件。


經(jīng)過測(cè)試發(fā)現(xiàn)是按鍵的消抖電容造成的復(fù)位重啟,去掉這個(gè)消抖電容,按按鍵就不復(fù)位重啟了。

請(qǐng)問,為什么開啟sleep后,按鍵的電容會(huì)影響這么大呢?

之前的設(shè)計(jì)中按鍵都會(huì)加消抖電容,為什么這里不用加呢?

?


可以去掉電容。或電容改到10pf以下。電容的瞬間放電導(dǎo)致芯片旁邊的地被抬起來,從而導(dǎo)致芯片復(fù)位。?


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频