基于RT1052 Aworks MIPI 2line 显示 (十八)

本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发

本文主要讲述在RT1052上面,原先的MIPI 4line显示调整为MIPI 2line显示。

1. 原理

MIPI显示由4line显示调整为2line显示,从原理上需要修改的地方有三处:
1) MIPI line数由4改为2。
2) MIPI时钟需要调整。
3) 需要发送DSC命令让MIPI屏支持2line即可

2. 操作过程

  1. MIPI line数由4改为2
@@ -467,7 +467,7 @@ void LT9211_MipiTxDigital(void)
     HDMI_WriteI2C_Byte(0x16,0x55);
     HDMI_WriteI2C_Byte(0x10,0x01);
     HDMI_WriteI2C_Byte(0x11,0x30); //read delay
-    HDMI_WriteI2C_Byte(0x13,0x0f);     //bit[5:4]:lane num, bit[2]:bllp,bit[1:0]:vid_mode
+    HDMI_WriteI2C_Byte(0x13,0x2f);     //bit[5:4]:lane num, bit[2]:bllp,bit[1:0]:vid_mode^M

2)MIPI时钟需要调整。

@@ -396,9 +396,9 @@ void LT9211_MipiTxpll(void)
     HDMI_WriteI2C_Byte(0xff,0x82);
     HDMI_WriteI2C_Byte(0x36,0x03); //b7:txpll_pd
     HDMI_WriteI2C_Byte(0x37,0x28);
-    HDMI_WriteI2C_Byte(0x38,0x04);
-    //HDMI_WriteI2C_Byte(0x3a,0x91);
-           HDMI_WriteI2C_Byte(0x3a,0x92);
+    HDMI_WriteI2C_Byte(0x38,0x44);
+    HDMI_WriteI2C_Byte(0x3a,0x92);
+         //  HDMI_WriteI2C_Byte(0x3a,0x90);

  1. 需要发送DSC命令让MIPI屏支持2line即可,该命令由屏的供应商提供
+    Generic_Short_Write_1P(0xB0,0x5A);
+               aw_mdelay(10);
+    Generic_Short_Write_1P(0xB1,0x00);         
+               aw_mdelay(10);
+    Generic_Short_Write_1P(0x89,0x01);         
+               aw_mdelay(10);  
+    Generic_Short_Write_1P(0xB1,0x03);         
+               aw_mdelay(10);
+    Generic_Short_Write_1P(0x14,0xE1);         
+               aw_mdelay(10);  
+    Generic_Short_Write_1P(0xB1,0x00);         
+               aw_mdelay(10);
+    Generic_Short_Write_1P(0x89,0x03);         
+               aw_mdelay(10);  
void InitPanel( void )
{

	HDMI_WriteI2C_Byte(0xff,0x81);
	HDMI_WriteI2C_Byte(0x0e,0xef);
	HDMI_WriteI2C_Byte(0x0e,0xff);
	HDMI_WriteI2C_Byte(0x0b,0xfe);

	HDMI_WriteI2C_Byte(0xff,0x86);
	HDMI_WriteI2C_Byte(0x47,0x01);
	HDMI_WriteI2C_Byte(0x48,0x01);

	HDMI_WriteI2C_Byte(0xff,0xd4);
	HDMI_WriteI2C_Byte(0x20,0x2f);
	HDMI_WriteI2C_Byte(0x21,0x10);
	
extern void 	rgb2mipi_first_time_power_on_sequence();
	rgb2mipi_first_time_power_on_sequence();    
	
	aw_mdelay(300);
    aw_kprintf("
Start initial panel
");

    Generic_Short_Write_1P(0xB0,0x5A);
		aw_mdelay(10);
    Generic_Short_Write_1P(0xB1,0x00);		
		aw_mdelay(10);
    Generic_Short_Write_1P(0x89,0x01);		
		aw_mdelay(10);	
    Generic_Short_Write_1P(0xB1,0x03);		
		aw_mdelay(10);
    Generic_Short_Write_1P(0x14,0xE1);		
		aw_mdelay(10);	

    Generic_Short_Write_1P(0xB1,0x00);		
		aw_mdelay(10);
    Generic_Short_Write_1P(0x89,0x03);		
		aw_mdelay(10);	
    aw_kprintf("
Finish initial panel
");
} 

4)测试结果
在这里插入图片描述

3. 总结

如果2line显示不成功如何排查:
1、通过示波器测量MIPI 钟时是否正常
2、通过示波器测试MIPI数据线上是否只剩下line0 line1 有数据。
3、通过MIPI逻辑分析仪确认DSC是否发送成功,这个方法很直接,但是一般公司是没有MIPI逻辑分析仪的。
在这里插入图片描述

原文地址:https://www.cnblogs.com/lianghong881018/p/15169488.html