![]() |
I/O口, 輸入/輸出, 用啥工作模式 ? ===STC32/STC8 答:如不考慮功耗 1,輸出請設置成強推挽輸出,20mA以上的驅動能力 ! 你來個干擾看能拿他咋樣 ,他就不理你 !!! 2,輸入請設置成高阻輸入,默認施密特觸發器輸入 ! 高阻輸入的阻抗是無窮大,至少 100兆歐以上,相當于接到空氣,但有寄生電容的影響 打開內部4K上拉/或外部加10K上拉/或對方是強推挽輸出 ====如對方是強推挽輸出,就沒必要打開內部的4K上拉,也沒必要外部加上拉 ====輸入口也可再并個小電容到地,一般沒必要,軟件反復多讀幾次也能解決 3,不用的I/O,最專業的做法:設置為【高阻輸入 + 關閉數字輸入】 這樣浮空的I/O, 高阻輸入模式,在省電模式時也不會耗電; 另外不小心短接到 MCU-VCC/GND 也不會燒掉,高阻輸入 | 電流流不進來也流不出去 |
qizhixu 發表于 2024-8-30 13:57 我和你遇到同樣問題,你解決了嗎? |
lkc8210 發表于 2024-8-30 10:03 電源是3.3V,加了MOS管,Nmos放負極,Pmos正極,還是不行,并且發送數據還出錯了 |
qizhixu 發表于 2024-8-29 15:02 24L01是3.3V的吧? 需要加開關管來斷開24L01的電源 |
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_(); |
lkc8210 發表于 2024-8-29 10:11 我設置了準雙向口,電流1.6微安,但是鏈接24L01后,電流就變大了,用NMOS管控制電源0V,沒有用 |
2uA已經足夠了 |
掉電模式,超級省電,特別是電池供電。 |
qizhixu 發表于 2024-8-29 08:25 全部引腳設為準雙向 沒用的引腳設高電平 有用的引腳保持和外界電平一致 |
gqzjl 發表于 2024-2-18 13:56 我也是,請問你解決沒有 |
gqzjl 發表于 2024-2-18 13:56 STC測試的 應該是沒有外圍電路,單獨芯片的功耗,有外圍電路,那多余的功耗不能算在芯片頭上 |
gqzjl 發表于 2024-2-18 14:37 在附錄T,應用注意事項里。不止STC,我用過的國產芯片睡眠時都是要這樣配置的,不懂STM的是不是這樣 |
掉電定時器沒有打開,電流應該是0.4微安,我測過, 掉電定時器打開了以后電流是1.8微安,測試電壓3.0V。 |
qq475878026 發表于 2024-2-18 13:55 謝謝!這個在數據手冊的那里找到的? |
szb314 發表于 2024-2-18 11:54 STC8H8K64U上電默認除了3.2、3.3兩IO口之外,所有IO都是高阻 ![]() |
zycman 發表于 2024-2-18 11:31 最開始電流太大,超出萬用表200uA檔的量程了,只能用200mA檔 |
所有IO改成高阻 再看看 2.1ua 和0.4ua差好多 |
感謝分享,關閉了額外耗電 |
你萬用表測量的擋位前后都不一致的。你確定不是萬用表量程問題導致? |