降低lcd,tp功耗;编码器效果调优 1751/3 1751/head 1805/target/1
authorpenglei <1624952103@qq.com>
Mon, 26 May 2025 07:40:39 +0000 (15:40 +0800)
committerpenglei <1624952103@qq.com>
Mon, 26 May 2025 07:40:39 +0000 (15:40 +0800)
13 files changed:
code/sdk/drivers/drivers/driver/lcd/lcd_config.c
code/sdk/drivers/drivers/driver/lcd/lcd_private.c
code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_ctrl.c
code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.c
code/sdk/drivers/drivers/driver/touch/cst86xx_touch/cst86xx_touch1.h
code/sdk/drivers/drivers/driver/touch/touch_screen_def.h
code/sdk/zhihui/drivers/bp/bn02/bn02.c
code/sdk/zhihui/drivers/bp/service/bp_ble_service.c
code/sdk/zhihui/drivers/bp/service/bp_service.c
code/sdk/zhihui/drivers/charge/service/charge_at_cmd.c
code/sdk/zhihui/drivers/rotary_encoder/hx3508/hx3508_at_cmd.c
code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_ots_driver.c
code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_service.c

index 769dcc2..97cf3f0 100644 (file)
 #define LCD_BOE_194X368_SCREEN_ID  0x4a00\r
 \r
 /*\r
-pixel_clk ÐèÒª´óÓÚ sync_info Öеģ¨hsa+hbp+hact+hfp£©* \r
-£¨vsa+vbp+vact+vfp£©* 60 / 1000 £¨Ö¡ÂÊÅäÖà60fps£©\r
+pixel_clk ��Ҫ���� sync_info �еģ�hsa+hbp+hact+hfp��* \r
+��vsa+vbp+vact+vfp��* 60 / 1000 ��֡������ 60fps��\r
 \r
-. phy_data_rate£½pixel_clk * 24 / 1000£¬ Èç¹û¼ÆËã³öÀ´µÄÖµ´óÓÚ 500£¬ÐèÒªµ÷\r
-Õû½µµÍÖ¡ÂÊ£¬¼õС pixel_clk¡£\r
+. phy_data_rate��pixel_clk * 24 / 1000�� ������������ֵ���� 500����Ҫ��\r
+������֡�ʣ���С pixel_clk��\r
 \r
-µ±ÐÞ¸ÄÁË pixel_clk Ê±£¬ÐèҪͬ²½ÐÞ¸Ä\r
-¡°middleware\services\gpu\drv\dpu\hal\dpu_hal_crg.c¡±Öк¯Êý\r
-dpu_crg_set_vedio_mclk_div_ctl µÄ dpu_mclk_div Öµ£¬¸ÃÖµµÄºóÁ½Î»ÐèÒªÓë\r
-pixel_clk µÄ 16 ½øÖÆÖµ±£³ÖÒ»Ö£¬ÈçÏ pixel_clk£½20000kHZ£¬»»ËãΪ MHZ Îª 20£¬\r
-¶ÔÓ¦µÄ 16 ½øÖÆÎª 0x14¡£\r
+���޸��� pixel_clk ʱ����Ҫͬ���޸�\r
+��middleware\services\gpu\drv\dpu\hal\dpu_hal_crg.c�����\r
+dpu_crg_set_vedio_mclk_div_ctl �� dpu_mclk_div ֵ����ֵ�ĺ���λ��Ҫ��\r
+pixel_clk �� 16 ����ֵ����һ�£����� pixel_clk��20000kHZ������Ϊ MHZ Ϊ 20��\r
+��Ӧ�� 16 ����Ϊ 0x14��\r
 */\r
 const combo_dev_cfg_t g_panel_502x410_50_config = {\r
     .devno = 0,\r
@@ -122,10 +122,17 @@ const lcd_cmd_sequ g_common_cmd_display_off[] = {
 \r
 /* display off sequence for common lcd */\r
 const lcd_cmd_sequ g_common_466x466_cmd_display_off[] = {\r
+#ifdef BOARD_W9\r
+    {1, 2, {0xfe, 0x00}, 0},   /* select default cmd page */\r
+    {1, 1, {0x28}, 10},         /* display off */\r
+    {1, 1, {0x10}, 120},       /* sleep in */\r
+    {1, 2, {0x4f, 0x01}, 100},        /* sleep in */\r
+#else\r
     {1, 2, {0xfe, 0x00}, 0},   /* select default cmd page */\r
     {1, 1, {0x28}, 0},         /* display off */\r
     {1, 1, {0x10}, 120},       /* sleep in */\r
-    {1, 2, {0x4f, 0x01}, 0},   /* ½ødeepstandby ×´Ì¬ */\r
+    {1, 2, {0x4f, 0x01}, 0},   /* ��deepstandby ״̬ */\r
+#endif\r
 };\r
 \r
 /* sleep in sequence for common lcd */\r
index 0643952..21c039f 100644 (file)
@@ -37,13 +37,15 @@ static void lcd_drv_power_off(void)
     uapi_gpio_set_dir(VCI_LCD_GPIO, GPIO_DIRECTION_OUTPUT);\r
     uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW);\r
     #endif\r
+#ifndef BOARD_W9\r
     uapi_tcxo_delay_ms(10); /* delay 10 ms */\r
+#endif\r
     int resetvalue = uapi_gpio_get_output_val(RESET_LCD_GPIO);\r
     int lcd_envalue = uapi_gpio_get_output_val(VCI_LCD_GPIO);\r
     printf("Output RESET_LCD_GPIO %d , VCI_LCD_GPIO %d\r\n",resetvalue,lcd_envalue);\r
 #else\r
     uapi_gpio_set_val(RESET_LCD_GPIO, GPIO_LEVEL_LOW);\r
-    uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //ÉèÖóÉInput£¬ÊÇΪÁ˽â¾ö©µç £¿£¿\r
+    uapi_gpio_set_dir(RESET_LCD_GPIO, GPIO_DIRECTION_INPUT); //���ó�Input����Ϊ�˽��©�� ����\r
     uapi_pin_set_pull(RESET_LCD_GPIO, PIN_PULL_DOWN);\r
     #ifndef QSPI_DISPLAY\r
     uapi_gpio_set_val(VCI_LCD_GPIO, GPIO_LEVEL_LOW);\r
index 4eea847..f840c0a 100644 (file)
@@ -178,7 +178,9 @@ ext_errno cst86xx_tp_i2c_reg_write(uint16_t reg_addr, uint16_t reg_cfg)
     }\r
 \r
     g_tp_send_buf[CST86XX_I2C_SEND_INDEX0] = reg_addr & 0xff;\r
