From: SnickerSun Date: Tue, 9 Apr 2024 10:42:46 +0000 (+0800) Subject: 表冠hx3507添加 pin初始化支持,降低功耗 X-Git-Tag: release_V1.2.70_20241020_135402~1200^2~12 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=e0e6f5d248d54bc2255bed1cb5e0c51b4001e5a8;p=mirrors%2FFD230.git 表冠hx3507添加 pin初始化支持,降低功耗 battery ntc 电源默认关闭 --- diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h index 68c5e2938..6075ca642 100755 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h @@ -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 //低电流充电 diff --git a/code/sdk/drivers/peripheral/rotary_encoder/hx3507/hx3507.c b/code/sdk/drivers/peripheral/rotary_encoder/hx3507/hx3507.c index 965283c47..7ca2fdfd7 100644 --- a/code/sdk/drivers/peripheral/rotary_encoder/hx3507/hx3507.c +++ b/code/sdk/drivers/peripheral/rotary_encoder/hx3507/hx3507.c @@ -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 }