加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

如何在低功耗模式下debug MCU?

2022/09/30
1189
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
正常情況下,通過SWD在線調(diào)試時,一旦芯片進入低功耗模式(Stop或者Standby),調(diào)試就會斷開。原因是進入Stop或者Standby模式后,內(nèi)核時鐘就停止了。如果想在調(diào)試低功耗代碼時還可以正常通過調(diào)試接口debug,有沒有什么辦法呢?

以STM32F030 Stop模式為例,方法是將DBGMCU_CR寄存器的DBG_STOP位置1。

可以看到DBG_STOP置1時,F(xiàn)CLK和HCLK將處于開啟狀態(tài),由內(nèi)部RC振蕩器提供時鐘,所以還可以繼續(xù)debug。

之前在調(diào)試低功耗功能時,我都是通過加打印信息來調(diào)試的。所以在看到此功能時,就迫不及待的去試了一下。

使用官方HAL庫ExamplesPWRPWR_CurrentConsumption 工程,將原例程簡化了下,使能 DBG_STOP,之后通過WFI方式進入stop模式,然后while(1)里翻轉(zhuǎn)LED,通過按鍵方式喚醒。

理論上述代碼應(yīng)該是先進入低功耗,之后按鍵喚醒的話,LED才開始閃爍。

但是實際現(xiàn)象卻是LED直接就閃爍了,這是怎么回事呢?

后來經(jīng)過分析,是因為HAL庫在初始化時,使用了systick同時開啟了中斷,當(dāng)DBG_STOP設(shè)置位1時,systick 因為時鐘在,所以還繼續(xù)正常運行,導(dǎo)致了systick中斷喚醒了MCU,所以進入了到while(1)里,

當(dāng)我們把systick中斷關(guān)掉

這時就進入了低功耗。因為HAL_Delay 函數(shù)也使用了systcik,所以這里也注釋掉,或者也可以換成其他的延時函數(shù)。HAL庫在時鐘初始化前就開啟了systick,原因是后面的延時函數(shù)用的就是systcik實現(xiàn)的。

這時我們?nèi)龠\行,可以看到debug連接沒有斷掉,也沒有再進入while(1)里,此時進入了低功耗函數(shù),可以通過調(diào)試窗口的stop來驗證,可以看到一直停在下面WFI里,需要注意的是,stop之后再單步或者全速運行,就會從WFI跳出繼續(xù)向下運行。所以執(zhí)行_WFI()函數(shù)時,必須是全速執(zhí)行,不可以單步執(zhí)行。

重新復(fù)位全速運行后,在while(1)里加斷點,可以看到?jīng)]有進入到斷點,這時按一下按鍵喚醒MCU,就跳入到斷點里了。這樣現(xiàn)象就正確了。

最后總結(jié)一下:

1) 通過將DBG_STOP置1,可以支持在低功耗模式下debug MCU。

2) HAL庫里使用systick中斷,使用WFI進入低功耗前,需要注意將中斷關(guān)掉。如果使用WFE進入低功耗,需要將systick使能計數(shù)標(biāo)志位置0。

關(guān)注公眾號,掃碼加入嵌入式交流群:

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
R38-32.768-12.5 1 Raltron Electronics Corporation Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, HALOGEN FREE, ROHS AND REACH COMPLIANT PACKAGE-2
$0.06 查看
FOD817BSD 1 onsemi 4-Pin DIP Phototransistor Optocouplers, 1000-REEL
$0.56 查看
KSZ9567RTXI 1 Microchip Technology Inc IC ETHERNET SWITCH 7PORT 128TQFP

ECAD模型

下載ECAD模型
$15.08 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

TopSemic,讓芯片使用更簡單。 專注分享:嵌入式,單片機,STM32,ARM,RTOS,Linux, 軟硬件,半導(dǎo)體,電子技術(shù)等相關(guān)內(nèi)容。