N76E003低功耗的處理
低功耗是專案中非常重要的一部分,尤其是對於一些使用電池供電的裝置。
N76E003支援兩種低功耗模式,一種是空閒模式,一種是掉電模式,從字面意思一看就知道如果要最求最低的功耗,一定是需要使用掉電模式。在掉電模式下,作者對當前的專案應用中測試出來的最低的功耗是5uA,這個值本人認為已經是非常不錯的。針對N76E003如何實現低功耗談談個人的經驗。
首先肯定是配置掉電模式,一條set_PD語句都可以直接將MCU進入到POWER DOWN(掉電模式),如果你準備讓你的裝置從此不再醒來,只有這一條語句還是可以滿足你的要求的,因為進入到POWER DOWN模式之後所有的外設都關閉,定時器也不會再跑,如果你無法判斷你是否進入到了低功耗模式,那麼有一個很簡單的方法,本人使用的是KEIL FOR C51的開發工具,進入到除錯模式,如果成功進入到POWER DOWN 模式,那麼在除錯視窗中就會不斷的重新整理"MCU POWER DOWN"直到將MCU喚醒。
所以現在就該說說喚醒的事情。
N76E003提供了管腳觸發中斷,可以有管腳高電平中斷觸發,低電平觸發,上升沿觸發,下降沿觸發,但是在使用這個中斷的時候一定需要注意下面的一個問題,如果你需要有多個管腳觸發中斷,那麼你的IO口就一定要選對,因為,N76E003的管腳觸發必須是在同一個PORT口下才能觸發,這個可以去檢視N76E003的管腳中斷的框圖以及PICON暫存器,換句話說,如果需要兩個管腳觸發中斷,假設一個是P0.1,一個是P1.0,那麼你到底是使能哪一個PORT口呢?回到去看PICON暫存器的PIPS[1:0]兩位,你會發現,怎麼會有四種情況,所以,從這裡就可以推出,假設你先使能P0.1再使能P1.0的管腳中斷,最後P0.1的配置就被P1.0覆蓋了。所以,這個地方是需要注意的,尤其是在畫PCB板的時候,需要用到管腳中斷的IO腳,都放在同一個PORT種,比如全部放在P0口。否則之後你只能使用飛線的辦法,並且需要重新改板。
當然N76E003還支援其他的一些喚醒,但是作者的專案中一般都只要用到按鍵喚醒和USB充電喚醒,這些都是通過管腳中斷喚醒。
我的低功耗的處理方法;
(1)關閉BOD,一個是使用clr_BOD;另一個是在下載選項中,將欠壓檢測使能去掉,兩個都做吧。
(2)關閉ADC,將ADC的使能為關閉,並且關閉ADCS位
(3)尋找到功耗最低的IO口配置的方法,首先必須確保IO口的初始的配置能保證你的系統正常的執行,然後在進入休眠之前該IO口的配置,並將其賦值為1或者0,這樣說的原因是為什麼呢,因為有一些IO口是你需要正常操作的時候必須配置的模式,但是進入休眠前可以選擇更加低功耗的方式,這些都是可以根據你的硬體來進行判斷的。但是一定需要注意有上拉電阻的那個IO口嗎,優先去設定這些IO口,然後看靜態電流的大小。
(4)在喚醒之後第一時間“恢復現場”,重新初始化最開始的配置。