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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3310|回復: 20
收起左側

[已解決]關于STC8H系列單片機掉電模式下IO口狀態和功耗的問題

  [復制鏈接]
ID:639106 發表于 2024-2-18 09:39 | 顯示全部樓層 |閱讀模式
我使用STC8H8K64U單片機,電路是STC8H的最小系統,供電3.3V 55555ot.jpg ,通過如下程序令單片機處于掉電模式:
  1. #include "stc8h.h"
  2. #include "intrins.h"


  3. void main()
  4. {
  5. //  WKTCL = 0xfe;                           
  6. //   WKTCH = 0x7f;
  7. //   WKTCH |= 0xff;

  8.     while (1)
  9.     {
  10.         _nop_();
  11.         _nop_();
  12.         PCON = 0x02;                            //MCU進入掉電模式
  13.         _nop_();
  14.         _nop_();
  15.         _nop_();
  16.         _nop_();
  17.         _nop_();
  18.         _nop_();
  19.         _nop_();

  20.     }
  21. }
復制代碼

測得單片機電流為 e6a16a4895c273fdca90131a1eccb5c.jpg
數據手冊標稱: 555555555555555555.jpg

這差距太大了,繼續翻手冊 55555.jpg
于是我把代碼改成:
  1. #include "stc8h.h"
  2. #include "intrins.h"


  3. void main()
  4. {

  5.         P0IE=0x00;
  6.         P1IE=0x00;
  7.         P2IE=0x00;
  8.         P3IE=0x00;
  9.         P4IE=0x00;
  10.         P5IE=0x00;
  11.         P6IE=0x00;
  12.         P7IE=0x00;

  13.   //  WKTCL = 0xfe;                           
  14. //   WKTCH = 0x7f;
  15. //   WKTCH |= 0xff;

  16.     while (1)
  17.     {
  18.         _nop_();
  19.         _nop_();
  20.         PCON = 0x02;                            //MCU進入掉電模式
  21.         _nop_();
  22.         _nop_();
  23.         _nop_();
  24.         _nop_();
  25.         _nop_();
  26.         _nop_();
  27.         _nop_();

  28.     }
  29. }
復制代碼
結果仍然不對 d41e50381155d88d915fe76785a9be3.jpg

直到我看到stc-isp上的范例程序中加了幾條語句:
  1.     P0M0 = 0x00;
  2.     P0M1 = 0x00;
  3.     P1M0 = 0x00;
  4.     P1M1 = 0x00;
  5.     P2M0 = 0x00;
  6.     P2M1 = 0x00;
  7.     P3M0 = 0x00;
  8.     P3M1 = 0x00;
  9.     P4M0 = 0x00;
  10.     P4M1 = 0x00;
  11.     P5M0 = 0x00;
  12.     P5M1 = 0x00;
復制代碼
十分不解的我將這些加入到代碼中:
  1. #include "stc8h.h"
  2. #include "intrins.h"


  3. void main()
  4. {
  5.         
  6.     P0M0 = 0x00;
  7.     P0M1 = 0x00;
  8.     P1M0 = 0x00;
  9.     P1M1 = 0x00;
  10.     P2M0 = 0x00;
  11.     P2M1 = 0x00;
  12.     P3M0 = 0x00;
  13.     P3M1 = 0x00;
  14.     P4M0 = 0x00;
  15.     P4M1 = 0x00;
  16.     P5M0 = 0x00;
  17.     P5M1 = 0x00;
  18.         

  19.   //  WKTCL = 0xfe;                           
  20. //   WKTCH = 0x7f;
  21. //   WKTCH |= 0xff;

  22.     while (1)
  23.     {
  24.         _nop_();
  25.         _nop_();
  26.         PCON = 0x02;                            //MCU進入掉電模式
  27.         _nop_();
  28.         _nop_();
  29.         _nop_();
  30.         _nop_();
  31.         _nop_();
  32.         _nop_();
  33.         _nop_();

  34.     }
  35. }
復制代碼

