优化hp4570 充电IC 参数设置
authorpenglei <1624952103@qq.com>
Tue, 11 Nov 2025 03:23:05 +0000 (11:23 +0800)
committerpenglei <1624952103@qq.com>
Tue, 11 Nov 2025 03:23:05 +0000 (11:23 +0800)
code/sdk/zhihui/drivers/charge/hp4570/hp4570.c
code/sdk/zhihui/drivers/charge/hp4570/hp4570.h
code/sdk/zhihui/drivers/charge/service/charge_at_cmd.c
code/sdk/zhihui/drivers/cywee/dml/cywee_dml.c
code/sdk/zhihui/services/battery/service/battery_service.cpp
code/sdk/zhihui/utils/custom_utils.c

index 8152f54..0293c75 100644 (file)
@@ -105,14 +105,18 @@ bool hp4570_init(uint8_t chip_ver){
   // Add initialization code here, such as configuring registers\r
   hp4570_set_ceb_en(true);\r
 \r
+\r
   int ret = hp4570_set_chrg_vbat_mV(4374.0);\r
   printf("hp4570_set_chrg_vbat_mV ret:%d\n",ret);\r
 \r
+  ret = hp4570_set_chrg_ipre_mA(30);\r
+  printf("hp4570_set_chrg_ipre_mA(30) ret:%d\n",ret);\r
+\r
   ret = hp4570_set_chrg_ichg_mA(400);\r
   printf("hp4570_set_chrg_ichg_mA(400) ret:%d\n",ret);\r
 \r
-  ret = hp4570_set_chrg_iterm_mA(34);\r
-  printf("hp4570_set_chrg_iterm_mA(34) ret:%d\n",ret);\r
+  ret = hp4570_set_chrg_iterm_mA(30);\r
+  printf("hp4570_set_chrg_iterm_mA(30) ret:%d\n",ret);\r
 \r
   ret = hp4570_set_iindpm_mA(1000);\r
   printf("hp4570_set_iindpm_mA(1000) ret:%d\n",ret);\r
@@ -136,6 +140,9 @@ bool hp4570_identify(uint8_t chip_ver){
   hp4570_read_reg(HP4570_REG_PID_LSB, &pid_value[0]);\r
   hp4570_read_reg(HP4570_REG_PID_MSB, &pid_value[1]);\r
   hp4570_read_reg(HP4570_REG_CHIP_VER, &chip_ver_value);\r
+\r
+  // printf("vid_value[0] : 0x%x , vid_value[1] : 0x%x , pid_value[0] : 0x%x,pid_value[1] : 0x%x  chip_ver_value : 0x%x\n",vid_value[0],vid_value[1],pid_value[0],pid_value[1],chip_ver_value);\r
+\r
   if((vid_value[0]!=HP4570_REG_VID_LSB_DEF)||\r
      (vid_value[1]!=HP4570_REG_VID_MSB_DEF)||\r
      (pid_value[0]!=HP4570_REG_PID_LSB_DEF)||\r
index 0044a1e..d21cba9 100644 (file)
@@ -36,7 +36,7 @@ enum HP4570_chip_ver {
   HP4570J,// different default charge enable\r
   HP4570K,// different i2c address\r
   HP4580A = 0x10,// just different name\r
-  HP4570C9 = 0x02,// just different name\r
+  HP4570N = 0x02,// just different name\r
 };\r
 \r
 // 7-bit Slave Address\r
@@ -415,7 +415,7 @@ static const uint16_t HP4570_t_hiccup_time[HP4570_NUM_T_HICCUP_VAL] = {
 #define HP4570_REG_VID_LSB_DEF        0xC6\r
 #define HP4570_REG_VID_MSB_DEF        0x34\r
 #define HP4570_REG_PID_LSB_DEF        0x81\r
-#define HP4570_REG_PID_MSB_DEF        0x03\r
+#define HP4570_REG_PID_MSB_DEF        0x00\r
 \r
 #define HP4570J_REG_SYS_CTRL0_DEF      0xAC\r
 \r
index 83a7e86..c906d08 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: penglei 1624952103@qq.com
  * @Date: 2024-12-23 15:11:01
  * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-11-10 16:35:15
+ * @LastEditTime: 2025-11-11 10:37:36
  * @FilePath: /sdk615/code/sdk/zhihui/drivers/charge/HP4570/service/charge_at_cmd.c
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -74,7 +74,7 @@ static uint32_t hp4570_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
         //     PRINT("SKIP CHARGEtest start, already started\r\n");
         //     return 0;
         // }
-        hp4570_init(HP4570C9);
+        hp4570_init(HP4570N);
         g_charge_test_started = 1;
     }else if (start == 2){
         if (g_charge_test_started == 0) 
index 8c51be7..0eda65e 100644 (file)
@@ -312,7 +312,7 @@ void cywee_check_acc(void)
         acc_check_cnt++;
         if(acc_check_cnt > 2)
         {
-            printf("cywee_restart_acc\n");
+            // printf("cywee_restart_acc\n");
             cywee_restart_acc();
         }
     }
index 9d107cf..701e3cf 100644 (file)
@@ -694,6 +694,11 @@ void uapi_battery_create_queue(void)
 #define BATTERY_TASK_SIZE 0x1C00
 errcode_t uapi_battery_init(void)
 {
+       
+#ifdef ENABLE_HP4570
+    hp4570_init(HP4570N);
+#endif
+
     battery_check_voltage();
     battery_percent_init(0); //先读历史电量
 
@@ -719,10 +724,7 @@ errcode_t uapi_battery_init(void)
 
     /**下面初始化电池基本数据,充电线基本状态*/
     uapi_register_charger_event_callback(battery_charger_plug_event_callback);
-   
-#ifdef ENABLE_HP4570
-    hp4570_init(HP4570C9);
-#endif
+
 
     //开始timer
     battery_timer_start_check_released(CHARGE_CHECK_TIMER_CYCLE_MS);
index f00b845..9face26 100644 (file)
@@ -2664,6 +2664,11 @@ errcode_t custom_i2c_init(uint8_t bus_index)
         PRINT("cywee i2c init fail! ret=0x%x\n", result);
         return ERRCODE_FAIL;
     }
+    else if(result == ERRCODE_I2C_ALREADY_INIT){
+        PRINT("cywee i2c already init ret=0x%x\n", result);
+        return ERRCODE_SUCC;
+    }
+
 
     // i2c_installed = 1;
     return ERRCODE_SUCC;