From: SnickerSun Date: Wed, 20 Dec 2023 07:11:46 +0000 (+0800) Subject: 修正开关Cat1的pin脚控制逻辑。 X-Git-Tag: release_V1.2.70_20241020_135402~1383 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=8a21a580184d8ac9f797801ff71a7ce0ae63a231;p=mirrors%2FFD230.git 修正开关Cat1的pin脚控制逻辑。 添加 AT^CAT1RESET AT^CAT1PWRON 两个指令 默认关闭Cat1,当下问题,Cat1的uart影响日志输出。 --- diff --git a/code/sdk/application/wstp/at_service/app/app_at_process.c b/code/sdk/application/wstp/at_service/app/app_at_process.c index db8a14059..357c95aec 100755 --- a/code/sdk/application/wstp/at_service/app/app_at_process.c +++ b/code/sdk/application/wstp/at_service/app/app_at_process.c @@ -1587,15 +1587,50 @@ static uint32_t adc_manu_sample_adc(uint8_t *para, uint32_t para_len) } static uint32_t cat1_power_on(uint8_t *para, uint32_t para_len) { - uapi_gpio_set_dir(S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(S_AGPIO_L23, HAL_GPIO_LEVEL_LOW); - uapi_gpio_set_dir(S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT); - uapi_gpio_set_val(S_AGPIO_L28, HAL_GPIO_LEVEL_HIGH); - UNUSED(para); - UNUSED(para_len); + uint32_t pwron = 0; + if(para_len > 0) + { + char *ptr = (char *)para; + pwron = strtoul(ptr, NULL, 10); // 10: 十进制 + } + + if( pwron == 0) + { + uapi_gpio_set_dir(S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT); + uapi_gpio_set_val(S_AGPIO_L23, HAL_GPIO_LEVEL_LOW); + wstp_print("Power OFF Cat1! L23 low \r\n"); + }else{ + uapi_gpio_set_dir(S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT); + uapi_gpio_set_val(S_AGPIO_L23, HAL_GPIO_LEVEL_HIGH); + wstp_print("Power ON Cat1! L23 high \r\n"); + } + wstp_print("cat1_power_on\r\n" ); return 0; } +static uint32_t cat1_reset(uint8_t *para, uint32_t para_len) +{ + uint32_t pwron = 0; + if(para_len > 0) + { + char *ptr = (char *)para; + pwron = strtoul(ptr, NULL, 10); // 10: 十进制 + } + + if( pwron == 0) + { + uapi_gpio_set_dir(S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT); + uapi_gpio_set_val(S_AGPIO_L28, HAL_GPIO_LEVEL_HIGH); + wstp_print("clear reset Cat1! L28 high \r\n"); + }else{ + uapi_gpio_set_dir(S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT); + uapi_gpio_set_val(S_AGPIO_L28, HAL_GPIO_LEVEL_LOW); + wstp_print("Reset Cat1! L28 low\r\n"); + } + + wstp_print("cat1_reset\r\n" ); + return 0; +} static void pm_lcd_off_handle(void) { writew(0x570000c0, 0x0); // display logic crg reset @@ -2585,7 +2620,8 @@ static const app_process_table g_app_funcs[] = { #ifdef SUPPORT_ALIPAY_SEC { ALIPAYSECTEST, mcu_alipay_sec_test }, #endif - { CAT1PWRON, cat1_power_on}, + { CAT1PWRON, cat1_power_on}, + { CAT1RESET, cat1_reset}, }; void app_at_process(uint8_t *data, uint32_t data_len) diff --git a/code/sdk/application/wstp/at_service/app/app_cmd_manager.c b/code/sdk/application/wstp/at_service/app/app_cmd_manager.c index 3e2250047..df1567e43 100755 --- a/code/sdk/application/wstp/at_service/app/app_cmd_manager.c +++ b/code/sdk/application/wstp/at_service/app/app_cmd_manager.c @@ -641,6 +641,16 @@ static uint32_t app_cat1pwron(uint8_t *para, uint32_t para_len, char *str_cmd) app_pkg_msg_send(CAT1PWRON, DIAG_CONTROL_FALSE, para, para_len); return ERRCODE_SUCC; } +static uint32_t app_cat1reset(uint8_t *para, uint32_t para_len, char *str_cmd) +{ + unused(str_cmd); + if (para == NULL) { + return ERRCODE_FAIL; + } + app_pkg_msg_send(CAT1RESET, DIAG_CONTROL_FALSE, para, para_len); + return ERRCODE_SUCC; +} + static uint32_t app_button_sample(uint8_t *para, uint32_t para_len, char *str_cmd) { unused(str_cmd); @@ -962,6 +972,7 @@ static const at_cmd_table_t g_app_cmd[] = { { "AT^I2CREAD", app_i2c_read, "" }, { "AT^ALIPAYSECTEST", app_alipay_sec_test, "" }, { "AT^CAT1PWRON", app_cat1pwron, "" }, + { "AT^CAT1RESET", app_cat1reset, ""}, }; diff --git a/code/sdk/application/wstp/at_service/app/app_msg_manager.h b/code/sdk/application/wstp/at_service/app/app_msg_manager.h index e63874763..7114e5bc7 100755 --- a/code/sdk/application/wstp/at_service/app/app_msg_manager.h +++ b/code/sdk/application/wstp/at_service/app/app_msg_manager.h @@ -101,6 +101,7 @@ typedef enum { ALIPAYSECTEST = 0x46, ADCMANUDATA = 0x47, CAT1PWRON = 0x48, + CAT1RESET = 0x49, MSG_ID_MAX_BUTT, } app_msg_id; 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 014a7f710..2e28e1ae4 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 @@ -170,12 +170,12 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { #else { HAL_PIO_FUNC_TE, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 MIPI TE #endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON 控制CAT_1开机脚,或者控制 CAT1电源 拉低有效 + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON 控制CAT_1开机脚,或者控制 CAT1电源 拉高有效 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 LCM_EN { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 //////////// audio pa reset { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 心率复位 PPG reset { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 LCM reset - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1复位 CAT1_RESET_N 拉低有效 + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1复位 CAT1_RESET_N 拉低有效 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info 检测是否充满电 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 唤醒 CAT1 ,输出 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 唤醒 蓝牙 ,输入 @@ -231,13 +231,13 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { #if DEFAULT_POWERON_CAT1 - // S_AGPIO_L23 CAT_1_PWR_ON ----- low power on - { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, + // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on + { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, // S_AGPIO_L28 Cat1 reset ---- low reset { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, #else - // S_AGPIO_L23 CAT_1_PWR_ON ----- low power on - { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL }, + // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on + { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, // S_AGPIO_L28 Cat1 reset ---- low reset { S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL }, #endif