這樣就正常了! d639d5d3b9d4adbe8d285cab8863e0d.jpg

有沒有大佬解釋一下原因?謝謝!









回復

使用道具 舉報

ID:192020 發表于 2024-2-18 13:55 | 顯示全部樓層
1708235581072(1).jpg 睡眠時所有引腳都應該有確定電平,如果是高阻輸入的話,那外圍應該加上下拉

評分

參與人數 1黑幣 +5 收起 理由
gqzjl + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:474386 發表于 2024-2-18 11:31 | 顯示全部樓層
你萬用表測量的擋位前后都不一致的。你確定不是萬用表量程問題導致?
回復

使用道具 舉報

ID:1064915 發表于 2024-2-18 11:40 | 顯示全部樓層
感謝分享,關閉了額外耗電
回復

使用道具 舉報

ID:807591 發表于 2024-2-18 11:54 | 顯示全部樓層
所有IO改成高阻 再看看 2.1ua 和0.4ua差好多
回復

使用道具 舉報

ID:639106 發表于 2024-2-18 13:46 | 顯示全部樓層
zycman 發表于 2024-2-18 11:31
你萬用表測量的擋位前后都不一致的。你確定不是萬用表量程問題導致?

最開始電流太大,超出萬用表200uA檔的量程了,只能用200mA檔
回復

使用道具 舉報

ID:639106 發表于 2024-2-18 13:56 | 顯示全部樓層
szb314 發表于 2024-2-18 11:54
所有IO改成高阻 再看看 2.1ua 和0.4ua差好多

STC8H8K64U上電默認除了3.2、3.3兩IO口之外,所有IO都是高阻剛試了下全改高阻,電流反而更大了
回復

使用道具 舉報

ID:639106 發表于 2024-2-18 14:37 | 顯示全部樓層
qq475878026 發表于 2024-2-18 13:55
睡眠時所有引腳都應該有確定電平,如果是高阻輸入的話,那外圍應該加上下拉

謝謝!這個在數據手冊的那里找到的?
回復

使用道具 舉報

ID:1110945 發表于 2024-2-18 20:46 | 顯示全部樓層
掉電定時器沒有打開,電流應該是0.4微安,我測過,
掉電定時器打開了以后電流是1.8微安,測試電壓3.0V。
回復

使用道具 舉報

ID:192020 發表于 2024-2-19 09:07 | 顯示全部樓層
gqzjl 發表于 2024-2-18 14:37
謝謝!這個在數據手冊的那里找到的?

在附錄T,應用注意事項里。不止STC,我用過的國產芯片睡眠時都是要這樣配置的,不懂STM的是不是這樣
回復

使用道具 舉報

ID:807591 發表于 2024-2-19 10:48 | 顯示全部樓層
gqzjl 發表于 2024-2-18 13:56
STC8H8K64U上電默認除了3.2、3.3兩IO口之外,所有IO都是高阻剛試了下全改高阻,電流反而更大了

STC測試的 應該是沒有外圍電路,單獨芯片的功耗,有外圍電路,那多余的功耗不能算在芯片頭上
回復

使用道具 舉報

ID:1116534 發表于 2024-8-29 08:25 | 顯示全部樓層
gqzjl 發表于 2024-2-18 13:56
STC8H8K64U上電默認除了3.2、3.3兩IO口之外,所有IO都是高阻剛試了下全改高阻,電流反而更大了

我也是,請問你解決沒有
回復

使用道具 舉報

ID:161164 發表于 2024-8-29 10:11 | 顯示全部樓層
qizhixu 發表于 2024-8-29 08:25
我也是,請問你解決沒有

全部引腳設為準雙向
沒用的引腳設高電平
有用的引腳保持和外界電平一致
回復

使用道具 舉報

ID:430492 發表于 2024-8-29 13:22 | 顯示全部樓層
掉電模式,超級省電,特別是電池供電。
回復

使用道具 舉報

ID:879348 發表于 2024-8-29 13:35 | 顯示全部樓層
2uA已經足夠了
回復