-    \r
+\r
+    g_tp_send_buf[1] = reg_cfg & 0xff;\r
+\r
     data.send_buf = g_tp_send_buf;\r
     data.send_len = CST86XX_REG_WRITE_LEN;\r
     data.receive_buf = NULL;\r
index 9a0f084..c394421 100644 (file)
@@ -171,7 +171,9 @@ static ext_errno cst86xx_suspend(void)
         tp_print("TOUCH:alread suspend");\r
         return EXT_ERR_SUCCESS;\r
     }\r
-    \r
+\r
+    cst86xx_reset();//唤醒IC\r
+\r
     /* Send Sleep Cmd */\r
     reg_write = CST86XX_SLEEP_CMD;\r
     for (retry_times = 0; retry_times < CST86XX_INIT_RETRY_TIMERS; retry_times++) {\r
index e2f5c20..5250e76 100644 (file)
@@ -135,7 +135,7 @@ extern "C" {
 #define CST86XX_REPORT_REG        0x0186  /* 设置中断上报频率 */\r
 #define CST86XX_PIXEL_THRESHOLD_REG 0x00C3\r
 /* Register Map */\r
-#define CST86XX_SLEEP_CMD                     0xA5\r
+#define CST86XX_SLEEP_CMD                     0xE5\r
 #define CST86XX_FIRMWARE_VERSION              0xA9\r
 #define CST86XX_FACTORY_ID                    0xAA\r
 #define CST86XX_HW_ID                         0xA7\r
index 67c8b09..077fec8 100644 (file)
@@ -36,6 +36,7 @@ extern "C" {
         (sz) = NULL;                   \\r
     } while (0)\r
 \r
+// #define TP_DEBUG\r
 #ifdef TP_DEBUG\r
 #define tp_print(fmt, ...)                    \\r
     do {                                      \\r
index 6159755..7d2de8c 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: penglei 1624952103@qq.com\r
  * @Date: 2025-01-16 12:35:15\r
  * @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2025-02-14 11:37:22\r
+ * @LastEditTime: 2025-05-24 14:43:40\r
  * @FilePath: /sdk615/code/sdk/zhihui/drivers/bp/bn02/bn02.c\r
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
  */\r
@@ -132,11 +132,10 @@ void bn02_int_handle(void)
         bn02_replymsg(bn02_buf,sizeof(bn02_buf),1);\r
     }\r
 \r
-\r
-    for(i = 0;i<48;i++)\r
-       {\r
-               printf("[%d]= 0x%x\n",i,bn02_buf[i]);\r
-       }\r
+    // for(i = 0;i<48;i++)\r
+       // {\r
+       //      printf("[%d]= 0x%x\n",i,bn02_buf[i]);\r
+       // }\r
 }\r
 \r
 void bn02_start(void)\r
index 9a5c697..995dd8b 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: penglei 1624952103@qq.com
  * @Date: 2025-02-14 10:30:21
  * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-02-14 14:43:09
+ * @LastEditTime: 2025-05-26 15:39:37
  * @FilePath: /sdk615/code/sdk/zhihui/drivers/bp/service/bp_ble_service.c
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -11,6 +11,7 @@
 #include "custom_utils.h"
 #include "bp_service.h"
 #include "bp_ble_service.h"
+#include "factorytestService.h"
 
 #define START_CODE 0x55
 #define PPG_DATA_SIZE 3
@@ -41,23 +42,32 @@ uint8_t bn02_get_ble_status(void)
 uint8_t bn02_calculate_checksum(ble_bp_data_t frame) 
 {
     uint8_t checksum = 0;
+    
     checksum += frame.start_code;
+    
     checksum += frame.main_func_code;
     checksum += frame.sub_func_code;
-    checksum += (frame.data_length >> 8) & 0xFF; // 数据长度高字节
-    checksum += frame.data_length & 0xFF;        // 数据长度低字节
-    checksum += (frame.flags >> 8) & 0xFF;       // 标识高字节
-    checksum += frame.flags & 0xFF;              // 标识低字节
-
-    for (uint16_t i = 0; i < frame.data_length - 2; i++) { // 数据长度包含标识
+    
+    checksum += (frame.data_length >> 8) & 0xFF; // 高字节
+    checksum += frame.data_length & 0xFF;        // 低字节
+    
+    checksum += (frame.flags >> 8) & 0xFF;       // 高字节
+    checksum += frame.flags & 0xFF;              // 低字节
+    
+
+    for (uint16_t i = 0; i < (frame.data_length - 2); i++) {
         checksum += frame.data[i];
     }
+
+    checksum &= 0xFF;
+    
+    // printf("checksum : 0x%x\n", checksum);
     return checksum;
 }
 
 errcode_t bn02_parse_frame(uint8_t *buf, uint16_t event_size)
 {
-    if(buf != NULL && event_size>=(1+2+2+2+1+1))
+    if(buf != NULL && event_size >= (1+2+2+2+1+1))
     {
         memset_s(ble_bp_data,0,sizeof(ble_bp_data),0);
         
@@ -68,9 +78,14 @@ errcode_t bn02_parse_frame(uint8_t *buf, uint16_t event_size)
         ble_bp_data.flags = (buf[5] << 8) + buf[6];
         ble_bp_data.data = &buf[7];
 
+        // printf("start_code : 0x%x, main_func_code : 0x%x, sub_func_code : 0x%x, data_length : 0x%x, flags : 0x%x, data : 0x%x\n",
+        // ble_bp_data.start_code,ble_bp_data.main_func_code,ble_bp_data.sub_func_code,ble_bp_data.data_length,ble_bp_data.flags,*ble_bp_data.data);
+
         if(buf[8] != bn02_calculate_checksum(ble_bp_data))
             return ERRCODE_FAIL;
 
+        ble_bp_data.sub_func_code += 0x80;
+
         if(!(*ble_bp_data.data))
         {
             do_bp_service_check_msg(BP_SERVICE_CMD_START_CHECK);
@@ -96,11 +111,10 @@ errcode_t bn02_parse_frame(uint8_t *buf, uint16_t event_size)
 errcode_t bn02_replymsg(uint8_t *input_data,uint16_t input_len,uint8_t flags)
 {
     errcode_t ret;
-    ble_bp_data.sub_func_code += 0x80;
     ble_bp_data.data = input_data;
     ble_bp_data.data_length = input_len + 2;
 
-    if(ble_bp_data.flags < (1 << 14))
+    if((ble_bp_data.flags & 0x3FFF) < (1 << 14)) 
         ble_bp_data.flags++;
 
     if(flags) 
@@ -110,7 +124,15 @@ errcode_t bn02_replymsg(uint8_t *input_data,uint16_t input_len,uint8_t flags)
 
     ble_bp_data.checksum = bn02_calculate_checksum(ble_bp_data);
 
-    ret = ble_factorytest_server_send_input_report((uint8_t *)&ble_bp_data,sizeof(ble_bp_data));
+    // printf("start_code : 0x%x, main_func_code : 0x%x, sub_func_code : 0x%x, data_length : 0x%x, flags : 0x%x check_sum : 0x%x\n",
+    // ble_bp_data.start_code,ble_bp_data.main_func_code,ble_bp_data.sub_func_code,ble_bp_data.data_length,ble_bp_data.flags,ble_bp_data.checksum);
+
+    // for(int i = 0;i<48;i++)
+       // {
+       //      printf("reply:[%d]= 0x%x\n",i,ble_bp_data.data[i]);
+       // }
 
+    ret = ble_factorytest_server_send_input_report((uint8_t *)&ble_bp_data,sizeof(ble_bp_data));
+    // printf("ret : 0x%x \n",ret);
     return ret;
 }
index d319d6a..ac08058 100644 (file)
@@ -63,18 +63,18 @@ static void bp_service_check_task(void const *arg)
             continue;
         }
         if (mail.comm.app == BP_SERVICE_CMD_TIMER_CHECK) {
-            PRINT("bn02_int_handle \n");
+            // PRINT("bn02_int_handle \n");
             bn02_int_handle();
         }else if (mail.comm.app == BP_SERVICE_CMD_START_CHECK){
-            PRINT("bn02_start \n");
+            // PRINT("bn02_start \n");
             bn02_start();
-            if(g_bp_service_timer)
-                osTimerStart(g_bp_service_timer,150);
+            // if(g_bp_service_timer)
+            //     osTimerStart(g_bp_service_timer,150);
         }else if (mail.comm.app == BP_SERVICE_CMD_STOP_CHECK){
-            PRINT("bn02_stop \n");
+            // PRINT("bn02_stop \n");
             bn02_stop();
-            if(g_bp_service_timer)
-                osTimerStop(g_bp_service_timer);
+            // if(g_bp_service_timer)
+            //     osTimerStop(g_bp_service_timer);
         }
     }
 }
@@ -116,7 +116,7 @@ errcode_t uapi_bp_service_init(void)
 
 void bp_int_callback(pin_t pin, uintptr_t param)
 {
-    PRINT("bp_int_callback %d 0x%X\n",pin,param);
+    // PRINT("bp_int_callback %d 0x%X\n",pin,param);
     uapi_gpio_clear_interrupt(pin);
     do_bp_service_check_msg(BP_SERVICE_CMD_TIMER_CHECK);
 }
index 552f30a..8bfc114 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: penglei 1624952103@qq.com
  * @Date: 2024-12-23 15:11:01
  * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-12-30 15:24:42
+ * @LastEditTime: 2025-05-23 15:23:32
  * @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
  */
@@ -83,8 +83,6 @@ static uint32_t hp4570_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
         }
         // ots_stop();
         g_charge_test_started = 0 ;
-    }else{
-        custom_exit_lpm();
     }
     return ERRCODE_SUCC;
 }
index 269ddfa..b1d7507 100644 (file)
@@ -89,8 +89,6 @@ static uint32_t hx3508_test(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
         }
         ots_stop();
         g_hx3508_test_started = 0 ;
-    }else{
-        custom_exit_lpm();
     }
     return ERRCODE_SUCC;
 }
index d502132..16fc440 100644 (file)
@@ -32,9 +32,9 @@ static void put_crown_result(int16_t x)
     {   
         return;
     }
-    if(abs(x)>=4 )
+    if(abs(x)>=8 )
     {
-        ots_result += x/4; //大于4的值除以4, 代表角度, 单位0.5°
+        ots_result += x/8; //大于4的值除以4, 代表角度, 单位0.5°
     }
     else
     {
index c918c73..6a74d84 100644 (file)
@@ -19,7 +19,7 @@
 */
 #define MIXO_SERVICE_CMD_TIMER_CHECK 0x11
 
-#define MIXO_SERVICE_TIMER_CHECK_MS  40
+#define MIXO_SERVICE_TIMER_CHECK_MS  30
 
 static bool g_mixo_service_initialled = false;