在MCU進入低功耗模式(如Sleep, Stop, Standby, Deep Sleep等)前,精心處理每一個GPIO引腳的狀態是最大限度降低功耗電流的關鍵一步。懸空或配置不當的引腳是導致“漏電”的常見原因。以下是處理引腳以達到最小低功耗電流的原則和方法:
?? 核心原則
- 避免浮空輸入: 浮空(高阻態)的輸入引腳對噪聲非常敏感。微小的電壓波動(如電磁干擾、熱噪聲)會導致輸入邏輯在0和1之間不斷翻轉,驅動輸入緩沖器,消耗顯著電流(尤其在CMOS工藝中)。
- 避免輸出引腳驅動外部負載電流: 如果輸出引腳處于高電平或低電平,而外部電路存在到地或到VCC的路徑(如上拉、下拉電阻、LED、未完全關斷的器件),就會產生持續的電流消耗。
- 關閉未使用外設及其引腳功能: 許多引腳有復用功能(ADC, UART, SPI, TIMER等)。即使GPIO配置了,如果復用功能的外設模塊未關閉且時鐘仍在運行,內部邏輯也可能在耗電。
- 考慮內部上拉/下拉電阻的功耗: 即使啟用了內部上拉/下拉,當引腳電壓被外部電路拉到相反電平時,電阻上也會有電流流過(VCC->電阻->地)。
?? 具體處理方法(按優先級)
- 識別所有引腳狀態: 明確MCU上每個引腳的功能和當前外部連接。
- 關閉所有不必要的外設及其時鐘:
- 在進入低功耗模式前,禁用所有不需要的外設模塊(ADC, DAC, USART, SPI, I2C, TIMER, PWM等)。
- 停止這些外設的時鐘源(在RCC寄存器中操作)。這是降低功耗的最重要步驟之一,往往比GPIO處理更重要。
- 配置未使用/未連接引腳: