表冠hx3507添加 pin初始化支持,降低功耗
authorSnickerSun <snickersun@163.com>
Tue, 9 Apr 2024 10:42:46 +0000 (18:42 +0800)
committerSnickerSun <snickersun@163.com>
Tue, 9 Apr 2024 10:42:46 +0000 (18:42 +0800)
battery ntc 电源默认关闭

code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h
code/sdk/drivers/peripheral/rotary_encoder/hx3507/hx3507.c

index 68c5e29..6075ca6 100755 (executable)
@@ -165,8 +165,8 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = {
     { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L15   NC
     { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L16   NC
     
-    { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE },    // S_AGPIO_L17 HX3507_INT
-    { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE },    // S_AGPIO_L18  VDDEN  //暂时无用,采用VDDIO 默认开启 EXt V3.0 EXt V1.8
+    { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE },    // S_AGPIO_L17 HX3507_INT   not use
+    { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE },    // S_AGPIO_L18  VDDEN  //暂时无用,采用VDDIO 默认开启 EXt V3.0 EXt V1.8
     { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE },  // S_AGPIO_L19  G_INT2
 
     { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L20  0.2C_CHRG
@@ -253,7 +253,7 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = {
     {   S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
 #endif
     // S_AGPIO_L17   HX3507_INT 
-    {   S_AGPIO_L17, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
+    // {   S_AGPIO_L17, HAL_GPIO_DIRECTION_INPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
     // S_AGPIO_L12  SDIO_BT
     {   S_AGPIO_L12, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
     // S_AGPIO_L13   SCLK_BT
@@ -264,9 +264,8 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = {
     // S_AGPIO_R0 PRG_LED_POWER ON  心率等电源控制脚
     {   S_AGPIO_R0, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
 
-
-    //S_AGPIO_L21 NTC_VDD_ON 给低打开 NTC上拉电源
-    {   S_AGPIO_L21, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
+    //S_AGPIO_L21 NTC_VDD_ON 给低打开 NTC上拉电源 ,默认关闭
+    {   S_AGPIO_L21, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL },
 
 //    #define GPIO_PIN_ENABLE_CHARGE S_AGPIO_R9
 // #define GPIO_PIN_ENABLE_CHARGE_0_2C S_AGPIO_L20   //低电流充电
index 965283c..7ca2fdf 100644 (file)
@@ -405,11 +405,16 @@ static void crown_int_handler(nrf_drv_gpiote_pin_t pin, nrf_gpiote_polarity_t ac
 void crown_init(void)
 {
     int i;
-    uapi_gpio_set_dir(PIN_TYHX_SDIO,GPIO_DIRECTION_INPUT);
-    uapi_gpio_set_dir(PIN_TYHX_SCLK,GPIO_DIRECTION_OUTPUT);
+
+    uapi_gpio_set_dir(PIN_TYHX_SDIO,GPIO_DIRECTION_OUTPUT);
+    // uapi_pin_set_pull(PIN_TYHX_SDIO, (pin_pull_t)HAL_PIO_PULL_UP);
+    // uapi_pin_set_ie(PIN_TYHX_SDIO,HAL_PIO_IE_ENBALE);
     uapi_gpio_set_val(PIN_TYHX_SDIO,GPIO_LEVEL_LOW);
+
+    uapi_gpio_set_dir(PIN_TYHX_SCLK,GPIO_DIRECTION_OUTPUT);
+    // uapi_pin_set_ie(PIN_TYHX_SCLK,HAL_PIO_IE_DISABLE);
     uapi_gpio_set_val(PIN_TYHX_SCLK,GPIO_LEVEL_LOW);
-   
+
     LOS_Udelay(COM_DELAY);
     crown_com_resync();
     for(i=0; i<10; i++)
@@ -509,7 +514,18 @@ void crown_start(void)
 
 }
 
-
+void crown_reset_pin(void)
+{
+    uapi_gpio_set_dir(PIN_TYHX_SDIO,GPIO_DIRECTION_INPUT);
+    uapi_pin_set_pull(PIN_TYHX_SDIO, (pin_pull_t)HAL_PIO_PULL_DOWN);
+    uapi_pin_set_ie(PIN_TYHX_SDIO,HAL_PIO_IE_ENBALE);
+    uapi_gpio_set_dir(PIN_TYHX_SCLK,GPIO_DIRECTION_INPUT);
+    uapi_pin_set_pull(PIN_TYHX_SCLK, (pin_pull_t)HAL_PIO_PULL_DOWN);
+    uapi_pin_set_ie(PIN_TYHX_SCLK,HAL_PIO_IE_ENBALE);
+    // uapi_gpio_set_dir(PIN_TYHX_MOT,GPIO_DIRECTION_INPUT);
+    // uapi_pin_set_pull(PIN_TYHX_MOT, (pin_pull_t)HAL_PIO_PULL_UP);
+    // uapi_pin_set_ie(PIN_TYHX_MOT,HAL_PIO_IE_ENBALE);
+}
 /**
  * HX3507 停止
  * @param NULL
@@ -519,8 +535,13 @@ void crown_stop(void)
 #ifdef MOT_NO_USE_MODE
     crown_timer_stop();
     LOS_Mdelay(50);
+    
+    uapi_gpio_set_dir(PIN_TYHX_SDIO,GPIO_DIRECTION_OUTPUT);
+    uapi_gpio_set_dir(PIN_TYHX_SCLK,GPIO_DIRECTION_OUTPUT);
+
     crown_write_reg(Config_St,0x89); // power down, power down 后芯片功耗9uA
     LOS_Mdelay(20);
+    crown_reset_pin();
     TYHX_LOG("[tyhx_crown_stop]\r\n");
 #endif
 }