Jelajahi Sumber

CPU工程更新:
1.优化了LCD驱动,通过配置VCM和TRM值增强LVDS显示抗干扰能力(异常显示线条状等)。
mcu-iram工程更新:
1.优化了LCD驱动,通过配置VCM和TRM值增强LVDS显示抗干扰能力(异常显示线条状等)。
mcu-sram-nos工程更新:
1.优化了LCD驱动,通过配置VCM和TRM值增强LVDS显示抗干扰能力(异常显示线条状等)。

helen 6 bulan lalu
induk
melakukan
9c731b6d02

+ 3 - 3
amt630hv160-freertos-beta/ArkmicroFiles/libboard-amt630hv160/include/board.h

@@ -18,8 +18,8 @@
 #define LCD_WIRING_BIT_ORDER_MSB	0
 #define LCD_WIRING_BIT_ORDER_LSB	1
 
-#define LVDS_PANEL_FORMAT_TI	0
-#define LVDS_PANEL_FORMAT_NS	1
+#define LVDS_PANEL_FORMAT_VESA	0
+#define LVDS_PANEL_FORMAT_JEDIA	1
 
 #define LVDS_PANEL_DATA_8BIT	0
 #define LVDS_PANEL_DATA_6BIT	1
@@ -59,7 +59,7 @@
 #elif LCD_INTERFACE_TYPE == LCD_INTERFACE_LVDS
 #define LCD_WIRING_MODE			LCD_WIRING_MODE_RGB
 #define LCD_WIRING_BIT_ORDER	LCD_WIRING_BIT_ORDER_MSB
-#define LVDS_PANEL_FORMAT		LVDS_PANEL_FORMAT_TI
+#define LVDS_PANEL_FORMAT		LVDS_PANEL_FORMAT_VESA
 #define LVDS_PANEL_DATA			LVDS_PANEL_DATA_8BIT
 #define LVDS_CLKEDGE			LVDS_CLKEDGE_POSITIVE
 #define LVDS_SCREEN_RST_GPIO	74

+ 5 - 5
amt630hv160-freertos-beta/ArkmicroFiles/libcpu-amt630hv160/source/lcd.c

@@ -1112,10 +1112,10 @@ int lcd_init(void)
 #endif
 #endif
 
-#if LVDS_PANEL_FORMAT == LVDS_PANEL_FORMAT_TI
-		value &= ~(1 << 1); //LVDS_TI_SEL 0:TI_JEDIAmode
+#if LVDS_PANEL_FORMAT == LVDS_PANEL_FORMAT_VESA
+		value &= ~(1 << 1); //LVDS_TI_SEL 0:VESA mode
 #else
-		value |= (1 << 1); //LVDS_TI_SEL 1:NS_Thinemode
+		value |= (1 << 1); //LVDS_TI_SEL 1:JEDIA mode
 #endif
 #if LVDS_PANEL_DATA == LVDS_PANEL_DATA_8BIT
 		value &= ~(1 << 0); //LVDS_6BITS_SEL 0:LVDSTXdatamap选择数据8bit
@@ -1140,8 +1140,8 @@ int lcd_init(void)
 #else
 		value &= ~(1 << 7); //CLKEDGE 输出时钟边沿选择正向
 #endif
-		value &= ~(1 << 6); // DRV_TRM_09
-		value |= (0x4 << 3); // TRM_VCM
+		value |= (1 << 6); // DRV_TRM_09
+		value &= ~(0x7<< 3); // TRM_VCM 0.95
 		value |= 0x4; // TRM_IREF
 
 		writel(value , REGS_SYSCTL_BASE + 0x98);

+ 7 - 7
amt630hv160-mcu/amt630hv160-mcu-iram/src/ArkmicroFiles/libcpu-amt630hv160/source/amt630hv160_lcd.c

