k12 lcd调试
authorp15692025051 <846603105@qq.com>
Mon, 18 Sep 2023 09:35:42 +0000 (17:35 +0800)
committerp15692025051 <846603105@qq.com>
Mon, 18 Sep 2023 09:35:42 +0000 (17:35 +0800)
2.sdk/sdk/gui/lv_drivers/display/gc9a01_spi.c
2.sdk/sdk/gui/lv_drivers/display/gc9a01_spi.h
2.sdk/sdk/gui/lv_drivers/indev/gh3018_source/gh3011_example_reg_array.c
2.sdk/sdk/gui/lv_watch/lv_apps/factory_mode/factory_mode_test.c
2.sdk/sdk/product/craneg_modem/config/watch/lv_drv_conf.h
2.sdk/sdk/product/craneg_modem/framework/hal/device/sensor/pulse/gh3011/example/gh3011_example_reg_array.c
2.sdk/sdk/product/craneg_modem/lv_gui_main.c

index befb4a1..44192df 100644 (file)
@@ -1,6 +1,6 @@
 #include "gc9a01_spi.h"
 
-#if USE_LCD_PANEL_GC9A01_4_1_SPI_POC
+#if USE_LCD_PANEL_GC9A01_SPI_WATCH
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -314,6 +314,292 @@ const static struct spi_write_t spi_init_poc[] = {
     {  SPI_WRITE_CMD,   0x29,  0  },
     //{  SPI_WRITE_DELAY, 120,   0  },
     {  SPI_WRITE_CMD,   0x2C,  0  },
+#elif DRV_PROJECT_Z5_K12
+    /****  ZH128H16209A LCD  ****/
+    {  SPI_WRITE_CMD,   0xFE,  0  },
+    {  SPI_WRITE_CMD,   0xEF,  0  }, 
+
+    {  SPI_WRITE_CMD,   0xEB,  1  },   
+    {  SPI_WRITE_DATA,  0x14,  0  }, 
+
+    {  SPI_WRITE_CMD,   0x84,  1  },                   
+    {  SPI_WRITE_DATA,  0x60,  0  }, //40->60 0xb5 en  20200924  james
+
+    {  SPI_WRITE_CMD,   0x85,  1  },
+    {  SPI_WRITE_DATA,  0xFF,  0  }, 
+
+    {  SPI_WRITE_CMD,   0x86,  1  },            
+    {  SPI_WRITE_DATA,  0xFF,  0  }, 
+
+    {  SPI_WRITE_CMD,   0x87,  1  },            
+    {  SPI_WRITE_DATA,  0xFF,  0  },
+
+    {  SPI_WRITE_CMD,   0x8E,  1  },        
+    {  SPI_WRITE_DATA,  0xFF,  0  }, 
+
+    {  SPI_WRITE_CMD,   0x8F,  1  },     
+    {  SPI_WRITE_DATA,  0xFF,  0  }, 
+
+
+    {  SPI_WRITE_CMD,   0x88,  1  },                   
+    {  SPI_WRITE_DATA,  0x0A,  0  },
+
+    {  SPI_WRITE_CMD,   0x89,  1  },                   
+    {  SPI_WRITE_DATA,  0x23,  0  }, ///spi 2data reg en 23
+
+    {  SPI_WRITE_CMD,   0x8A,  1  },                   
+    {  SPI_WRITE_DATA,  0x00,  0  }, 
+
+    {  SPI_WRITE_CMD,   0x8B,  1  },                   
+    {  SPI_WRITE_DATA,  0x80,  0  }, 
+
+    {  SPI_WRITE_CMD,   0x8C,  1  },                   
+    {  SPI_WRITE_DATA,  0x01,  0  }, 
+
+    //{  SPI_WRITE_CMD,   0x8D,  1  },                 
+    //{  SPI_WRITE_DATA,  0x01,  0  }, 
+
+    {  SPI_WRITE_CMD,   0x8D,  1  },                   
+    {  SPI_WRITE_DATA,  0x03,  0  },
+    
+    {  SPI_WRITE_CMD,  0xB5,  4  },
+       {  SPI_WRITE_DATA,  0x08,  0  }, 
+       {  SPI_WRITE_DATA,  0x09,  0  },
+       {  SPI_WRITE_DATA,  0x14,  0  }, 
+       {  SPI_WRITE_DATA,  0x08,  0  }, 
+
+    //Õýɨ
+    {  SPI_WRITE_CMD,   0xB6,  2  },                   
+    {  SPI_WRITE_DATA,  0x00,  0  }, 
+    { SPI_WRITE_DATA,  0x00,  0  }, //GS  SS  0x20
+
+    {  SPI_WRITE_CMD,   0x36,  1  },                   
+    {  SPI_WRITE_DATA,  0x28,  0  },
+
+    {  SPI_WRITE_CMD,   0x3A,  1  },                   
+    {  SPI_WRITE_DATA,  0x05,  0  }, 
+
+    {  SPI_WRITE_CMD,   0x90,  4  },                   
+    {  SPI_WRITE_DATA,  0x08,  0  },
+    {  SPI_WRITE_DATA,  0x08,  0  },
+    {  SPI_WRITE_DATA,  0x08,  0  },
+    {  SPI_WRITE_DATA,  0x08,  0  }, 
+
+    {  SPI_WRITE_CMD,   0xBA,  1  },//te ¿í¶È                  
+    {  SPI_WRITE_DATA,  0x0A,  0  }, //01=22us  A1=3MS
+
+    {  SPI_WRITE_CMD,   0xBD,  1  },                   
+    {  SPI_WRITE_DATA,  0x06,  0  }, 
+
+    {  SPI_WRITE_CMD,   0xBC,  1  },                   
+    {  SPI_WRITE_DATA,  0x00,  0  },
+
+    {  SPI_WRITE_CMD,   0xFF,  3  },                   
+    {  SPI_WRITE_DATA,  0x60,  0  },
+    {  SPI_WRITE_DATA,  0x01,  0  },
+    {  SPI_WRITE_DATA,  0x04,  0  },
+
+    
+    {  SPI_WRITE_CMD,   0xC3,  1  },                   
+    {  SPI_WRITE_DATA,  0x18,  0  },
+    {  SPI_WRITE_CMD,   0xC4,  1  },                   
+    {  SPI_WRITE_DATA,  0x18,  0  },
+
+    {  SPI_WRITE_CMD,   0xC9,  1  },                   
+    {  SPI_WRITE_DATA,  0x25,  0  },
+
+    {  SPI_WRITE_CMD,   0xBE,  1  },                   
+    {  SPI_WRITE_DATA,  0x11,  0  }, 
+
+    {  SPI_WRITE_CMD,   0xE1,  2  },
+    {  SPI_WRITE_DATA,  0x10,  0  },
+    {  SPI_WRITE_DATA,  0x0E,  0  },
+
+    {  SPI_WRITE_CMD,   0xDF,  3  },                   
+    {  SPI_WRITE_DATA,  0x21,  0  },
+    {  SPI_WRITE_DATA,  0x0c,  0  },
+    {  SPI_WRITE_DATA,  0x02,  0  },
+
+    {  SPI_WRITE_CMD,   0xF0,  6  },   
+    {  SPI_WRITE_DATA,  0x45,  0  },
+    {  SPI_WRITE_DATA,  0x09,  0  },
+    {  SPI_WRITE_DATA,  0x08,  0  },
+    {  SPI_WRITE_DATA,  0x08,  0  },
+    {  SPI_WRITE_DATA,  0x26,  0  },
+    {  SPI_WRITE_DATA,  0x2A,  0  },
+
+    {  SPI_WRITE_CMD,   0xF1,  6  },    
+    {  SPI_WRITE_DATA,  0x43,  0  },
+    {  SPI_WRITE_DATA,  0x70,  0  },
+    {  SPI_WRITE_DATA,  0x72,  0  },
+    {  SPI_WRITE_DATA,  0x36,  0  },
+    {  SPI_WRITE_DATA,  0x37,  0  },  
+    {  SPI_WRITE_DATA,  0x6F,  0  },
+
+
+    {  SPI_WRITE_CMD,   0xF2,  6  },   
+    {  SPI_WRITE_DATA,  0x45,  0  },
+    {  SPI_WRITE_DATA,  0x09,  0  },
+    {  SPI_WRITE_DATA,  0x08,  0  },
+    {  SPI_WRITE_DATA,  0x08,  0  },
+    {  SPI_WRITE_DATA,  0x26,  0  },
+    {  SPI_WRITE_DATA,  0x2A,  0  },
+
+    {  SPI_WRITE_CMD,   0xF3,  6  },   
+    {  SPI_WRITE_DATA,  0x43,  0  },
+    {  SPI_WRITE_DATA,  0x70,  0  },
+    {  SPI_WRITE_DATA,  0x72,  0  },
+    {  SPI_WRITE_DATA,  0x36,  0  },
+    {  SPI_WRITE_DATA,  0x37,  0  }, 
+    {  SPI_WRITE_DATA,  0x6F,  0  },
+
+    {  SPI_WRITE_CMD,   0xED,  2  },   
+    {  SPI_WRITE_DATA,  0x1B,  0  }, 
+    {  SPI_WRITE_DATA,  0x0B,  0  }, 
+
+    {  SPI_WRITE_CMD,   0xAE,  1  },                   
+    {  SPI_WRITE_DATA,  0x77,  0  },
+
+    {  SPI_WRITE_CMD,   0xCD,  1  },                   
+    {  SPI_WRITE_DATA,  0x63,  0  },           
+
+
+    {  SPI_WRITE_CMD,   0x70,  9  },                   
+    {  SPI_WRITE_DATA,  0x07,  0  },
+    {  SPI_WRITE_DATA,  0x07,  0  },
+    {  SPI_WRITE_DATA,  0x04,  0  },
+    {  SPI_WRITE_DATA,  0x0E,  0  }, //0x0e
+    {  SPI_WRITE_DATA,  0x0F,  0  }, //0x10
+    {  SPI_WRITE_DATA,  0x09,  0  },
+    {  SPI_WRITE_DATA,  0x07,  0  },
+    {  SPI_WRITE_DATA,  0x08,  0  },
+    {  SPI_WRITE_DATA,  0x03,  0  },
+
+    {  SPI_WRITE_CMD,   0xE8,  1  },                   
+    {  SPI_WRITE_DATA,  0x34,  0  },//34
+    /////////////////////////////////////////////
+    {  SPI_WRITE_CMD,   0x60,  8  },           
+    {  SPI_WRITE_DATA,  0x38,  0  },
+    {  SPI_WRITE_DATA,  0x0B,  0  },
+    {  SPI_WRITE_DATA,  0x6D,  0  },
+    {  SPI_WRITE_DATA,  0x6D,  0  },
+
+    {  SPI_WRITE_DATA,  0x39,  0  },
+    {  SPI_WRITE_DATA,  0xF0,  0  },
+    {  SPI_WRITE_DATA,  0x6D,  0  },
+    {  SPI_WRITE_DATA,  0x6D,  0  },
+
+
+    {  SPI_WRITE_CMD,   0x61,  8  },
+    {  SPI_WRITE_DATA,  0x38,  0  },
+    {  SPI_WRITE_DATA,  0xF4,  0  },
+    {  SPI_WRITE_DATA,  0x6D,  0  },
+    {  SPI_WRITE_DATA,  0x6D,  0  },
+
+    {  SPI_WRITE_DATA,  0x38,  0  },
+    //{  SPI_WRITE_DATA,  0xF7,  0  }, //20200718
+    {  SPI_WRITE_DATA,  0xF7,  0  },
+    {  SPI_WRITE_DATA,  0x6D,  0  },
+    {  SPI_WRITE_DATA,  0x6D,  0  },
+    /////////////////////////////////////
+    {  SPI_WRITE_CMD,   0x62,  12  },
+    {  SPI_WRITE_DATA,  0x38,  0  },
+    {  SPI_WRITE_DATA,  0x0D,  0  },
+    {  SPI_WRITE_DATA,  0x71,  0  },
+    {  SPI_WRITE_DATA,  0xED,  0  },
+    {  SPI_WRITE_DATA,  0x70,  0  },
+    {  SPI_WRITE_DATA,  0x70,  0  },
+    {  SPI_WRITE_DATA,  0x38,  0  },
+    {  SPI_WRITE_DATA,  0x0F,  0  },
+    {  SPI_WRITE_DATA,  0x71,  0  },
+    {  SPI_WRITE_DATA,  0xEF,  0  },
+    {  SPI_WRITE_DATA,  0x70,  0  }, 
+    {  SPI_WRITE_DATA,  0x70,  0  },
+
+    {  SPI_WRITE_CMD,   0x63,  12  },                  
+    {  SPI_WRITE_DATA,  0x38,  0  },
+    {  SPI_WRITE_DATA,  0x11,  0  },
+    {  SPI_WRITE_DATA,  0x71,  0  },
+    {  SPI_WRITE_DATA,  0xF1,  0  },
+    {  SPI_WRITE_DATA,  0x70,  0  },
+    {  SPI_WRITE_DATA,  0x70,  0  },
+    {  SPI_WRITE_DATA,  0x38,  0  },
+    {  SPI_WRITE_DATA,  0x13,  0  },
+    {  SPI_WRITE_DATA,  0x71,  0  },
+    {  SPI_WRITE_DATA,  0xF3,  0  },
+    {  SPI_WRITE_DATA,  0x70,  0  }, 
+    {  SPI_WRITE_DATA,  0x70,  0  },
+    ///////////////////////////////////////////////////////
+    {  SPI_WRITE_CMD,   0x64,  7  },                   
+    {  SPI_WRITE_DATA,  0x28,  0  },
+    {  SPI_WRITE_DATA,  0x29,  0  },
+    {  SPI_WRITE_DATA,  0xF1,  0  },
+    {  SPI_WRITE_DATA,  0x01,  0  },
+    {  SPI_WRITE_DATA,  0xF1,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  },
+    {  SPI_WRITE_DATA,  0x07,  0  },
+
+    //Õýɨ
+    {  SPI_WRITE_CMD,   0x66,  10  },                  
+    {  SPI_WRITE_DATA,  0x3C,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  },
+    {  SPI_WRITE_DATA,  0xCD,  0  },
+    {  SPI_WRITE_DATA,  0x67,  0  },
+    {  SPI_WRITE_DATA,  0x45,  0  },
+    {  SPI_WRITE_DATA,  0x45,  0  },
+    {  SPI_WRITE_DATA,  0x10,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  },
+
+    {  SPI_WRITE_CMD,   0x67,  10  },                  
+    {  SPI_WRITE_DATA,  0x00,  0  },
+    {  SPI_WRITE_DATA,  0x3C,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  },
+    {  SPI_WRITE_DATA,  0x01,  0  },
+    {  SPI_WRITE_DATA,  0x54,  0  },
+    {  SPI_WRITE_DATA,  0x10,  0  },
+    {  SPI_WRITE_DATA,  0x32,  0  },
+    {  SPI_WRITE_DATA,  0x98,  0  },
+
+
+                                       
+    {  SPI_WRITE_CMD,   0x74,  7  },                   
+    {  SPI_WRITE_DATA,  0x10,  0  },   
+    {  SPI_WRITE_DATA,  0x80,  0  },//68 = 90HZ, C0 =50HZ, 4D=80HZ, 7E=100HZ  80=60HZ,5B=85HZ,53 =82HZ,59=84HZ 
+    {  SPI_WRITE_DATA,  0x80,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  }, 
+    {  SPI_WRITE_DATA,  0x00,  0  }, 
+    {  SPI_WRITE_DATA,  0x4E,  0  },
+    {  SPI_WRITE_DATA,  0x00,  0  },                                   
+
+    {  SPI_WRITE_CMD,   0x98,  2  },                   
+    {  SPI_WRITE_DATA,  0x3e,  0  },
+    {  SPI_WRITE_DATA,  0x07,  0  },
+
+    {  SPI_WRITE_CMD,   0x99,  2  },                   
+    {  SPI_WRITE_DATA,  0x3e,  0  },
+    {  SPI_WRITE_DATA,  0x07,  0  },
+
+    {  SPI_WRITE_CMD,   0x35,  1  },   //¿ªÆôTE
+    {  SPI_WRITE_DATA,  0x00,  0  }, 
+
+    {  SPI_WRITE_CMD,   0x44,  2  },   //ÇÐÏßλÖà             
+    {  SPI_WRITE_DATA,  0x00,  0  },
+    {  SPI_WRITE_DATA,  0xCA,  0  },
+
+    {  SPI_WRITE_CMD,   0x21,  0  },
+    {  SPI_WRITE_DELAY, 120,   0  },
+    //--------end gamma setting--------------//
+
+    {  SPI_WRITE_CMD,   0x11,  0  },
+    {  SPI_WRITE_DELAY, 120,   0  },
+    {  SPI_WRITE_CMD,   0x29,  0  },
+    //{  SPI_WRITE_DELAY, 120,   0  },
+    {  SPI_WRITE_CMD,   0x2C,  0  },
+
 #else
     /***** HAILICHUANG LCD ******/
     {  SPI_WRITE_CMD,  0xFE,  0  },
@@ -867,13 +1153,13 @@ const static struct spi_write_t spi_display_off_cmds[] = {
 };
 
 const static struct spi_timing lcd_gc9a01_spi_timing = {
-    62500, /* 52000, 62500, 31200, 26000 KHz */
+    52000, /* 52000, 62500, 31200, 26000 KHz */
     5000, /* KHz*/
 };
 
 const static struct spi_info lcd_gc9a01_spi_info_poc = {
-    4,
-    1,
+    3,
+    2,
     1,
     SPI_FORMAT_RGB565,
     0,
index 8ec65da..ca2a393 100644 (file)
@@ -7,13 +7,13 @@ extern "C" {
 
 #include "lv_drv_conf.h"
 
-#if USE_LCD_PANEL_GC9A01_4_1_SPI_POC
+#if USE_LCD_PANEL_GC9A01_SPI_WATCH
 
 #include "crane_lcdc.h"
 
 extern struct crane_panel_t gc9a01_spi;
 
-#endif /* USE_LCD_PANEL_GC9A01_4_1_SPI_POC */
+#endif /* USE_LCD_PANEL_GC9A01_SPI_WATCH */
 
 #ifdef __cplusplus
 } /* extern "C" */
index f21ed6d..ca1cd74 100644 (file)
@@ -1,7 +1,9 @@
 /**
  * @copyright (c) 2003 - 2020, Goodix Co., Ltd. All rights reserved.
  *
- * @file    gh3011_example_reg_array.c
+ * @file    gh3011_example_reg_array.c  
+ * 
+ * 双灯!!!!!!!!!!!!!!!!!!!!!!!
  *
  * @brief   example code for gh3011 (condensed  hbd_ctrl lib)
  *
@@ -10,7 +12,6 @@
 
 #include "gh3011_example_common.h"
 
-
 // init config
 ST_HBD_INIT_CONFIG_TYPE gh30x_init_config =
 {
@@ -387,6 +388,83 @@ const ST_REGISTER hrv_reg_config_array[] =
 };
 const uint8_t hrv_reg_config_array_len = sizeof(hrv_reg_config_array)/sizeof(hrv_reg_config_array[0]);
 
+/* bpf config */
+const ST_REGISTER bpf_reg_config_array[] = 
+{
+    {0x0100, 0xf530}, 
+    {0x0102, 0x09C4}, 
+    {0x0104, 0xba98}, 
+    {0x0106, 0x2710}, 
+    {0x0108, 0xf530}, 
+    {0x010a, 0x2710}, 
+    {0x010c, 0xf148}, 
+    {0x010e, 0x0fa0}, 
+    {0x0110, 0xb6b0}, 
+    {0x0112, 0x30d4}, 
+    {0x0114, 0xf148}, 
+    {0x0116, 0x30d4}, 
+    {0x011c, 0x01FF}, 
+    {0x011e, 0x01FF}, 
+    {0x0120, 0x01FF}, 
+    {0x0126, 0x0202}, 
+    {0x0128, 0x0002}, 
+    {0x0130, 0x0746}, 
+    {0x0132, 0x1546}, 
+    {0x0134, 0x0246}, 
+    {0x16, 0x80}, 
+    {0x80, 0x605}, 
+    {0x82, 0x1c6}, 
+    {0x84, 0x121}, 
+    {0x118, 0x1f69}, 
+    {0x11a, 0x0000}, 
+    {0x012e, 0x0000}, 
+    {0x0136, 0x0A0}, 
+    {0x0186, 0x0406}, 
+    {0x0180, 0x006D}, 
+    {0x12a, 0x0606}, 
+    {0x12c, 0x06}, 
+    {0x10C0, 0x01}, 
+    {0xC2, 0xFFFF}, 
+    {0xC4, 0x034b}, 
+    {0xC6, 0xFFFF}, 
+    {0xC8, 0x034b}, 
+    {0xCA, 0x00A0}, 
+    {0xCC, 0x006E}, 
+    {0xCE, 0x0251}, 
+    {0xD0, 0x0}, 
+    {0xD4, 0x0251}, 
+    {0xD6, 0x0}, 
+    {0xD8, 0x0505}, 
+    {0xDA, 0x0000}, 
+    {0xDC, 0x0101}, 
+    {0xDE, 0x0000}, 
+    {0x2A00, 0x5490}, 
+    {0x2A02, 0x0000}, 
+    {0x2A03, 0xea60}, 
+    {0x2A04, 0x0000}, 
+    {0x2A05, 0x1388}, 
+    {0x2A06, 0x0000}, 
+    {0x2A07, 0xe290}, 
+    {0x2A08, 0x0000}, 
+    {0x2A09, 0x1f40}, 
+    {0x2A0A, 0x0000}, 
+    {0x2A0B, 0x1388}, 
+    {0x2A0C, 0x0000}, 
+    {0x2A0D, 0xea60}, 
+    {0x2A0E, 0x0000}, 
+    {0x2A0F, 0x4650}, 
+    {0x2A10, 0x0000}, 
+    {0x2A11, 0xe290}, 
+    {0x2A12, 0x0000}, 
+    {0x2A13, 0x4e20}, 
+    {0x2A14, 0x0000}, 
+    {0x2A15, 0x1B58}, 
+    {0x2A16, 0x0101}, 
+    {0x2A17, 0x0602}, 
+    {0x2A34, 0x0F0F},
+};
+const uint8_t bpf_reg_config_array_len = sizeof(bpf_reg_config_array)/sizeof(bpf_reg_config_array[0]);
+
 /* getrawdata config*/
 const ST_REGISTER getrawdata_reg_config_array[] = 
 {
index 5e70866..8d7e2be 100644 (file)
@@ -954,26 +954,33 @@ static void factorymode_gps_location_info_update(lv_anim_t * anim)
     uint8_t SatUsed = 0;
     uint8_t SatInView = 0;
     //char Locate[2] = {0};
-    char Snr[GPS_SATELLIES_CHANNEL_COUNT*5] = {0};
+    char Snr[GPS_SATELLIES_CHANNEL_COUNT*12] = {0};
        memset((void *)&pBuf, 0x00, sizeof(gpsNmeaDataT));
     ReadNmeaData(&pBuf);
 
     SatUsed = pBuf.NmeaGgaData.SatellitesUsed;
     SatInView = pBuf.NmeaGsvData.SatellitesInView;
-
-    for(int i = 0;i<GPS_SATELLIES_CHANNEL_COUNT;i++){
-        char snr_str[8] = {0};
-               if(pBuf.NmeaGsvData.Satellite[i].SNR)
-               {
-               snprintf(snr_str, 8, "%02d", pBuf.NmeaGsvData.Satellite[i].SNR);
-               strcat(Snr, snr_str);
-               }
-        if(i < GPS_SATELLIES_CHANNEL_COUNT-1){
-            strcat(Snr, ",");
-            if(i % 9 == 0)
-                strcat(Snr, "\n");
+    int count = 0;
+    strcat(Snr, "\n");
+    for(int j = 1; j<200 ;j++)
+    {
+        for(int i = 0;i<GPS_SATELLIES_CHANNEL_COUNT;i++){
+            if(pBuf.NmeaGsvData.Satellite[i].PRN != j)
+                continue;
+            char snr_str[24] = {0};
+            if(pBuf.NmeaGsvData.Satellite[i].SNR)
+            {
+                snprintf(snr_str, 24, "%03d:[%02d]  ", pBuf.NmeaGsvData.Satellite[i].PRN,pBuf.NmeaGsvData.Satellite[i].SNR);
+                count++;
+                strcat(Snr, snr_str);
+                if (count%2==0)
+                    strcat(Snr, "\n");
+                
+            }
+            
         }
     }
+    
     //sprintf(Locate, "%c", pBuf.NmeaRmcData.Status);
 
 
@@ -1014,6 +1021,8 @@ static void factorymode_gps_location_info_update(lv_anim_t * anim)
 
 static lv_obj_t * factorymode_gps_test_create(lv_obj_t * activity_obj)
 {
+    // printf("factorymode_gps_test_create1:\n");
+    // uart_printf("factorymode_gps_test_create2\n");
     if(activity_obj == NULL) {
         lv_watch_activity_ext_t activity_ext;
         memset(&activity_ext, 0, sizeof(lv_watch_activity_ext_t));
index 0bc247d..01537a1 100644 (file)
 
 #define USE_LCD_PANEL_ILI9806E_MIPI      0
 
-#ifndef USE_LCD_PANEL_GC9A01_4_1_SPI_POC
-#  define USE_LCD_PANEL_GC9A01_4_1_SPI_POC   0
+#ifndef USE_LCD_PANEL_GC9A01_SPI_WATCH
+#ifdef DRV_PROJECT_Z5_K12
+    #  define USE_LCD_PANEL_GC9A01_SPI_WATCH   1
+#else
+    #  define USE_LCD_PANEL_GC9A01_SPI_WATCH   0
+#endif
 #endif
 
 #ifndef USE_LCD_PANEL_ST9A01_4_1_SPI_POC
 #endif
 
 #ifndef USE_LCD_PANEL_GC9307_4_1_SPI_POC
-#  define USE_LCD_PANEL_GC9307_4_1_SPI_POC   1
+#ifdef DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_K5
+    #  define USE_LCD_PANEL_GC9307_4_1_SPI_POC   1
+#else
+    #  define USE_LCD_PANEL_GC9307_4_1_SPI_POC   0
+#endif
 #endif
 
 #ifndef USE_LCD_PANEL_ST7789V2_SPI_WATCH
-#  define USE_LCD_PANEL_ST7789V2_SPI_WATCH   1
+#ifdef DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_K5
+    #  define USE_LCD_PANEL_ST7789V2_SPI_WATCH   1
+#else
+    #  define USE_LCD_PANEL_ST7789V2_SPI_WATCH   0
+#endif
 #endif
 
 #ifndef USE_LCD_RB_SWAP_DISABLE
index 71bef9c..b71bf85 100644 (file)
@@ -1,7 +1,9 @@
 /**
  * @copyright (c) 2003 - 2020, Goodix Co., Ltd. All rights reserved.
  *
- * @file    gh3011_example_reg_array.c
+ * @file    gh3011_example_reg_array.c  
+ * 
+ * 双灯!!!!!!!!!!!!!!!!!!!!!!!
  *
  * @brief   example code for gh3011 (condensed  hbd_ctrl lib)
  *
@@ -38,129 +40,141 @@ ST_HBD_INIT_CONFIG_TYPE gh30x_init_config =
 /* hb config */
 const ST_REGISTER hb_adt_confirm_reg_config[] = 
 {
+    {0x0002, 0x132a},
+    {0x000C, 0x09f0},
+    {0x0016, 0x051e},
+    {0x0080, 0x0205},
+    {0x0082, 0x01c2},
+    {0x0084, 0x0021},
+    {0x00C2, 0xffff},
+    {0x00C4, 0x146e},
+    {0x00C6, 0xffff},
+    {0x00C8, 0x146e},
+    {0x00CA, 0x00a0},
+    {0x00CC, 0x006e},
+    {0x00CE, 0x13f1},
+    {0x00D0, 0x0000},
+    {0x00D4, 0x13f1},
+    {0x00D6, 0x0000},
+    {0x00D8, 0x0303},
+    {0x00DA, 0x0101},
+    {0x00DC, 0x0101},
+    {0x00DE, 0x0000},
     {0x0100, 0xf530},
-    {0x0102, 0x1388},
-    {0x0104, 0xba98},
-    {0x0106, 0x09C4},
+    {0x0102, 0x4e20},
+    {0x0104, 0xf530},
+    {0x0106, 0x2710},
     {0x0108, 0xf530},
-    {0x010a, 0x2710},
-    {0x010c, 0xf148},
-    {0x010e, 0x1d4c},
-    {0x0110, 0xb6b0},
-    {0x0112, 0x0BB8},
+    {0x010A, 0x2710},
+    {0x010C, 0xf148},
+    {0x010E, 0x57e4},
+    {0x0110, 0xf148},
+    {0x0112, 0x30d4},
     {0x0114, 0xf148},
     {0x0116, 0x30d4},
-    {0x011c, 0x01FF},
-    {0x011e, 0x017F},
-    {0x0120, 0x01FF},
+    {0x0118, 0x0032},
+    {0x011A, 0x0000},
+    {0x011C, 0x01ff},
+    {0x011E, 0x01ff},
+    {0x0120, 0x01ff},
     {0x0126, 0x0202},
     {0x0128, 0x0002},
-    {0x0130, 0x0646},
-    {0x0132, 0x1346},
-    {0x0134, 0x0246},
-    {0x16, 0x51e},
-    {0x80, 0x605},
-    {0x82, 0x1c6},
-    {0x84, 0x122},
-    {0x118, 0x2626},
-    {0x11a, 0x0000},
-    {0x012e, 0x0000},
-    {0x0136, 0x0010},
-    {0x0186, 0x0406},
-    {0x0180, 0x0026},
-    {0x12a, 0x0606},
-    {0x12c, 0x06},
-    {0x10C0, 0x01},
-    {0xC2, 0xFFFF},
-    {0xC4, 0x034b},
-    {0xC6, 0xFFFF},
-    {0xC8, 0x034b},
-    {0xCA, 0x00A0},
-    {0xCC, 0x006E},
-    {0xCE, 0x0251},
-    {0xD0, 0x0},
-    {0xD4, 0x0251},
-    {0xD6, 0x0},
-    {0xD8, 0x0505},
-    {0xDA, 0x0000},
-    {0xDC, 0x0101},
-    {0xDE, 0x0000},
+    {0x012A, 0x0606},
+    {0x012C, 0x0006},
+    {0x012E, 0x0000},
+    {0x0130, 0x0346},
+    {0x0132, 0x0546},
+    {0x0134, 0x0546},
+    {0x0136, 0x0000},
+    {0x0180, 0x008d},
+    {0x0186, 0x0001},
+    {0x10C0, 0x0001},
     {0x2A16, 0x0000},
 };
 const uint8_t hb_adt_confirm_reg_config_len = sizeof(hb_adt_confirm_reg_config)/sizeof(hb_adt_confirm_reg_config[0]);
 
 const ST_REGISTER hb_reg_config_array[] = 
 {
+    {0x0002, 0x132a},
+    {0x000C, 0x09f0},
+    {0x0016, 0x051e},
+    {0x0080, 0x0405},
+    {0x0082, 0x01c4},
+    {0x0084, 0x0123},
+    {0x00C2, 0xffff},
+    {0x00C4, 0x146e},
+    {0x00C6, 0xffff},
+    {0x00C8, 0x146e},
+    {0x00CA, 0x00a0},
+    {0x00CC, 0x006e},
+    {0x00CE, 0xffff},
+    {0x00D0, 0x05e6},
+    {0x00D4, 0xffff},
+    {0x00D6, 0x05e6},
+    {0x00D8, 0x0303},
+    {0x00DA, 0x0101},
+    {0x00DC, 0x0101},
+    {0x00DE, 0x0000},
     {0x0100, 0xf530},
-    {0x0102, 0x1388},
-    {0x0104, 0xba98},
-    {0x0106, 0x09C4},
+    {0x0102, 0x09c4},
+    {0x0104, 0xf530},
+    {0x0106, 0x4e20},
     {0x0108, 0xf530},
-    {0x010a, 0x2710},
-    {0x010c, 0xf148},
-    {0x010e, 0x1d4c},
-    {0x0110, 0xb6b0},
-    {0x0112, 0x0BB8},
+    {0x010A, 0x2710},
+    {0x010C, 0xf148},
+    {0x010E, 0x0fa0},
+    {0x0110, 0xf148},
+    {0x0112, 0x57e4},
     {0x0114, 0xf148},
     {0x0116, 0x30d4},
-    {0x011c, 0x01FF},
-    {0x011e, 0x017F},
-    {0x0120, 0x01FF},
+    {0x0118, 0x32a0},
+    {0x011A, 0x0000},
+    {0x011C, 0x01ff},
+    {0x011E, 0x01ff},
+    {0x0120, 0x01ff},
     {0x0126, 0x0202},
     {0x0128, 0x0002},
-    {0x0130, 0x0646},
-    {0x0132, 0x1346},
-    {0x0134, 0x0246},
-    {0x16, 0x51e},
-    {0x80, 0x605},
-    {0x82, 0x1c6},
-    {0x84, 0x123},
-    {0x118, 0x2626},
-    {0x11a, 0x0000},
-    {0x012e, 0x0003},
-    {0x0136, 0x0DB3},
-    {0x0186, 0x1807},
-    {0x0180, 0x8D},
-    {0x12a, 0x0606},
-    {0x12c, 0x06},
-    {0x10C0, 0x01},
-    {0xC2, 0xFFFF},
-    {0xC4, 0x034b},
-    {0xC6, 0xFFFF},
-    {0xC8, 0x034b},
-    {0xCA, 0x00A0},
-    {0xCC, 0x006E},
-    {0xCE, 0x0251},
-    {0xD0, 0x0},
-    {0xD4, 0x0251},
-    {0xD6, 0x0},
-    {0xD8, 0x0505},
-    {0xDA, 0x0000},
-    {0xDC, 0x0101},
-    {0xDE, 0x0000},
-    {0x2A00, 0x5490},
+    {0x012A, 0x0606},
+    {0x012C, 0x0006},
+    {0x012E, 0x0000},
+    {0x0130, 0x0746},
+    {0x0132, 0x0346},
+    {0x0134, 0x0546},
+    {0x0136, 0x0010},
+    {0x0180, 0x008d},
+    {0x0186, 0x0407},
+    {0x10C0, 0x0001},
+    {0x2A00, 0xffff},
     {0x2A02, 0x0000},
     {0x2A03, 0xea60},
     {0x2A04, 0x0000},
-    {0x2A05, 0x4650},
+    {0x2A05, 0x1388},
     {0x2A06, 0x0000},
-    {0x2A07, 0x61A8},
+    {0x2A07, 0xe290},
     {0x2A08, 0x0000},
-    {0x2A09, 0x4e20},
+    {0x2A09, 0x1f40},
     {0x2A0A, 0x0000},
-    {0x2A0B, 0x1388},
+    {0x2A0B, 0x06ee},
     {0x2A0C, 0x0000},
     {0x2A0D, 0xea60},
     {0x2A0E, 0x0000},
-    {0x2A0F, 0x4650},
+    {0x2A0F, 0x9c40},
     {0x2A10, 0x0000},
     {0x2A11, 0xe290},
     {0x2A12, 0x0000},
-    {0x2A13, 0x4e20},
+    {0x2A13, 0xafc8},
     {0x2A14, 0x0000},
-    {0x2A15, 0x03e8},
-    {0x2A16, 0x0000},
+    {0x2A15, 0x28b1},
+    {0x2A16, 0x0001},
     {0x2A17, 0x0602},
+    {0x2A18, 0x0005},
+    {0x2A34, 0x0a0f},
+    {0x2A40, 0x1E50},   
+    {0x2B03, 0x0001},
+    {0x2B07, 0x0014},
+    {0x2B0B, 0x0000},    
+    {0x2B0C, 0x0014},
+    {0x2B0F, 0x001E},
 };
 const uint8_t hb_reg_config_array_len = sizeof(hb_reg_config_array)/sizeof(hb_reg_config_array[0]);
 
@@ -193,137 +207,95 @@ const uint8_t hb_wear_confirm_reg_config_array_len = sizeof(hb_wear_confirm_reg_
 /* spo2 config */
 const ST_REGISTER spo2_reg_config_array[] = 
 {
-    {0x0100, 0xf530},
-    {0x0102, 0x4e20},
-    {0x0104, 0xf530},
-    {0x0106, 0x4e20},
-    {0x0108, 0xf530},
-    {0x010a, 0x2710},
-    {0x010c, 0xf148},
-    {0x010e, 0x57e4},
-    {0x0110, 0xf148},
-    {0x0112, 0x57e4},
-    {0x0114, 0xf148},
-    {0x0116, 0x30d4},
-    {0x011c, 0x01FF},
-    {0x011e, 0x01FF},
-    {0x0120, 0x01FF},
-    {0x0126, 0x0202},
-    {0x0128, 0x0002},
-    {0x0130, 0x1546},
-    {0x0132, 0x1746},
-    {0x0134, 0x0546},
-    {0x16, 0x0147},
-    {0x80, 0x605},
-    {0x82, 0x1c6},
-    {0x84, 0x23},
-    {0x118, 0x6666},
-    {0x11a, 0x0000},
-    {0x012e, 0x00},
-    {0x0136, 0x0000},
-    {0x0186, 0x0406},
-    {0x0180, 0x8D},
-    {0x12a, 0x0303},
-    {0x12c, 0x03},
-    {0xC2, 0xFFFF},
-    {0xC4, 0x0528},
-    {0xC6, 0xFFFF},
-    {0xC8, 0x0528},
-    {0xCA, 0x00A0},
-    {0xCC, 0x006E},
-    {0xCE, 0x042e},
-    {0xD0, 0x0},
-    {0xD4, 0x042e},
-    {0xD6, 0x0},
-    {0xD8, 0x0303},
-    {0xDA, 0x0101},
-    {0xDC, 0x0101},
-    {0xDE, 0x0000},
-    {0x2030, 0xFFFE },
-    {0x2031, 0x4837},
-    {0x2032, 0xFFFD},
-    {0x2033, 0xEC75},
-    {0x2034, 0x10},
-    {0x2035, 0xAD73},
-    {0x2039, 0x1},
-    {0x2100, 0xC},
-    {0x2101, 0xF850},
-    {0x2102, 0x7},
-    {0x2103, 0xA120},
-    {0x2104, 0xE},
-    {0x2105, 0x7EF0},
-    {0x2106, 0xD},
-    {0x2107, 0xBBA0},
-    {0x2108, 0xB},
-    {0x2109, 0x71B0},
-    {0x210A, 0x0},
-    {0x210B, 0x3E8},
-    {0x210C, 0x0},
-    {0x210D, 0x7D0},
-    {0x210E, 0x0},
-    {0x210F, 0x320},
-    {0x2110, 0x0},
-    {0x2111, 0x1F4},
-    {0x2112, 0x0},
-    {0x2113, 0xC350},
-    {0x2114, 0x1},
-    {0x2115, 0x86A0},
-    {0x2116, 0x1},
-    {0x2117, 0x86A0},
-    {0x2118, 0x2},
-    {0x2119, 0x49F0},
-    {0x211A, 0x0},
-    {0x211B, 0x7530},
-    {0x211C, 0x1},
-    {0x211D, 0x86A0},
-    {0x211E, 0x1},
-    {0x211F, 0x3880},
-    {0x2120, 0x0},
-    {0x2121, 0x4E20},
-    {0x2300 , 0x01},
-    {0x2301 , 0x01},
-    {0x2400 , 0x03},
-    {0x2401 , 0x0D40},
-    {0x2402 , 0x01},
-    {0x2403 , 0x86A0},
-    {0x2404 , 0x0},
-    {0x2405 , 0x7530},
-    {0x2406 , 0x0},
-    {0x2407 , 0x7530},
-    {0x2500 , 0x0},
-    {0x2501, 0x0},
-    {0x2600, 0x0},
-    {0x2601, 0x0},
-    {0x2700, 0x1},
-    {0x2701, 0x1},
-    {0x2702, 0x1},
-    {0x2703, 0x1},
-    {0x2704, 0x5A},
-    {0x2705, 0x60},
-    {0x2706, 0x2},
-    {0x2A00, 0x00FF},
-    {0x2A02, 0x0000},
-    {0x2A03, 0xea60},
-    {0x2A04, 0x0000},
-    {0x2A05, 0x9470},
-    {0x2A06, 0x0000},
-    {0x2A07, 0xe290},
-    {0x2A08, 0x0000},
-    {0x2A09, 0x9c40},
-    {0x2A0A, 0x0000},
-    {0x2A0B, 0x03e8},
-    {0x2A0C, 0x0000},
-    {0x2A0D, 0xea60},
-    {0x2A0E, 0x0000},
-    {0x2A0F, 0x9470},
-    {0x2A10, 0x0000},
-    {0x2A11, 0xe290},
-    {0x2A12, 0x0000},
-    {0x2A13, 0x9c40},
-    {0x2A14, 0x0000},
-    {0x2A15, 0x03e8},
-    {0x2A16, 0x0101},
+    {0x0100, 0xf530}, 
+    {0x0102, 0x4e20}, 
+    {0x0104, 0xf530}, 
+    {0x0106, 0x4e20}, 
+    {0x0108, 0xf530}, 
+    {0x010a, 0x2710}, 
+    {0x010c, 0xf148}, 
+    {0x010e, 0x57e4}, 
+    {0x0110, 0xf148}, 
+    {0x0112, 0x57e4}, 
+    {0x0114, 0xf148}, 
+    {0x0116, 0x30d4}, 
+    {0x011c, 0x01FF}, 
+    {0x011e, 0x01FF}, 
+    {0x0120, 0x01FF}, 
+    {0x0126, 0x0202}, 
+    {0x0128, 0x0002}, 
+    {0x0130, 0x0346}, 
+    {0x0132, 0x0446}, 
+    {0x0134, 0x0546}, 
+    {0x16, 0x0147}, 
+    {0x80, 0x605}, 
+    {0x82, 0x1c6}, 
+    {0x84, 0x23}, 
+    {0x118, 0x9055}, 
+    {0x11a, 0x0000}, 
+    {0x012e, 0x00}, 
+    {0x0136, 0x0000}, 
+    {0x0186, 0x0406}, 
+    {0x0180, 0x8D}, 
+    {0x12a, 0x0303}, 
+    {0x12c, 0x03}, 
+    {0xC2, 0xFFFF}, 
+    {0xC4, 0x0528}, 
+    {0xC6, 0xFFFF}, 
+    {0xC8, 0x0528}, 
+    {0xCA, 0x00A0}, 
+    {0xCC, 0x006E}, 
+    {0xCE, 0x042e}, 
+    {0xD0, 0x0}, 
+    {0xD4, 0x042e}, 
+    {0xD6, 0x0}, 
+    {0xD8, 0x0303}, 
+    {0xDA, 0x0101}, 
+    {0xDC, 0x0101}, 
+    {0xDE, 0x0000}, 
+    {0x10C0, 0x0001}, 
+    {0x2030, 0xFFFF}, 
+    {0x2031, 0xAB12}, 
+    {0x2032, 0xFFFC}, 
+    {0x2033, 0xECEC}, 
+    {0x2034, 0x0010}, 
+    {0x2035, 0x71D2}, 
+    {0x2A00, 0xffff}, 
+    {0x2A02, 0x0000}, 
+    {0x2A03, 0xea60}, 
+    {0x2A04, 0x0000}, 
+    {0x2A05, 0x9470}, 
+    {0x2A06, 0x0000}, 
+    {0x2A07, 0xe290}, 
+    {0x2A08, 0x0000}, 
+    {0x2A09, 0x9c40}, 
+    {0x2A0A, 0x0000}, 
+    {0x2A0B, 0x2710}, 
+    {0x2A0C, 0x0000}, 
+    {0x2A0D, 0xea60}, 
+    {0x2A0E, 0x0000}, 
+    {0x2A0F, 0x9470}, 
+    {0x2A10, 0x0000}, 
+    {0x2A11, 0xe290}, 
+    {0x2A12, 0x0000}, 
+    {0x2A13, 0x9c40}, 
+    {0x2A14, 0x0000}, 
+    {0x2A15, 0x36B0}, 
+    {0x2A16, 0x0101},  //Enable 
     {0x2A17, 0x0602},
+    {0x2A18, 0x0005},
+    //{0x2A30, 0x0F0F},
+    //0x2A32 - 0x2A34: Important
+    {0x2A32, 0x0A0A},     
+    {0x2A34, 0x0A0F},
+    //0x2A35 - 0x2A3A: Motion mode
+    //0x2A3B - 0x2A3F: Special Applications
+    {0x2A40, 0x0050},   
+    {0x2B03, 0x0001},
+    {0x2B07, 0x0014},
+    {0x2B0B, 0x0000},    
+    {0x2B0C, 0x0014},
+    {0x2B0F, 0x001E},
 };
 const uint8_t spo2_reg_config_array_len = sizeof(spo2_reg_config_array)/sizeof(spo2_reg_config_array[0]);
 
@@ -332,59 +304,243 @@ const uint8_t spo2_reg_config_array_len = sizeof(spo2_reg_config_array)/sizeof(s
 /* hrv config */
 const ST_REGISTER hrv_reg_config_array[] = 
 {
-    {0x0100, 0xf530},
-    {0x0102, 0x1388},
-    {0x0104, 0xba98},
-    {0x0106, 0x09C4},
-    {0x0108, 0xf530},
-    {0x010a, 0x2710},
-    {0x010c, 0xf148},
-    {0x010e, 0x1d4c},
-    {0x0110, 0xb6b0},
-    {0x0112, 0x0BB8},
-    {0x0114, 0xf148},
-    {0x0116, 0x30d4},
-    {0x011c, 0x01FF},
-    {0x011e, 0x017F},
-    {0x0120, 0x01FF},
-    {0x0126, 0x0202},
-    {0x0128, 0x0002},
-    {0x0130, 0x0646},
-    {0x0132, 0x1346},
-    {0x0134, 0x0246},
-    {0x16, 0xA3},
-    {0x80, 0x605},
-    {0x82, 0x1c6},
-    {0x84, 0x161},
-    {0x118, 0x2626},
-    {0x11a, 0x0000},
-    {0x012e, 0x0001},
-    {0x0136, 0x0011},
-    {0x0186, 0x0406},
-    {0x0180, 0x0026},
-    {0x12a, 0x0606},
-    {0x12c, 0x06},
-    {0x10C0, 0x01},
-    {0xC2, 0xFFFF},
-    {0xC4, 0x034b},
-    {0xC6, 0xFFFF},
-    {0xC8, 0x034b},
-    {0xCA, 0x00A0},
-    {0xCC, 0x006E},
-    {0xCE, 0x0251},
-    {0xD0, 0x0},
-    {0xD4, 0x0251},
-    {0xD6, 0x0},
-    {0xD8, 0x0505},
-    {0xDA, 0x0000},
-    {0xDC, 0x0101},
-    {0xDE, 0x0000},
-    {0x2A16, 0x0000},
+    {0x0100, 0xf530}, 
+    {0x0102, 0x09C4}, 
+    {0x0104, 0xba98}, 
+    {0x0106, 0x2710}, 
+    {0x0108, 0xf530}, 
+    {0x010a, 0x2710}, 
+    {0x010c, 0xf148}, 
+    {0x010e, 0x0fa0}, 
+    {0x0110, 0xb6b0}, 
+    {0x0112, 0x30d4}, 
+    {0x0114, 0xf148}, 
+    {0x0116, 0x30d4}, 
+    {0x011c, 0x01FF}, 
+    {0x011e, 0x01FF}, 
+    {0x0120, 0x01FF}, 
+    {0x0126, 0x0202}, 
+    {0x0128, 0x0002}, 
+    {0x0130, 0x0746}, 
+    {0x0132, 0x1546}, 
+    {0x0134, 0x0246}, 
+    {0x16, 0x0A3}, 
+    {0x80, 0x605}, 
+    {0x82, 0x1c6}, 
+    {0x84, 0x121}, 
+    {0x118, 0x1f69}, 
+    {0x11a, 0x0000}, 
+    {0x012e, 0x0000}, 
+    {0x0136, 0x0A0}, 
+    {0x0186, 0x1807}, 
+    {0x0180, 0x8D}, 
+    {0x12a, 0x0606}, 
+    {0x12c, 0x06}, 
+    {0x10C0, 0x01}, 
+    {0xC2, 0xFFFF}, 
+    {0xC4, 0x034b}, 
+    {0xC6, 0xFFFF}, 
+    {0xC8, 0x034b}, 
+    {0xCA, 0x00A0}, 
+    {0xCC, 0x006E}, 
+    {0xCE, 0x0251}, 
+    {0xD0, 0x0}, 
+    {0xD4, 0x0251}, 
+    {0xD6, 0x0}, 
+    {0xD8, 0x0505}, 
+    {0xDA, 0x0000}, 
+    {0xDC, 0x0101}, 
+    {0xDE, 0x0000}, 
+    {0x2A00, 0xffff}, 
+    {0x2A02, 0x0000}, 
+    {0x2A03, 0xea60}, 
+    {0x2A04, 0x0000}, 
+    {0x2A05, 0x1388}, 
+    {0x2A06, 0x0000}, 
+    {0x2A07, 0xe290}, 
+    {0x2A08, 0x0000}, 
+    {0x2A09, 0x1f40}, 
+    {0x2A0A, 0x0000}, 
+    {0x2A0B, 0x03E8},
+    {0x2A0C, 0x0000}, 
+    {0x2A0D, 0xea60}, 
+    {0x2A0E, 0x0000}, 
+    {0x2A0F, 0x4650}, 
+    {0x2A10, 0x0000}, 
+    {0x2A11, 0xe290}, 
+    {0x2A12, 0x0000}, 
+    {0x2A13, 0x4e20}, 
+    {0x2A14, 0x0000}, 
+    {0x2A15, 0x1B58}, 
+    {0x2A16, 0x0001},  //Enable        
+    {0x2A17, 0x0602},
+    //{0x2A30, 0x0F0F},
+    //0x2A32 - 0x2A34: Important
+    {0x2A32, 0x0A0A},    
+    {0x2A34, 0x0A0F},
+    //0x2A35 - 0x2A3A: Motion mode
+    //0x2A3B - 0x2A3F: Special Applications
+    {0x2A40, 0x1E50},   
+    {0x2B03, 0x0001},
+    {0x2B07, 0x0014},
+    {0x2B0B, 0x0000},    
+    {0x2B0C, 0x0014},
+    {0x2B0F, 0x001E}, 
 };
 const uint8_t hrv_reg_config_array_len = sizeof(hrv_reg_config_array)/sizeof(hrv_reg_config_array[0]);
 
+/* bpf config */
+const ST_REGISTER bpf_reg_config_array[] = 
+{
+    {0x0100, 0xf530}, 
+    {0x0102, 0x09C4}, 
+    {0x0104, 0xba98}, 
+    {0x0106, 0x2710}, 
+    {0x0108, 0xf530}, 
+    {0x010a, 0x2710}, 
+    {0x010c, 0xf148}, 
+    {0x010e, 0x0fa0}, 
+    {0x0110, 0xb6b0}, 
+    {0x0112, 0x30d4}, 
+    {0x0114, 0xf148}, 
+    {0x0116, 0x30d4}, 
+    {0x011c, 0x01FF}, 
+    {0x011e, 0x01FF}, 
+    {0x0120, 0x01FF}, 
+    {0x0126, 0x0202}, 
+    {0x0128, 0x0002}, 
+    {0x0130, 0x0746}, 
+    {0x0132, 0x1546}, 
+    {0x0134, 0x0246}, 
+    {0x16, 0x80}, 
+    {0x80, 0x605}, 
+    {0x82, 0x1c6}, 
+    {0x84, 0x121}, 
+    {0x118, 0x1f69}, 
+    {0x11a, 0x0000}, 
+    {0x012e, 0x0000}, 
+    {0x0136, 0x0A0}, 
+    {0x0186, 0x0406}, 
+    {0x0180, 0x006D}, 
+    {0x12a, 0x0606}, 
+    {0x12c, 0x06}, 
+    {0x10C0, 0x01}, 
+    {0xC2, 0xFFFF}, 
+    {0xC4, 0x034b}, 
+    {0xC6, 0xFFFF}, 
+    {0xC8, 0x034b}, 
+    {0xCA, 0x00A0}, 
+    {0xCC, 0x006E}, 
+    {0xCE, 0x0251}, 
+    {0xD0, 0x0}, 
+    {0xD4, 0x0251}, 
+    {0xD6, 0x0}, 
+    {0xD8, 0x0505}, 
+    {0xDA, 0x0000}, 
+    {0xDC, 0x0101}, 
+    {0xDE, 0x0000}, 
+    {0x2A00, 0x5490}, 
+    {0x2A02, 0x0000}, 
+    {0x2A03, 0xea60}, 
+    {0x2A04, 0x0000}, 
+    {0x2A05, 0x1388}, 
+    {0x2A06, 0x0000}, 
+    {0x2A07, 0xe290}, 
+    {0x2A08, 0x0000}, 
+    {0x2A09, 0x1f40}, 
+    {0x2A0A, 0x0000}, 
+    {0x2A0B, 0x1388}, 
+    {0x2A0C, 0x0000}, 
+    {0x2A0D, 0xea60}, 
+    {0x2A0E, 0x0000}, 
+    {0x2A0F, 0x4650}, 
+    {0x2A10, 0x0000}, 
+    {0x2A11, 0xe290}, 
+    {0x2A12, 0x0000}, 
+    {0x2A13, 0x4e20}, 
+    {0x2A14, 0x0000}, 
+    {0x2A15, 0x1B58}, 
+    {0x2A16, 0x0101}, 
+    {0x2A17, 0x0602}, 
+    {0x2A34, 0x0F0F},
+};
+const uint8_t bpf_reg_config_array_len = sizeof(bpf_reg_config_array)/sizeof(bpf_reg_config_array[0]);
 
-
+/* getrawdata config*/
+const ST_REGISTER getrawdata_reg_config_array[] = 
+{
+    {0x0100,  0xf530},
+    {0x0102,  0x09C4},
+    {0x0104,  0xf530},
+    {0x0106,  0x2710},
+    {0x0108,  0xf530},
+    {0x010a,  0x2710},
+    {0x010c,  0xf148},
+    {0x010e,  0x0fa0},
+    {0x0110,  0xf148},
+    {0x0112,  0x30d4},
+    {0x0114,  0xf148},
+    {0x0116,  0x30d4},
+    {0x011c,  0x01FF},
+    {0x011e,  0x01FF},
+    {0x0120,  0x01FF},
+    {0x0126,  0x0202},
+    {0x0128,  0x0002},
+    {0x0130,  0x0746},
+    {0x0132,  0x0246},
+    {0x0134,  0x0346},
+    {0x16,  0x51e},
+    {0x80,  0x605},
+    {0x82,  0x1c6},
+    {0x84,  0x24},
+    {0x118,  0x1f69},
+    {0x11a,  0x004C},
+    {0x012e,  0x0004},
+    {0x0136,  0x0A0},
+    {0x0186,  0x0406},
+    {0x0180,  0x8D},
+    {0x12a,  0x0606},
+    {0x12c,  0x06},
+    {0x10C0,  0x01},
+    {0xC2,  0xFFFF},
+    {0xC4,  0x123a},
+    {0xC6,  0xFFFF},
+    {0xC8,  0x123a},
+    {0xCA,  0x00A0},
+    {0xCC,  0x006E},
+    {0xCE,  0x1140},
+    {0xD0,  0x0},
+    {0xD4,  0x1140},
+    {0xD6,  0x0},
+    {0xD8,  0x0505},
+    {0xDA,  0x0000},
+    {0xDC,  0x0101},
+    {0xDE,  0x0000},
+    {0x2A00, 0x00FF},
+    {0x2A02, 0},
+    {0X2A03, 60000},
+    {0x2A04, 0},
+    {0x2A05, 0x1388},
+    {0x2A06, 0},
+    {0x2A07, 58000},
+    {0x2A08, 0},
+    {0x2A09, 0x1f40},
+    {0x2A0A, 0},
+    {0x2A0B, 1000},
+    {0x2A0C, 0},
+    {0x2A0D, 60000},
+    {0x2A0E, 0},
+    {0x2A0F, 20000},
+    {0x2A10, 0},
+    {0x2A11, 58000},
+    {0x2A12, 0},
+    {0x2A13, 25000},
+    {0x2A14, 0},
+    {0x2A15, 1000},
+    {0x2A16, 0x0000},
+    {0x2A17, 0x0602},
+};
+const uint8_t getrawdata_reg_config_array_len = sizeof(getrawdata_reg_config_array)/sizeof(getrawdata_reg_config_array[0]);
 
 /* system test config */
 const ST_REGISTER systemtest_led0_reg_config_array[] = 
@@ -393,31 +549,23 @@ const ST_REGISTER systemtest_led0_reg_config_array[] =
     {0x000c, 0x09f0},
     {0x0080, 0x0405},
     {0x0082, 0x01C4},
-    {0x0118, 0x0000},
-    {0x011a, 0x0000},
     {0x012e, 0x0000},
-    {0x0136, 0x0DB0},
     {0x0186, 0x0007},
     {0x0180, 0x008d},
-    {0x0048, 0x0001},
     {0x0002, 0x1321},
-    {0x0044, 0x0064},
     {0x0016, 0x051e},
     {0x012e, 0x0000},
-    {0x0016, 0x051e},
     {0x0084, 0x0021},
-    {0x0136, 0x0490},
-    {0x0186, 0x0007},
-    {0x0118, 0x6464},
-    {0x011a, 0x0064},
-    {0x0082, 0x01c4},
+    {0x0136, 0x0090},
+    {0x0118, 0x2828},
+    {0x011a, 0x0028},
     {0x0002, 0xFF21},
     {0x0044, 0x0001},
     {0x0048, 0x0001},
 };
 const uint8_t systemtest_led0_reg_config_array_len = sizeof(systemtest_led0_reg_config_array)/sizeof(systemtest_led0_reg_config_array[0]);
 #if (__SYSTEM_TEST_SUPPORT__)
-ROMAHBData systemtest_led0_os_result = 
+HBDTEST_ROMAHBData systemtest_led0_os_result = 
 {
     34, 99999, 37, 0,
 };
@@ -429,31 +577,23 @@ const ST_REGISTER systemtest_led1_reg_config_array[] =
     {0x000c, 0x09f0},
     {0x0080, 0x0405},
     {0x0082, 0x01C4},
-    {0x0118, 0x0000},
-    {0x011a, 0x0000},
     {0x012e, 0x0000},
-    {0x0136, 0x0DB0},
     {0x0186, 0x0007},
     {0x0180, 0x008d},
-    {0x0048, 0x0001},
     {0x0002, 0x1321},
-    {0x0044, 0x0064},
     {0x0016, 0x051e},
     {0x012e, 0x0000},
-    {0x0016, 0x051e},
     {0x0084, 0x0022},
-    {0x0136, 0x0490},
-    {0x0186, 0x0007},
-    {0x0118, 0x6464},
-    {0x011a, 0x0064},
-    {0x0082, 0x01c4},
+    {0x0136, 0x0090},
+    {0x0118, 0x2828},
+    {0x011a, 0x0028},
     {0x0002, 0xFF21},
     {0x0044, 0x0001},
     {0x0048, 0x0001},
 };
 const uint8_t systemtest_led1_reg_config_array_len = sizeof(systemtest_led1_reg_config_array)/sizeof(systemtest_led1_reg_config_array[0]);
 #if (__SYSTEM_TEST_SUPPORT__)
-ROMAHBData systemtest_led1_os_result = 
+HBDTEST_ROMAHBData systemtest_led1_os_result = 
 {
     34, 99999, 37, 0,
 };
@@ -465,34 +605,155 @@ const ST_REGISTER systemtest_led2_reg_config_array[] =
     {0x000c, 0x09f0},
     {0x0080, 0x0405},
     {0x0082, 0x01C4},
-    {0x0118, 0x0000},
-    {0x011a, 0x0000},
     {0x012e, 0x0000},
-    {0x0136, 0x0DB0},
     {0x0186, 0x0007},
     {0x0180, 0x008d},
-    {0x0048, 0x0001},
     {0x0002, 0x1321},
-    {0x0044, 0x0064},
     {0x0016, 0x051e},
     {0x012e, 0x0000},
-    {0x0016, 0x051e},
     {0x0084, 0x0024},
-    {0x0136, 0x0490},
-    {0x0186, 0x0007},
-    {0x0118, 0x6464},
-    {0x011a, 0x0064},
-    {0x0082, 0x01c4},
+    {0x0136, 0x0090},
+    {0x0118, 0x2828},
+    {0x011a, 0x0028},
     {0x0002, 0xFF21},
     {0x0044, 0x0001},
     {0x0048, 0x0001},
 };
 const uint8_t systemtest_led2_reg_config_array_len = sizeof(systemtest_led2_reg_config_array)/sizeof(systemtest_led2_reg_config_array[0]);
 #if (__SYSTEM_TEST_SUPPORT__)
-ROMAHBData systemtest_led2_os_result = 
+HBDTEST_ROMAHBData systemtest_led2_os_result = 
 {
     34, 99999, 37, 0,
 };
 #endif
 
+#if (__SYSTEM_TEST_SUPPORT__)
+HBDTEST_ROMALEDCheckData led0std={{15,5,0.15,34000},{0,0,0,0},{0,0}};
+HBDTEST_ROMALEDCheckData led1std={{15,5,0.15,34000},{0,0,0,0},{0,0}};
+HBDTEST_ROMALEDCheckData led2std={{15,5,0.15,34000},{0,0,0,0},{0,0}};
+unsigned char ledmask[3]={0,0,1};
+
+#endif
+
+#if (__FACTORY_DET_SUPPORT__)
+const ST_REGISTER factory_green_ir_reg_config_array[] =
+{
+    {0x0002, 0x132a},
+    {0x000C, 0x09f0},
+    {0x0016, 0x051e},
+    {0x0080, 0x0405},
+    {0x0082, 0x01c4},
+    {0x0084, 0x0123},
+    {0x00C2, 0xffff},
+    {0x00C4, 0x0a28},
+    {0x00C6, 0xffff},
+    {0x00C8, 0x0a28},
+    {0x00CA, 0x00a0},
+    {0x00CC, 0x006e},
+    {0x00CE, 0x03e8},
+    {0x00D0, 0x0000},
+    {0x00D4, 0x03e8},
+    {0x00D6, 0x0000},
+    {0x00D8, 0x0303},
+    {0x00DA, 0x0101},
+    {0x00DC, 0x0101},
+    {0x00DE, 0x0000},
+    {0x0100, 0xf530},
+    {0x0102, 0x09c4},
+    {0x0104, 0xf530},
+    {0x0106, 0x2710},
+    {0x0108, 0xf530},
+    {0x010A, 0x2710},
+    {0x010C, 0xf148},
+    {0x010E, 0x0fa0},
+    {0x0110, 0xf148},
+    {0x0112, 0x2bf2},
+    {0x0114, 0xf148},
+    {0x0116, 0x30d4},
+    {0x0118, 0xffff},
+    {0x011A, 0x0000},
+    {0x011C, 0x01ff},
+    {0x011E, 0x01ff},
+    {0x0120, 0x01ff},
+    {0x0126, 0x0202},
+    {0x0128, 0x0002},
+    {0x012A, 0x0606},
+    {0x012C, 0x0006},
+    {0x012E, 0x0000},
+    {0x0130, 0x0746},
+    {0x0132, 0x0646},
+    {0x0134, 0x0546},
+    {0x0136, 0x0120},
+    {0x0180, 0x008d},
+    {0x0186, 0x0407},
+    {0x10C0, 0x0001},
+    {0x2A16, 0x0000},
+};
+const uint8_t factory_green_ir_reg_config_array_len = sizeof(factory_green_ir_reg_config_array)/sizeof(factory_green_ir_reg_config_array[0]);
+
+
+const ST_REGISTER factory_ir_red_reg_config_array[] =
+{
+    {0x0002, 0x132a},
+    {0x000C, 0x09f0},
+    {0x0016, 0x051e},
+    {0x0080, 0x0605},
+    {0x0082, 0x01c6},
+    {0x0084, 0x0023},
+    {0x00C2, 0xffff},
+    {0x00C4, 0x0a28},
+    {0x00C6, 0xffff},
+    {0x00C8, 0x0a28},
+    {0x00CA, 0x00a0},
+    {0x00CC, 0x006e},
+    {0x00CE, 0x03e8},
+    {0x00D0, 0x0000},
+    {0x00D4, 0x03e8},
+    {0x00D6, 0x0000},
+    {0x00D8, 0x0303},
+    {0x00DA, 0x0101},
+    {0x00DC, 0x0101},
+    {0x00DE, 0x0000},
+    {0x0100, 0xf530},
+    {0x0102, 0x4e20},
+    {0x0104, 0xf530},
+    {0x0106, 0x4e20},
+    {0x0108, 0xf530},
+    {0x010A, 0x2710},
+    {0x010C, 0xf148},
+    {0x010E, 0x57e4},
+    {0x0110, 0xf148},
+    {0x0112, 0x57e4},
+    {0x0114, 0xf148},
+    {0x0116, 0x30d4},
+    {0x0118, 0xffff},
+    {0x011A, 0x0000},
+    {0x011C, 0x01ff},
+    {0x011E, 0x01ff},
+    {0x0120, 0x01ff},
+    {0x0126, 0x0202},
+    {0x0128, 0x0002},
+    {0x012A, 0x0606},
+    {0x012C, 0x0006},
+    {0x012E, 0x0000},
+    {0x0130, 0x0746},
+    {0x0132, 0x0746},
+    {0x0134, 0x0546},
+    {0x0136, 0x0120},
+    {0x0180, 0x008d},
+    {0x0186, 0x0407},
+    {0x10C0, 0x0001},
+    {0x2030, 0xffff},
+    {0x2031, 0xd914},
+    {0x2032, 0xfffc},
+    {0x2033, 0x5487},
+    {0x2034, 0x0011},
+    {0x2035, 0x0c07},
+    {0x2A16, 0x0000},
+};
+
+const uint8_t factory_ir_red_reg_config_array_len = sizeof(factory_ir_red_reg_config_array)/sizeof(factory_ir_red_reg_config_array[0]);
+
+#endif
+
 /********END OF FILE********* Copyright (c) 2003 - 2020, Goodix Co., Ltd. ********/
index 7dd7c0a..54a4176 100644 (file)
@@ -84,7 +84,7 @@ static struct crane_panel_t *panels[] = {
 #endif
 #endif
 
-#if USE_LCD_PANEL_GC9A01_4_1_SPI_POC
+#if USE_LCD_PANEL_GC9A01_SPI_WATCH
     &gc9a01_spi,
 #endif
 #if USE_LCD_PANEL_ST9A01_4_1_SPI_POC
@@ -227,7 +227,7 @@ static struct lcd_info_t gc9c01_lcd_spi_3_2_info =
 };
 #endif
 
-#if USE_LCD_PANEL_GC9A01_4_1_SPI_POC || USE_LCD_PANEL_ST9A01_4_1_SPI_POC || USE_LCD_PANEL_GC9307_4_1_SPI_POC || USE_LCD_PANEL_ST7789V2_SPI_WATCH
+#if  USE_LCD_PANEL_ST9A01_4_1_SPI_POC || USE_LCD_PANEL_GC9307_4_1_SPI_POC || USE_LCD_PANEL_ST7789V2_SPI_WATCH
 
 static uint32_t lcd_poc_mfp_spi_4_1_cfgs[] = {
     MFP_REG(GPIO_20) | MFP_AF2 | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_DRIVE_MEDIUM | MFP_LPM_EDGE_NONE, /* SPI_DCLK */
@@ -240,7 +240,7 @@ static uint32_t lcd_poc_mfp_spi_4_1_cfgs[] = {
     MFP_EOC
 };
 #endif
-#if DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_K12
+#if DRV_PROJECT_Z5_K7 || USE_LCD_PANEL_GC9A01_SPI_WATCH
 static uint32_t lcd_poc_mfp_spi_3_2_cfgs[] = {
     MFP_REG(GPIO_20) | MFP_AF2 | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_DRIVE_MEDIUM | MFP_LPM_EDGE_NONE, /* SPI_DCLK */
     MFP_REG(GPIO_21) | MFP_AF3 | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_DRIVE_MEDIUM | MFP_LPM_EDGE_NONE, /* SPI_CS1 */
@@ -253,10 +253,10 @@ static uint32_t lcd_poc_mfp_spi_3_2_cfgs[] = {
     MFP_EOC
 };
 #endif
-#if USE_LCD_PANEL_GC9A01_4_1_SPI_POC
-static struct lcd_info_t gc9a01_lcd_spi_4_1_info =
+#if USE_LCD_PANEL_GC9A01_SPI_WATCH
+static struct lcd_info_t gc9a01_lcd_spi_3_2_info =
 {
-    .mfp = (uint32_t *)lcd_poc_mfp_spi_4_1_cfgs,
+    .mfp = (uint32_t *)lcd_poc_mfp_spi_3_2_cfgs,
     .clk = 312000, /* 104000 */
 };
 #endif
@@ -284,7 +284,7 @@ static struct lcd_info_t st7789v2_lcd_spi_4_1_info =
     .mfp = (uint32_t *)lcd_poc_mfp_spi_4_1_cfgs,
     .clk = 312000, /* 104000 */
 };
-#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_K12
+#elif DRV_PROJECT_Z5_K7 
 static struct lcd_info_t st7789v2_lcd_spi_3_2_info =
 {
     .mfp = (uint32_t *)lcd_poc_mfp_spi_3_2_cfgs,
@@ -318,8 +318,8 @@ static struct lcd_info_t lcd_info = {
 #endif
 
 static struct lcd_info_t *lcd_info_detect[]= {
-#if USE_LCD_PANEL_GC9A01_4_1_SPI_POC
-    &gc9a01_lcd_spi_4_1_info,
+#if USE_LCD_PANEL_GC9A01_SPI_WATCH
+    &gc9a01_lcd_spi_3_2_info,
 #endif
 #if USE_LCD_PANEL_ST9A01_4_1_SPI_POC
     &st9a01_lcd_spi_4_1_info,