久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9479|回復: 33
打印 上一主題 下一主題
收起左側

關于STC8H單片機掉電模式電流問題

  [復制鏈接]
跳轉到指定樓層
樓主


數據手冊上說,單片機掉電模式電流0.4ua,但是我測試掉電模式電流有1.5ma
網上有人說有漏電流,或者其他功能打開了。
電路用的是LQFP32轉DIP32的轉接板,代碼也很簡單。就只是測掉電模式電流。
有高手指點下嗎?謝謝
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2021-10-11 10:06 | 只看該作者
掉電模式電流是指關閉芯片所有輸出和內置外設的電流。
回復

使用道具 舉報

板凳
ID:161164 發表于 2021-10-11 10:21 | 只看該作者
本帖最后由 lkc8210 于 2021-10-11 10:23 編輯

我試過把STC15的IO 設為高阻然后進入掉電
也發現還有幾毫安
然后把IO設為準雙向再進入掉電
就能實現幾微安
你可以從這方向試一下


回復

使用道具 舉報

地板
ID:624769 發表于 2021-10-11 12:22 | 只看該作者
首先, 掉電模式的 0.4uA,只是指這么模式,消耗的電流是0.4uA(還是3.3V的前提),而不是說在這個模式下,整個單片機的電流只有0.4uA,換個說法,你要達到1uA以下這個電流,需要滿足很多條件:

首先,供電電壓3.3V, 其次所有的IO都切換到高阻模式(包括P3.0,3.1),然后關閉所有中斷,關閉所有定時器,關閉所有比較器,以及其他各種檢測用模塊,等等。而比如低壓檢測模塊會消耗10uA電流,找遍整本手冊你都找不到任何可以關閉他的地方,即使不開低壓中斷,LVDF標志始終會動作。所以,看過就看過了,別覺得可以達到就好了。

回復

使用道具 舉報

5#
ID:554500 發表于 2021-10-11 12:49 | 只看該作者


IO口默認高阻,其他功能我也沒打開啊。
回復

使用道具 舉報

6#
ID:624769 發表于 2021-10-11 13:41 | 只看該作者
18701931930 發表于 2021-10-11 12:49
IO口默認高阻,其他功能我也沒打開啊。

大多數IO默認高阻,但是,不包括P3.0 P3.1, 所以要手動高阻。其他功能很多是默認開,需要你手動關閉,在所有IO懸空,設為高阻,關閉各種可以關閉的模塊后,電流<50uA 是沒什么問題的,但是要達到他說的0.4uA是不可能的,只有他們實驗室才能出來這個結果。

LVD就很可笑了,能夠關閉的只是ELVD中斷, 但是 LVD低壓檢測根本沒有辦法關,ISP燒錄器可以選擇LVD檢測閥值就是沒有關閉LVD檢測的選項。所以關閉LVD只是在STC內部實驗室才存在。
STC的手冊,前后矛盾的地方有很多,你也不用盡信。
回復

使用道具 舉報

7#
ID:554500 發表于 2021-10-11 21:39 | 只看該作者
void LOW_Mode()
{
        P0M1=0xFF;  //高阻態
        P0M0=0x00;
        P1M1=0xFF;
        P1M0=0x00;
        P2M1=0xFF;
        P2M0=0x00;
        P3M1=0xFF;
        P3M0=0x00;
        P5M1=0xFF;
        P5M0=0x00;
       
        P0NCS=0xFF; //禁止施密特觸發器
        P1NCS=0xFF;
        P2NCS=0xFF;
        P3NCS=0xFF;
        P5NCS=0xFF;
       
        P0IE=0x00; //禁止數字輸入
        P1IE=0x00;
        P3IE=0x00;
       
       
        _nop_();
        _nop_();
        PCON=0x02; //進入掉電模式
        _nop_();
        _nop_();
        _nop_();
        _nop_();
}




正常測電流為690ua,用手觸摸芯片電流變成438ua.
不知道還有什么模塊沒關的。

回復

使用道具 舉報

8#
ID:377210 發表于 2021-10-11 21:43 | 只看該作者
8H的沒有測過,8G系列的測過,掉電模式下電流用萬用表測確實只有0.4uA。你要關閉所有外設,內部定時器、AD電源、IO設置為高阻等,最簡單的就只焊接芯片,這樣一下就可以測出來是哪里問題了
回復

使用道具 舉報

9#
ID:624769 發表于 2021-10-11 23:16 | 只看該作者
18701931930 發表于 2021-10-11 21:39
void LOW_Mode()
{
        P0M1=0xFF;  //高阻態

嗯,至少比你一開始1.5mA小了很多了,

需要關的還有很多,太久了,也記不清了。
好像比較器有個濾波要關,比較器正負極都要切換到內部, 然后有幾個和時鐘相關的分頻器要關,ADC通道要切換到空,
你可以打開寄存器列表,對照著關看看。
回復

使用道具 舉報

10#
ID:401564 發表于 2021-10-12 00:13 | 只看該作者
進入掉電模式之后,所有的端口會保持進入掉電模式前一刻的狀態,這一點很重要,也就是說,進入掉電模式之前,端口的電平不會改變,而且片上所有的端口寄存器也都不會改變
解決這個問題實際上是很簡單的
單片機只留下電源的濾波電容,其實所有的外圍元件都不要,然后進入掉電模式,電流如果是在正常待機電流范圍內,說明你的掉電模式代碼是沒有問題的,剩下就是外圍元件的問題了
外圍電路不同,進入掉電模式之前的端口處理也會不同,有的要高電平,有的要低電平
至于ADC和比較器什么,并不是電流達到1.5mA的原因
回復

使用道具 舉報

11#
ID:554500 發表于 2021-10-12 20:38 | 只看該作者
lkc8210 發表于 2021-10-11 10:21
我試過把STC15的IO 設為高阻然后進入掉電
也發現還有幾毫安
然后把IO設為準雙向再進入掉電

謝謝!
按照你的方法,把所有IO設為準雙向,然后設置掉電喚醒定時器并進入掉電模式。
電流變成2.5ua  。那這樣的話,每次喚醒后要重新配置IO模式了。

void main()
{
        P_SW2 = 0x80;
       
        Delay2000ms();
       
        P0M0 = 0x00;
        P0M1 = 0x00;
        P1M0 = 0x00;
        P1M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
        P3M0 = 0x00;
        P3M1 = 0x00;
        P4M0 = 0x00;
        P4M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;

       
        WKTCL=0x10;  //掉電喚醒定時器 5S
        WKTCH=0xA7;
       

        while(1)
        {
                        _nop_();
                        _nop_();
                        PCON=0x02; //進入掉電模式
                        _nop_();
                        _nop_();
                        _nop_();
                        _nop_();

                        P0=~P0;
        }
}


評分

參與人數 1黑幣 +5 收起 理由
ax6808 + 5

查看全部評分

回復

使用道具 舉報

12#
ID:554500 發表于 2021-10-12 20:40 | 只看該作者
188610329 發表于 2021-10-11 23:16
嗯,至少比你一開始1.5mA小了很多了,

需要關的還有很多,太久了,也記不清了。

謝謝指導!
減小了將近一半,但不是很滿意 啊。
回復

使用道具 舉報

13#
ID:155507 發表于 2021-10-12 20:44 | 只看該作者
定時喚醒定時器功耗大約是1.8uA
回復

使用道具 舉報

14#
ID:959346 發表于 2021-10-12 22:18 | 只看該作者
18701931930 發表于 2021-10-11 21:39
void LOW_Mode()
{
        P0M1=0xFF;  //高阻態

懸空的IO,要設置為輸出模式,使IO口的電平固定。如果設置為輸入模式,IO口懸空時電平會有很微小的變化,會導致uA級微小的電流,電流大小跟具體使用芯片的輸入電路有關。
回復

使用道具 舉報

15#
ID:624769 發表于 2021-10-12 22:32 | 只看該作者
18701931930 發表于 2021-10-12 20:38
謝謝!
按照你的方法,把所有IO設為準雙向,然后設置掉電喚醒定時器并進入掉電模式。
電流變成2.5ua   ...

配置 P0~P5 的IO模式,總共花不了 2us 的時間,既然目的是省電,僅僅切換IO模式就能達到目的,已經算工作量很小的了,知足吧。

給你一個快速更改IO模式的頭文件,你好輕松點。
http://www.zg4o1577.cn/bbs/dpj-211950-1.html
回復

使用道具 舉報

16#
ID:975054 發表于 2022-3-26 18:37 | 只看該作者
本帖最后由 ax6808 于 2022-3-27 22:39 編輯

最后實踐證明:
省電主要靠低壓MCU+掉電喚醒模式;掉電前關閉所有不必要的功能如ADC等等等等,所有I/O設置為準雙向并寫1,喚醒后恢復原I/O口設置及有關功能,這樣最省電!!!!!!

剛測試了一下STC8H1K08核心板無外圍電路,掉電喚醒前后電流變化:
記錄:1.裸板只有P12 led;PD前 VDD=5V,3.2mA, VDD=3.7V,2.6mA;
       2. PD前全設雙向置1(只P12=0排除LED影響),PD后設回:VDD=5V,0.37mA降為0.3mA;VDD=3.7V時效果明顯!!!,30μA降為2μA(2mA檔);
          5V不知道為什么多那么多,暫未經過進一步的測試考究。

另外,手冊描述注意:
當有I/O口被選擇為ADC輸入通道時,必須設置PxM0/PxM1寄存器將I/O口模式設置為輸入模式。(這個好理解,必須的);
另外如果MCU進入掉電模式/時鐘停振模式后,仍需要使能ADC通道,則需要設置PxIE寄存器關閉數字輸入,才能保證不會有額外的耗電;(如何關閉數字輸入????我只是PD前關閉了ADC功能也一樣省電吧?)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

17#
ID:975054 發表于 2022-3-26 18:40 | 只看該作者
Jiang_YY 發表于 2021-10-12 22:18
懸空的IO,要設置為輸出模式,使IO口的電平固定。如果設置為輸入模式,IO口懸空時電平會有很微小的變化, ...

不是的!

5. 特別注意:由于 STC8H 系列的所有 I/O(除了 ISP 下載口 P3.0/P3.1 外)在上電后都是高
阻輸入模式, I/O 外部電平不固定,此時如果 MCU 直接進入掉電模式/停機模式,會導致
I/O 有額外的耗電,所有在 MCU 進入掉電模式/停機模式前,必須將所有 I/O 口都根據實
際情況設置好 I/O 口的模式,對于所有沒有使用的外部懸空的 I/O 都需要設置為準雙向口,
并固定輸出高電平。特別是部分管腳的芯片,由于芯片內部有部分 I/O 口并沒有打線到外
部管腳,所以這些 I/O 也是處于懸空狀態的,這部分 I/O 也需要設置為準雙向口,并固定
輸出高電平。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

18#
ID:975054 發表于 2022-3-26 18:47 | 只看該作者
最后實際3.3V時2μA左右就對了:掉電模式本身0.4μA,掉電喚醒定時器1.5μA,總共約2μA就對了!!!
VDD為5V時大很多!
我前面用的USB轉串口的3.7V電壓腳(本來有3.3V腳的,我把它跟VCC腳焊在一起了沒分開,而VCC腳只是5V串了2個二極管后約3.7V出來的)。
回復

使用道具 舉報

19#
ID:975054 發表于 2022-3-27 22:53 | 只看該作者
今天又測試了一下我的實際模塊STC8+硬件I2C電路板。VCC3.7V鋰電池供電,VDD LDO3.3V,TSSOP20封裝,3個腳為ADC高阻輸入,6個腳接I2C或控制腳及2個腳串口準雙向,其余空腳設準雙向寫1,4秒掉電喚醒一次...最終掉電后的電流也只做到29μA就再也下不來了(掉電前已關閉ADC、串口中斷,I/O口設為全高阻等等電流都不會更小了).理論上還可以降低掉電后的電流的???LDO有幾μA,I2C傳感器2腳本身極省電模式最多幾μ安有10K上拉電阻查詢模式。。。。
也不知道掉電期間還有什么內部功能可以關閉進一步省電。
回復

使用道具 舉報

20#
ID:975054 發表于 2022-3-27 23:04 | 只看該作者
關于STC8等單片機I/O口的準雙向模式有關問題討論
1、準雙向一般只能用于數字輸入輸出,輸入時為弱上拉狀態,端口只有兩種狀態:高或低:很好理解!


2、準雙向口讀外部狀態前,要先鎖存為1,才能讀到外部正確的狀態:不太理解!
(1) 什么叫鎖存為1?? 就是通俗的寫1吧?
我的開關直接接端口和地,之所以端口設為準雙向并寫1(跟懸空腳的正確處理方法完全相同!!),判斷開關狀態(查詢非中斷)只用到“if某端口=0/1”就好,沒搞其他代碼,也沒有"等待兩個時鐘_nop_()",。是因為這樣既簡單可靠又省電,而且還省掉了外接上/下拉電阻。   若設置為“高阻輸入”去判斷按鍵狀態,還得額外增加合適阻值的上拉、下拉或分壓電阻,STC內部已有好幾種上拉電阻可用,不是自找麻煩么。
(2) 什么叫“讀取外部正確的狀態”??
只用于沒外接上/下拉電阻的按鍵或開關狀態之列的識別么?

如I2C外設的2腳連接及其讀寫,我感覺只設雙向就好,無需也不用寫1,實際我也沒寫1,也沒有"等待兩個時鐘_nop_()",讀寫都沒有發現問題,是因為I2C等外設的數據線上已經有上拉電阻了么?

那么;下面例程中的“雙向口讀寫操作”中的讀部分,不知道究竟該怎么準確應用?P00 = 1讀取端口前先使能內部弱上拉電阻還等待兩個時鐘?
P00 = 1; //讀取端口前先使能內部弱上拉電阻
_nop_(); //等待兩個時鐘
_nop_(); //
CY = P00; //讀取端口狀態
...

(3)解釋的比較完整的(也只說了基本原理還是沒說到具體使用方面的點子上):

準雙向口向端口寫1:就是向鎖存器寫1,也就是讓其口輸出FF。

為什么,是這樣的,給鎖存器寫1,那么鎖存器的反向端就輸出0,那么和它相接的MOS管也就在截止狀態,也就是呈高阻態,這樣口上數據就會從讀引腳的三態緩沖器上正確的輸入,如果不寫1,那么鎖存器上次鎖存的可能為0,那么反向端有可能出現1,這樣和反向端相接的MOS管就倒通,也就是直接拉到地,那么不管你口上輸入什么信號都會拉成低電平,輸入就錯了。

雙向口與準雙向口的區別主要是:

準雙向口I/O口操作時做數據輸入時需要對其置1,否則若前一位為低電平,后一位輸入的電平為高則MOS管拉不起來導致出錯。而雙向口則不需要做此動作,因為雙向口有懸浮態。
準雙向口只能有效的讀取0,而對1則是采用讀取非零的方式,就是讀入的時候要先向接口上寫1,然后再讀。真正的雙向口正如其名,就是真正的雙向io不需要任何預操作可直接讀入讀出。
回復

使用道具 舉報

21#
ID:975054 發表于 2022-3-30 01:48 | 只看該作者
本帖最后由 ax6808 于 2022-3-30 21:55 編輯
ax6808 發表于 2022-3-26 18:37
最后實踐證明:
省電主要靠低壓MCU+掉電喚醒模式;掉電前關閉所有不必要的功能如ADC等等等等,所有I/O設置 ...

查到怎么"關閉數字輸入"了,有空實測一下究竟還有沒油水??  

STC8H的最新手冊(20211221版)說的較詳細(之前版本還漏了P4IE到P7IE等):
6.5.1電源控制寄存器( PCON)
PD:時鐘停振模式/掉電模式/停電模式控制位
0:無影響
1:單片機進入時鐘停振模式/掉電模式/停電模式, CPU 以及全部外設均停止工作。喚醒后硬件自動
清零。( 注:時鐘停振模式下, CPU 和全部的外設均停止工作,但 SRAM 和 XRAM 中的數據是一直維持不變的)
9.1.2端口模式配置寄存器( PxM0, PxM1)
注意:當有I/O口被選擇為ADC輸入通道時,必須設置PxM0/PxM1寄存器將I/O口模式設置為輸入模式。
另外如果MCU進入掉電模式/時鐘停振模式后,仍需要使能ADC通道,則需要設置PxIE寄存器關閉數字輸入,才能保證不會有額外的耗電。
( 進入掉電模式CPU以及全部外設均停止工作了,“仍需要使能ADC通道...“是什么意思???我還干脆ADC完就直接將ADC_POWER都關掉了!)

9.1.7 端口數字信號輸入使能控制寄存器( PxIE)
數字信號輸入使能控制
0:禁止數字信號輸入。若 I/O 被當作比較器輸入口、 ADC 輸入口、 觸摸按鍵輸入口或者為外部晶振接入腳等模擬口時,進入時鐘停振模式前,必須設置為 0,否則會有額外的耗電。
1:使能數字信號輸入。若 I/O 被當作數字口時,必須設置為 1,否 MCU 無法讀取外部端口的電平。
特別注意(新版手冊才有加注): 對于具有 RTC 功能的 MCU,當 RTC 的時鐘源選擇外部 32.768K 的晶振時,需要將晶振接入腳 P1.6 和 P1.7 的數字通道關閉,否則進入 STOP 模式后會有額外的漏電。(將寄存器 P1IE的 bit6 和 bit7 都設置為 0 即可關閉 P1.6 和 P1.7 的數字通道)。
17.1.1 ADC控制寄存器( ADC_CONTR)
ADC_POWER: ADC 電源控制位
0:關閉 ADC 電源
1:打開 ADC 電源。
建議進入空閑模式和掉電模式前將 ADC 電源關閉,以降低功耗 。

ADC_CHS[3:0]: ADC 模擬通道選擇位
(注意:被選擇為 ADC 輸入通道的 I/O 口,必須設置 PxM0/PxM1 寄存器將 I/O 口模式設置為高阻輸入模式。另外如果 MCU 進入掉電模式/時鐘停振模式后,仍需要使能 ADC 通道,則需要設置PxIE 寄存器關閉數字輸入通道,以防止外部模擬輸入信號忽高忽低而產生額外的功耗)。


回復

使用道具 舉報

22#
ID:975054 發表于 2022-3-31 00:40 | 只看該作者
ax6808 發表于 2022-3-27 22:53
今天又測試了一下我的實際模塊STC8+硬件I2C電路板。VCC3.7V鋰電池供電,VDD LDO3.3V,TSSOP20封裝,3個腳為A ...

剛才最后測試驗證了:我的STC8G模塊,掉電前設置PxIE寄存器,每關閉一路ADC數字輸入通道,掉電后流還可進一步減少15~17μA!  對于超低功耗產品設計,意義很大。
原來實測掉電后總約29.8μA,現在已降到16.2μA!(還不知道有沒有其他油水,呵呵! 學無止境!)
回復

使用道具 舉報

23#
ID:401564 發表于 2022-3-31 16:14 | 只看該作者
ax6808 發表于 2022-3-31 00:40
剛才最后測試驗證了:我的STC8G模塊,掉電前設置PxIE寄存器,每關閉一路ADC數字輸入通道,掉電后流還可進 ...

還在整這個???
STC8G壓根就不需要設置PxIE,我從來不管這個寄存器
我一直在用這個單片機,最小系統掉電模式下.4.2V供電的待機電流就是3.5uA,可能是萬用表測量有誤差,但大概就是這個值左右
跟設置不設置PxIE沒有關系,從來都是默認值
如果你的電路超過這個值了,那就是外圍其它電路在耗電,我幾個月就回復過這個帖子了
我從來不設置PxIE,掉電模式電流一直是在5uA以下的
ADC引腳也不需要重新設置,只要關閉ADC電源就行了
所有STC8G的端口設置只在程序初始化的時候設置一次而已,待機電流一樣的能在5uA以下
回復

使用道具 舉報

24#
ID:975054 發表于 2022-4-1 01:07 | 只看該作者
Y_G_G 發表于 2022-3-31 16:14
還在整這個???
STC8G壓根就不需要設置PxIE,我從來不管這個寄存器
我一直在用這個單片機,最小系統掉電模 ...

感謝回復!!!
未見你有過回復,或許刪除了;
反正我就2個ADC、1個I2C、2個開關、4個控制腳、其他空腳:
目前做到:總16.2μA-LDO7μA-ADC分壓電阻6μA-I2C傳感器待機0.2μA≈3μA(STC8掉電時電流,萬用表校準過)。
目前我的比較精確的實測數據事實就如此,都反復歸零驗證過的;

之前ADC轉換完就已經關了ADC電源的(不然電流就更大了),反正目前掉電前若不不關閉數字輸入,就一定會每一路多16μA。

后來沒啥事,反正俺近期有的是時間,能省的電必須省!反正目前的STC5最低約3μA(±0.5μA精度)我是做到了。待機時間延長3倍!!非常可觀!原來總約48μA,現在16.2μA(少2路ADC影響約2*16μA).其實還可省零點幾μA但沒什么實際意義了.呵呵!不如結案也罷!

回復

使用道具 舉報

25#
ID:975054 發表于 2022-4-1 01:18 | 只看該作者
Y_G_G 發表于 2022-3-31 16:14
還在整這個???
STC8G壓根就不需要設置PxIE,我從來不管這個寄存器
我一直在用這個單片機,最小系統掉電模 ...

最后回復一下:
你從來不設置PxIE,掉電模式電流一直是在5uA以下的?: 我之前有1路ADC平時低電平時就測不出來影響,但碰到高電平時就會多出16μA,后來仔細對比檢查2路才發現這個問題(另1路一上電就是高電平)。
ADC引腳也不需要重新設置,只要關閉ADC電源就行了:看到手冊有寫我才會去驗證,果然如此!
所有STC8G的端口設置只在程序初始化的時候設置一次而已:真不是這樣子的,STC手冊不斷更新中...呵呵,你懂的。
回復

使用道具 舉報

26#
ID:401564 發表于 2022-4-1 11:32 | 只看該作者
是的,在我代碼中,不設置PxIE,但掉電電流一直都是可以在5uA以下的,如果你的做不到,要么是代碼有問題,要么是外圍電路的問題
你ADC分壓電阻還耗電????你不會是直接就串聯兩個電阻來采樣吧?在電池供電中怎么可能用這種采樣方法呢?
端口只要初始化一次是我自己的操作,跟STC數據手冊更不更新是沒有沒有關系的,設定好之后就不想動了,也沒有必要動了
看好外圍電路,掉電操作之前把電平固定,就不會有耗電的了
比如,IIC,掉電之前,SCL和SDA全部高電平,這不就得了?
回復

使用道具 舉報

27#
ID:975054 發表于 2022-4-1 22:52 | 只看該作者
外圍電路的問題:已嚴格審查;

ADC分壓電阻還耗電????你不會是直接就串聯兩個電阻來采樣吧?在電池供電中怎么可能用這種采樣方法呢?
答:鋰電池電壓ADC檢測,滿電是4.2V,超過MCU的VDD3.3V,必須串聯電阻降壓到VDD以下檢測,我用2個330KΩ以上電阻串聯,靜態電流<6.4μA,電阻大些還可降低。

端口只要初始化一次是我自己的操作,跟STC數據手冊更不更新是沒有沒有關系的,設定好之后就不想動了,也沒有必要動了;看好外圍電路,掉電操作之前把電平固定,就不會有耗電的了;
答:掉電操作之前把電平固定,就不會有耗電的了,這個確實對的!ADC、外接晶振等高阻模擬腳除外!

比如,IIC,掉電之前,SCL和SDA全部高電平,這不就得了?
答:對的!!!
回復

使用道具 舉報

28#
ID:401564 發表于 2022-4-1 23:14 | 只看該作者
ax6808 發表于 2022-4-1 22:52
外圍電路的問題:已嚴格審查;

ADC分壓電阻還耗電????你不會是直接就串聯兩個電阻來采樣吧?在電池供電中 ...

參考這個電路,要進行電池電壓的ADC時,把ADC_GND電平拉低
進行ADC完了之后,把ADC_GND電平拉高
ADC這一塊就是基本不耗電了,而且,這個電路不會影響ADC的精度


評分

參與人數 1黑幣 +12 收起 理由
ax6808 + 12 精益求精!

查看全部評分

回復

使用道具 舉報

29#
ID:975054 發表于 2022-4-5 02:23 | 只看該作者
Y_G_G 發表于 2022-4-1 23:14
參考這個電路,要進行電池電壓的ADC時,把ADC_GND電平拉低
進行ADC完了之后,把ADC_GND電平拉高
ADC這一塊 ...

感謝哥們回復!!!
確實ADC外圍電路耗電還可優化,只需多一個引腳資源,一路ADC就又可總體省下好多μA!!
對于極低功耗設計至關重要。
前期主要研究驗證MCU本身耗電問題去了!
再次感謝!再次感謝!
回復

使用道具 舉報

30#
ID:186901 發表于 2022-8-6 10:29 | 只看該作者
剛才測了一下,io默認高阻進掉電,15uA左右。然后io口全部設置準雙向,進入掉電模式,只有0.625uA
回復

使用道具 舉報

31#
ID:1034262 發表于 2022-8-6 17:04 | 只看該作者
睡眠時IO不耗電的處理方法:

1、對于設置為準雙向口、推挽輸出、開漏輸出低電平的IO,IO本身不耗電,輸出電平與外部電路配合成外部電路不耗電的方式。

2、設置為高阻或開漏輸出高的IO,以下兩種方式任選一種:
    A、IO口接一個確定的高電平(電壓高于VDD-0.3)或低電平(電壓低于0.3V),否則耗電。
    B、將IO口對應的數字輸入功能關閉(對于STC8系列、STC32系列)。
       比如關閉P1.0、P1.1的數字輸入:
         P_SW2 |= 0x80;   //允許操作擴展寄存器
         P1IE   = ~0x03;  //將P1.0 P1.1的數字輸入功能關閉

3、睡眠前,禁止ADC(如果已經允許的話),禁止模擬比較器(如果已經允許的話)。

評分

參與人數 1黑幣 +5 收起 理由
ax6808 + 5

查看全部評分

回復

使用道具 舉報

32#
ID:1116534 發表于 2024-8-29 09:07 | 只看該作者
ax6808 發表于 2022-3-26 18:47
最后實際3.3V時2μA左右就對了:掉電模式本身0.4μA,掉電喚醒定時器1.5μA,總共約2μA就對了!!!
VDD為5 ...

回復

使用道具 舉報

33#
ID:1116534 發表于 2024-8-29 09:16 | 只看該作者
Y_G_G 發表于 2022-3-31 16:14
還在整這個???
STC8G壓根就不需要設置PxIE,我從來不管這個寄存器
我一直在用這個單片機,最小系統掉電模 ...

請問有沒有遇到過加了外部設備后電流變大的,我有NMOS關了外部設備電源0V
回復

使用道具 舉報

34#
ID:1034262 發表于 2024-8-30 09:56 | 只看該作者
STC Mcu睡眠時IO不耗電的處理方法:

1、對于設置為準雙向口、推挽輸出、開漏輸出低電平的IO,IO本身不耗電,輸出電平與外部電路配合成外部電路不耗電的方式即可。

2、設置為高阻或開漏輸出高電平的IO,如果懸空,則會因為輸入狀態不確定導致有電流,以下兩種方式任選一種:
    A、IO口接一個確定的高電平(電壓高于VDD-0.3)或低電平(電壓低于0.3V),否則耗電。
    B、將IO口對應的數字輸入功能關閉(對于STC8系列、STC32系列)。
       比如關閉P1.0、P1.1的數字輸入:
         P_SW2 |= 0x80;   //允許操作擴展寄存器
         P1IE   = ~0x03;  //將P1.0 P1.1的數字輸入功能關閉

3、睡眠前,禁止ADC(如果已經允許的話),禁止模擬比較器(如果已經允許的話)。

4、在主程序進入睡眠,睡眠后至少要加3個空操作(NOP)。
   PCON |= 0x02;
   _nop_();
   _nop_();
   _nop_();

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美中文字幕在线视频 | 精品久久久久久久久久久 | 狠狠亚洲| 亚洲视频在线一区 | 两性午夜视频 | 夜夜夜操 | 欧美 日韩 在线播放 | 国产精品资源在线观看 | 天天玩天天干天天操 | 国产精品一级在线观看 | 欧美美女二区 | 久草在线 | aaaa网站| 亚洲视频免费观看 | 亚洲精品一区二区三区 | 四季久久免费一区二区三区四区 | 色欧美片视频在线观看 | 亚洲天堂中文字幕 | 91视频电影| www.久草.com | 国产精品成人一区 | 性色网站 | 中文字幕在线观看一区 | 北条麻妃国产九九九精品小说 | 国产精品一区二区在线 | 亚洲色图婷婷 | 国产精品国产三级国产aⅴ中文 | 日本精品在线一区 | 久久久久久久香蕉 | 91精品国产91久久久久久吃药 | 欧美激情综合网 | 日本不卡高字幕在线2019 | 国产网站久久 | 亚洲视频欧美视频 | 欧美一区二区三区的 | 精品国产乱码久久久久久果冻传媒 | 国产一区二区三区久久久久久久久 | 日韩网站免费观看 | 精品国产乱码久久久久久果冻传媒 | 不卡一区二区在线观看 | 天天综合国产 |