@@ -821,7 +821,7 @@ static int ark_lcd_clk_init(uint32_t freq)
 		div = CLK_GetPLLFreq(SYSCTRL->VPUPLL_CFG) / freq;
 		index = 1;
 	} else {
-		div = 0;
+		div = HSE_Value / freq;
 		index = 2;
 	}
 
@@ -895,10 +895,10 @@ int lcd_init(void)
 #endif
 #endif
 
-#if LVDS_PANEL_FORMAT == LVDS_PANEL_FORMAT_TI
-	SYSCTRL->ANA_REG[5] &= ~(1 << 1); //LVDS_TI_SEL 0:TI_JEDIAmode
+#if LVDS_PANEL_FORMAT == LVDS_PANEL_FORMAT_VESA
+	SYSCTRL->ANA_REG[5] &= ~(1 << 1); //LVDS_TI_SEL 0:VESA mode
 #else
-	SYSCTRL->ANA_REG[5] |= (1 << 1); //LVDS_TI_SEL 1:NS_Thinemode
+	SYSCTRL->ANA_REG[5] |= (1 << 1); //LVDS_TI_SEL 1:JEDIA mode
 #endif
 #if LVDS_PANEL_DATA == LVDS_PANEL_DATA_8BIT
 	SYSCTRL->ANA_REG[5] &= ~(1 << 0); //LVDS_6BITS_SEL 0:LVDSTXdatamap选择数据8bit
@@ -912,7 +912,7 @@ int lcd_init(void)
 	SYSCTRL->ANA_REG[6] &= ~(1 << 7); //CLKEDGE 输出时钟边沿选择正向
 #endif
 
-	SYSCTRL->ANA_REG[6] &= ~(1 << 6);// DRV_TRM_09
+	SYSCTRL->ANA_REG[6] &= ~(0x7 << 3);  // TRM_VCM 0.95
 	SYSCTRL->ANA_REG[6] |=
 		(1 << 21) |			// VREFEB
 		(1 << 20) |			// TX_LCK_EN
@@ -922,8 +922,8 @@ int lcd_init(void)
 		(1 << 12) |			// ICONT1
 		(1 << 11) |			// PLEB
 		(1 << 10) |			// CPEB
-		(0x4 << 3) |		// TRM_VCM
-		(0x4 << 0);		// TRM_IREF
+        (1 << 6)  |         //DRV_TRM_09
+		(0x4 << 0);		    // TRM_IREF
 #endif
 	return 0;
 }

+ 3 - 3
amt630hv160-mcu/amt630hv160-mcu-iram/src/amt630hv160_conf.h

@@ -210,8 +210,8 @@
 #define LCD_WIRING_BIT_ORDER_MSB	0
 #define LCD_WIRING_BIT_ORDER_LSB	1
 
-#define LVDS_PANEL_FORMAT_TI	0
-#define LVDS_PANEL_FORMAT_NS	1
+#define LVDS_PANEL_FORMAT_VESA	0
+#define LVDS_PANEL_FORMAT_JEDIA	1
 
 #define LVDS_PANEL_DATA_8BIT	0
 #define LVDS_PANEL_DATA_6BIT	1
@@ -251,7 +251,7 @@
 #elif LCD_INTERFACE_TYPE == LCD_INTERFACE_LVDS
 #define LCD_WIRING_MODE			LCD_WIRING_MODE_RGB
 #define LCD_WIRING_BIT_ORDER	LCD_WIRING_BIT_ORDER_MSB
-#define LVDS_PANEL_FORMAT		LVDS_PANEL_FORMAT_TI
+#define LVDS_PANEL_FORMAT		LVDS_PANEL_FORMAT_VESA
 #define LVDS_PANEL_DATA			LVDS_PANEL_DATA_8BIT
 #define LVDS_CLKEDGE			LVDS_CLKEDGE_POSITIVE
 #define LVDS_SCREEN_RST_GPIO	74

+ 7 - 7
amt630hv160-mcu/amt630hv160-mcu-sram-nos/src/ArkmicroFiles/libcpu-amt630hv160/source/amt630hv160_lcd.c