使用道具 舉報

ID:1116534 發表于 2024-8-29 15:02 | 顯示全部樓層
lkc8210 發表于 2024-8-29 10:11
全部引腳設為準雙向
沒用的引腳設高電平
有用的引腳保持和外界電平一致

我設置了準雙向口,電流1.6微安,但是鏈接24L01后,電流就變大了,用NMOS管控制電源0V,沒有用
回復

使用道具 舉報

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_();

回復

使用道具 舉報

ID:161164 發表于 2024-8-30 10:03 | 顯示全部樓層
qizhixu 發表于 2024-8-29 15:02
我設置了準雙向口,電流1.6微安,但是鏈接24L01后,電流就變大了,用NMOS管控制電源0V,沒有用

24L01是3.3V的吧?
需要加開關管來斷開24L01的電源
回復

使用道具 舉報

ID:1116534 發表于 2024-8-30 13:57 | 顯示全部樓層
lkc8210 發表于 2024-8-30 10:03
24L01是3.3V的吧?
需要加開關管來斷開24L01的電源

電源是3.3V,加了MOS管,Nmos放負極,Pmos正極,還是不行,并且發送數據還出錯了
回復

使用道具 舉報

ID:1116534 發表于 2024-10-29 13:53 | 顯示全部樓層
qizhixu 發表于 2024-8-30 13:57
電源是3.3V,加了MOS管,Nmos放負極,Pmos正極,還是不行,并且發送數據還出錯了

我和你遇到同樣問題,你解決了嗎?
回復

使用道具 舉報

ID:961114 發表于 2024-10-29 16:47 | 顯示全部樓層
I/O口, 輸入/輸出, 用啥工作模式 ?
===STC32/STC8
答:如不考慮功耗
1,輸出請設置成強推挽輸出,20mA以上的驅動能力 !
      你來個干擾看能拿他咋樣 ,他就不理你 !!!
2,輸入請設置成高阻輸入,默認施密特觸發器輸入 !
     高阻輸入的阻抗是無窮大,至少 100兆歐以上,相當于接到空氣,但有寄生電容的影響
     打開內部4K上拉/或外部加10K上拉/或對方是強推挽輸出
     ====如對方是強推挽輸出,就沒必要打開內部的4K上拉,也沒必要外部加上拉
     ====輸入口也可再并個小電容到地,一般沒必要,軟件反復多讀幾次也能解決
3,不用的I/O,最專業的做法:設置為【高阻輸入 + 關閉數字輸入】
      這樣浮空的I/O, 高阻輸入模式,在省電模式時也不會耗電;
      另外不小心短接到 MCU-VCC/GND 也不會燒掉,高阻輸入 | 電流流不進來也流不出去
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91亚洲视频在线 | 国产欧美一级二级三级在线视频 | 亚洲一区二区精品视频 | 亚洲一区二区精品视频在线观看 | 日韩久久精品 | 91精品久久久久久久久久入口 | 拍真实国产伦偷精品 | 国产精品免费一区二区三区四区 | 成人精品视频免费 | www.黄色网| 欧美 日韩 视频 | 99久久久久久久 | 亚洲精品一区二区 | 久久一二 | 欧美成人精品一区二区男人看 | 亚洲最大的成人网 | 欧美一级片久久 | 久久久久国产精品一区 | 日韩在线免费视频 | 国产日韩欧美综合 | 精品美女久久久 | 国产精品美女久久久 | 成人免费av | 成人在线一区二区三区 | 国产美女一区二区 | 国产精品视频不卡 | 久久国产精品无码网站 | 91xxx在线观看 | 一级片免费视频 | 亚洲永久精品国产 | 亚洲精品在线国产 | 91高清视频在线观看 | 91亚洲国产亚洲国产 | 成人永久免费 | a视频在线观看 | 草久久| 伦理二区| 精品久久国产 | 性高湖久久久久久久久 | 超级黄色一级片 | 亚洲精品免费在线 |