开机增加电压检测,未充电状态电压小于3V强制关机 2882/1 2882/head 2883/target/1
authorpenglei <1624952103@qq.com>
Mon, 8 Dec 2025 04:07:21 +0000 (12:07 +0800)
committerpenglei <1624952103@qq.com>
Mon, 8 Dec 2025 04:07:21 +0000 (12:07 +0800)
code/sdk/application/brandy/brandy_standard/chip_init.c

index 57e4227..01ecf4e 100644 (file)
@@ -141,6 +141,39 @@ void chip_init(void)
     uapi_timer_init();\r
     uapi_timer_adapter(0, TIMER_0_IRQN, irq_prio(TIMER_0_IRQN));\r
 \r
+#if defined(SUPPORT_BATTERY_SERVICE)\r
+\r
+    extern uint8_t get_charge_stat(void);\r
+    extern bool batteryservice_get_voltage_by_channel(float *voltage, uint8_t channel);\r
+    #define ADC_CHANNEL_BAT_VOLTAGE 2\r
+\r
+    if(!get_charge_stat())\r
+    {\r
+        float batV = 0.0f;\r
+        batteryservice_get_voltage_by_channel(&batV,ADC_CHANNEL_BAT_VOLTAGE);\r
+        PRINT("battery Voltage %.02f\n",batV);\r
+\r
+        if(batV <= 3.0f)\r
+        {\r
+            printf("Warning: Battery voltage is too low. Device will power off");\r
+            uapi_tcxo_delay_ms(10);\r
+            extern void mcu_poweroff(void);\r
+            mcu_poweroff();\r
+        }\r
+        // while( batV < MIN_BOOTUP_VOTAGE)\r
+        // {\r
+        //     batteryservice_get_voltage_by_channel(&batV,ADC_CHANNEL_BAT_VOLTAGE);\r
+        //     charge_stat = get_charge_stat();\r
+        //     PRINT("battery Voltage %.02f , charging %d\n",batV,charge_stat);\r
+        //     uapi_tcxo_delay_ms(1000);\r
+        //     enable_charge(); \r
+        //     // disable_02c();\r
+            \r
+        // }\r
+    }\r
+    \r
+#endif\r
+\r
     chip_xip_init();\r
 #if TCXO_CLK_DYN_ADJUST == YES\r
     init_mcu_core_clk();\r