屏参配置


1. 屏参配置文件介绍

屏参配置文件在alkaid中的路径为project/board/ini/misc/config.ini

系统启动过程中会去解析屏参配置文件,然后将不同屏参保存到系统中,给显示模块使用。

显示模块会根据用户调用API的参数设定向系统获取所需屏参。

屏参配置文件由section、variable name组成:

  • section:

    文件中"[]"中的字段。

  • variable name:

    文件中"="左边的字段,右边是给variable name赋的值。

section是唯一的,不允许有同名,但是variable name允许。如上图,section DACOUT_576I只能有一个,但是m_pPanelName可以在不同的section中。系统根据不同的section区分variable name,然后添加不同的屏参。

variable name的字段为系统预先定义,在添加新的屏参时,只能填写系统中现有的,新增或者修改时请告知owner,否则系统无法识别。如m_pPanelName,在新增屏参时只能使用m_pPanelName定义新的panel name。

variable name赋值示例如下:


2. 新增屏参

  1. 新屏参定义section name不能和现有section name相同

  2. 将新屏参的section name追加到ROOT section的m_pnlList变量中(不同接口的LCD section只能存在一个,比如m_pnlList中已经存在一个TTL的panel section name,那么如果想要添加新的TTL,只能删除掉之前存在的section)

  3. 将新的屏参添加到新的section中,如下:

    [SAT070AT50H18BH]
    m_pPanelName = "SAT070AT50H18BH_1024x600";
    m_bPanelDither = 0;
    m_ePanelLinkType = 0; #0:ttl 1:lvds 11:mipi
    
    m_bPanelInvDCLK = 0;
    m_bPanelInvDE = 0;
    m_bPanelInvHSync = 0;
    m_bPanelInvVSync = 0;
    
    m_wPanelHSyncWidth = 48;
    m_wPanelHSyncBackPorch = 46;
    m_wPanelVSyncWidth = 4;
    m_wPanelVBackPorch = 23;
    m_wPanelHStart = 98;
    m_wPanelVStart = 27;
    m_wPanelWidth = 1024;
    m_wPanelHeight = 600;
    
    m_wPanelHTotal = 1344;
    m_wPanelVTotal = 635;
    m_wPanelDCLK = 51;
    
    m_wSpreadSpectrumStep = 0;
    m_wSpreadSpectrumSpan = 0;
    
    m_eOutputFormatBitMode = 2; #0:10bit 1:6bit 2:8bit 3:565bit
    
    m_ucPanelSwapChnR = 3;
    m_ucPanelSwapChnG = 2;
    m_ucPanelSwapChnB = 1;
    m_ucPanelSwapRgbML = 1;
    

3. 屏参参数说明

参数 描述
m_pPanelName panel name
m_bPanelDither 1:enable Dither
0:disable Dither
m_ePanelLinkType 接口类型
TTL :0
MIPI_DSI :10
m_bPanelInvDCLK Pixel clk极性反转
m_bPanelInvDE DE极性反转
m_bPanelInvHSync Hsync极性反转
m_bPanelInvVSync Vsync极性反转
m_wPanelHSyncWidth 行同步信号脉宽
m_wPanelHSyncBackPorch 行同步信号后肩
m_wPanelVSyncWidth 场同步信号脉宽
m_wPanelVBackPorch 场同步信号后肩
m_wPanelHStart m_wPanelHSyncWidth+m_wPanelHSyncBackPorch
m_wPanelVStart m_wPanelVSyncWidth+ m_wPanelVBackPorch
m_wPanelWidth 行有效像素点数
m_wPanelHeight 场有效行数
m_wPanelHTotal m_wPanelWidth+m_wPanelHSyncWidth+m_wPanelHSyncBackPorch+HsyncFrontPorch
m_wPanelVTotal m_wPanelHeight+m_wPanelVSyncWidth+ m_wPanelVBackPorch+VsyncFrontPorch
m_wPanelDCLK m_wPanelHTotal*m_wPanelVTotal*fps(IP内部使用clk)
m_wSpreadSpectrumFreq 时钟延展幅度调制(详见展频计算
m_wSpreadSpectrumRatio 时钟延展频率调制(详见展频计算
m_eOutputFormatBitMode 10BIT :0
6BIT :1
8BIT :2
565BIT :3
m_ucPanelSwapChnR Swap Channel R
0:default
1:select R 
2:select G
3:select B
m_ucPanelSwapChnG Swap Channel G
0:default
1:select R 
2:select G
3:select B
m_ucPanelSwapChnB Swap Channel B
0:default
1:select R 
2:select G
3:select B
m_ucPanelSwapRgbML Swap Rgb MSB/LSB
0:disable M/L swap
1:enable M/L swap

如果是MIPI panel,还需要对MIPI DSI进行配置。

MIPI DSI参数说明:

参数 描述
m_wHsTrail Default: 5
m_wHsPrpr Default: 3
m_wHsZero Default: 5
m_wClkHsPrpr Default: 10
m_wClkHsExit Default: 14
m_wClkTrail Default: 3
m_wClkZero Default: 12
m_wClkHsPost Default: 10
m_wDaHsExit Default: 5
m_wContDet Default:0
m_wLpx Default:16
m_wTaGet Default:26
m_wTaSure Default:24
m_wTaGo Default:50
m_wHactive Follow 屏参设定
m_wHpw Follow 屏参设定
m_wHbp Follow 屏参设定
m_wHfp Follow 屏参设定
m_wVactive Follow 屏参设定
m_wVpw Follow 屏参设定
m_wVbp Follow 屏参设定
m_wVfp Follow 屏参设定
m_wBllp 0
m_wFps Default:60
m_eLaneNum one lane :1
two lane :2
three lane :3
four lane :4
m_eFormat RGB565 :0
RGB666 :1
LOOSELY_RGB666 :2
RGB888 :3
m_eCtrlMode CMD_MODE :0
SYNC_PULSE :1
SYNC_EVENT :2
BURST_MODE :3
m_ucClkLane Clk lane selection(default:2)
0:select chn0
1:select chn1
2:select chn2
3:select chn3
4:select chn4
m_ucDataLane0 data lane0 selection(default:4)
0:select chn0
1:select chn1
2:select chn2
3:select chn3
4:select chn4
m_ucDataLane1 data lane1 selection(default:3)
0:select chn0
1:select chn1
2:select chn2
3:select chn3
4:select chn4
m_ucDataLane2 data lane2 selection(default:1)
0:select chn0
1:select chn1
2:select chn2
3:select chn3
4:select chn4
m_ucDataLane3 data lane3 selection(default:0)
0:select chn0
1:select chn1
2:select chn2
3:select chn3
4:select chn4
m_pCmdBuff Mipi panel cmd
m_pCmdBuff=
{
  Cmd, parameter cnt, parameter0, parameter1, … ,  
Cmd, parameter cnt, parameter0, parameter1, … ,
  Cmd, parameter cnt, parameter0, parameter1, … ,  
………
}
m_ucPolCh0 Chn0极性
0:default
1:positive
2:negative
m_ucPolCh1 Chn1极性
0:default
1:positive
2:negative
m_ucPolCh2 Chn2极性
0:default
1:positive
2:negative
m_ucPolCh3 Chn3极性
0:default
1:positive
2:negative
m_ucPolCh4 Chn4极性
0:default
1:positive
2:negative

根据屏规格书填写屏参

在屏规格书中找到Timing相关部分,如下表定义:

屏规格书中Timing定义和屏参参数对应如下表所示:

m_wPanelHSyncWidth HSYNC period time
m_wPanelHSyncBackPorch 参考HSYNC blanking的要求 根据上表,如果HSYNC blanking为320,那么m_wPanelHSyncBackPorch要小于320,差值部分为hsync front porch大小
m_wPanelVSyncWidth VSYNC period time
m_wPanelVBackPorch 参考VSYNC blanking的要求 根据上表,如果VSYNC blanking为35,那么m_wPanelVBackPorch要小于35,差值部分为vsync front porch大小
m_wPanelHStart m_wPanelHSyncWidth+m_wPanelHSyncBackPorch
m_wPanelVStart m_wPanelVSyncWidth+ m_wPanelVBackPorch
m_wPanelWidth Horizonial display area 
m_wPanelHeight Vertical display area
m_wPanelHTotal m_wPanelWidth+HSYNC blanking
m_wPanelVTotal m_wPanelHeight+VSYNC blanking
m_wPanelDCLK m_wPanelHTotal*m_wPanelVTotal*fps

如果是MIPI panel,还需要配置MIPI AC timing相关参数,首先在panel规格书中找到MIPI timing specification部分。

UI的计算方法:

H\_Total = HACT+HPW+HBP+HFP
V\_Total = VACT+VPW+VBP+VFP
BitsPerPixel=24(RGB888)/18(RGB666)/16(RGB565)
Bitrate = H\_Total \times V\_Total \times FPS \times BitsPerPixel \div lane number
UI = \frac{1}{Bitrate}

比如表格中要求40ns+4 \times UI < HS-PREPARE < 85ns+6\times UI ,那么对应MIPI AC timing中的参数如下。

\frac{40ns+4 \times UI}{8 \times UI} < m\_wHsTrail < \frac{85ns+6\times UI}{8 \times UI}

其他MIPI AC timing中参数计算方法同上。

注意:

当前这套屏参设置需要更新:config_tool/mi_disp/mhal,若涉及uboot点屏需要更新uboot。