@@ -814,7 +814,7 @@ static int ark_lcd_clk_init(uint32_t freq)
 		div = CLK_GetPLLFreq(SYSCTRL->VPUPLL_CFG) / freq;
 		index = 1;
 	} else {
-		div = 0;
+		div = HSE_Value / freq;
 		index = 2;
 	}
 
@@ -888,10 +888,10 @@ int lcd_init(void)
 #endif
 #endif
 
-#if LVDS_PANEL_FORMAT == LVDS_PANEL_FORMAT_TI
-	SYSCTRL->ANA_REG[5] &= ~(1 << 1); //LVDS_TI_SEL 0:TI_JEDIAmode
+#if LVDS_PANEL_FORMAT == LVDS_PANEL_FORMAT_VESA
+	SYSCTRL->ANA_REG[5] &= ~(1 << 1); //LVDS_TI_SEL 0:VESA mode
 #else
-	SYSCTRL->ANA_REG[5] |= (1 << 1); //LVDS_TI_SEL 1:NS_Thinemode
+	SYSCTRL->ANA_REG[5] |= (1 << 1); //LVDS_TI_SEL 1:JEDIA mode
 #endif
 #if LVDS_PANEL_DATA == LVDS_PANEL_DATA_8BIT
 	SYSCTRL->ANA_REG[5] &= ~(1 << 0); //LVDS_6BITS_SEL 0:LVDSTXdatamap选择数据8bit
@@ -905,7 +905,7 @@ int lcd_init(void)
 	SYSCTRL->ANA_REG[6] &= ~(1 << 7); //CLKEDGE 输出时钟边沿选择正向
 #endif
 
-	SYSCTRL->ANA_REG[6] &= ~(1 << 6);// DRV_TRM_09
+	SYSCTRL->ANA_REG[6] &= ~(0x7 << 3);  // TRM_VCM 0.95
 	SYSCTRL->ANA_REG[6] |=
 		(1 << 21) |			// VREFEB
 		(1 << 20) |			// TX_LCK_EN
@@ -915,8 +915,8 @@ int lcd_init(void)
 		(1 << 12) |			// ICONT1
 		(1 << 11) |			// PLEB
 		(1 << 10) |			// CPEB
-		(0x4 << 3) |		// TRM_VCM
-		(0x4 << 0);		// TRM_IREF
+        (1 << 6)  |         //DRV_TRM_09
+		(0x4 << 0);		    // TRM_IREF
 #endif
 	return 0;
 }

+ 3 - 3
amt630hv160-mcu/amt630hv160-mcu-sram-nos/src/amt630hv160_conf.h

@@ -208,8 +208,8 @@
 #define LCD_WIRING_BIT_ORDER_MSB	0
 #define LCD_WIRING_BIT_ORDER_LSB	1
 
-#define LVDS_PANEL_FORMAT_TI	0
-#define LVDS_PANEL_FORMAT_NS	1
+#define LVDS_PANEL_FORMAT_VESA	0
+#define LVDS_PANEL_FORMAT_JEDIA	1
 
 #define LVDS_PANEL_DATA_8BIT	0
 #define LVDS_PANEL_DATA_6BIT	1
@@ -249,7 +249,7 @@
 #elif LCD_INTERFACE_TYPE == LCD_INTERFACE_LVDS
 #define LCD_WIRING_MODE			LCD_WIRING_MODE_RGB
 #define LCD_WIRING_BIT_ORDER	LCD_WIRING_BIT_ORDER_MSB
-#define LVDS_PANEL_FORMAT		LVDS_PANEL_FORMAT_TI
+#define LVDS_PANEL_FORMAT		LVDS_PANEL_FORMAT_VESA
 #define LVDS_PANEL_DATA			LVDS_PANEL_DATA_8BIT
 #define LVDS_CLKEDGE			LVDS_CLKEDGE_POSITIVE
 #define LVDS_SCREEN_RST_GPIO	74