LT6911C HDMI转MIPI 成熟方案提供技术支持

特别说明
1、 输入HDMI最大支持3840x2160P30hz,支持RGB888/YUV444/YUV422/YUV420;
2、 输出MIPI支持CSI和DSI,支持RGB888/YUV444/YUV422/Y420, 其中420格式不能和其他格式互转 ,如果需要YUV420输出,
则输入也必须是YUV420。
3、 MipiClock的计算,LT6911C是以Byteclk的方式计算,MipiClock=4*Byteclk,
Mipi DataRate=2* MipiClock(DDR模式),Byteclk >=(Pixclk*PixelBytes/LaneNum),
其中PixelBytes为每个Pixel占用的字节数,例如RGB888/YUV44,则PixelBytes=3;
再如RGB565/YUV422,则PixelBytes=2。以4K30hZ HDMI输入,单Port 4Lane CSI YUV422输出为例,Pixclk=297Mhz,
Byteclk=(297*2/4)Mhz+5Mhz,一般横屏分辨率Byteclk在理论值加5~10,竖屏则在理论值加10~20;
4、 LT6911C的输入输出是Bypass模式,即HDMI输入什么分辨率帧率,MIPI就输出相同的分辨率帧率;
5、 CSI应用 务必将GPIO5/Reset/CSC_IIC连接到SOC,当分辨率发生变化时GPIO5产生200mS高电平脉冲,SOC通过IIC读取分辨率等
信息;
6、 DSI应用场景1 有音频需求的,当无有效信号GPIO5输出低电平,有稳定信号输出高电平,外部MCU可以通过该信号控制屏的
上下电时序;
7、 DSI应用场景2 无音频需求的,可以通过Pin26/27/28/29控制屏的上下电时序;
8、 芯片的IIC地址说明 ,器件地址为0x56,其中Bit0为读写位,高7位为地址位。
寄存器地址说明 ,芯片内部寄存器采用16bit寻址(读写操作还是与8位寻址一致),其中高8位为Bank地址,低8位为Bank内偏
移地址。访问不同Bank寄存器是需要先切换Bank地址(存放Bank地址的寄存器为0xFF),再设置偏移地址。例如读chipID寄存
器0xa000/01,其中Bank地址为0xa0,偏移地址为0x00/01;
10、外部SOC或者MCU访问内部寄存器需要先将 iic_enable(0x80ee=0x01) ,退出访问必须 iic_disable(0x80ee=0x00)
三、软件调试及编译
1、 timing 配置方式,对于 HDMI 而言会根据 EDID 的第一个 DetailTiming 输出对应的 timing 值
1.1、 修改 g_TimingStr 结构体并将 g_EdidBlockCalEnable 设置为 TRUE;
Lt6911_HdmiEdidSet 函数会根据 EdidBlockCalEnable=TRUE 替换默认 EDID 的第一个 DetailTiming。
1.2、 修改 ONCHIP_EDID 并将 g_EdidBlockCalEnable 设置为 FALSE;
此模式下软件会把 ONCHIP_EDID 的 EDID 写入到 6911C 的 EDID_Shadow 中。
特别注意 Hblank 的大小不要小于 Havtive 的 10%,推荐为 15%,例如 1200x1920,hs+hbp+hfp=180
2、 修改 mipi 格式
g_ChipModel = LT6911C;/ /LT6911C & LT6911
根据芯片信号选择,双 mipi 选择 LT6911C,四 mipi 选择 LT6911
g_DisplayMode = VideoCopyMode;// VideoCopyMode & SideBySideMode
VideoCopyMode 代表双 mipi 输出相同的内容,SideBySideMode 代表双 mipi 左右拼接输出;
g_OutputMode = YUV422;// RGB & YUV422 & YUV444
一般 DSI 选择 RGB,CSI 选择 YUV422,根据需要的格式做选择;
g_MipiFormat = YUV422_8bit;//RGB888 & YUV422_8bit
一般 DSI 选择 RGB888,CSI 选择 YUV422
g_MipiType = CSI;//DSI & CSI
3、 修改 mipi videomode 和 lane 数
MIPI g_MipiSetStr =
{
Port_4lane// Port_4lane & Port_3lane & Port_2lane & Port_1lane
, Burst_Mode// Burst_Mode & NonBurst_SyncPulse_Mode & NonBurst_SyncEvent_Mode
, NonContinuousClock// ContinuousClock & NonContinuousClock
};
3.1、 Port_4lane & Port_3lane & Port_2lane & Port_1lane 代表 4、3、2、1lane mipi 选择,根据实际需求配置,
此初配置是针对所有 Port,即不同 Port 的 mipi lane 是必须相同的。
3.2、Video Mode,有四个组合,常用组合为 Burst_Mode + NonContinuousClock
组合一、 Burst_Mode + ContinuousClock
组合二、 Burst_Mode + NonContinuousClock
组合三、 NonBurst_SyncPulse_Mode + ContinuousClock
组合四、 NonBurst_SyncEvent_Mode + ContinuousClock
4、 修改 GPIO5 和 IIS_gpio
#define GPIO5_LCDReset
0
// dsi 设置 1 ,csi 设置 0,目的是 GPIO5 只做中断还是复位 lcd
#define IIS_GPO
0
//iis 用作 GPO 设置为 1 ,用作音频输出设置为 0
5、 微调 mipi clk
函数 Lt6911_MipiClockSet 中的 OFFSET 常量,该函数是用于配置 Bytclk 即字节时钟,MIPI clk=4* wr_byteclk;
6、 微调 mipi dphy 参数
函数 Lt6911_MipiDphySet,关键参数为 lp 和 prep 的时间,单位为 Byteclk 的一个周期,微调只需要在等式右边+
5 以内的常量即可;
wrhslpx = rdbyteclk/20 ; // hs lpx > 50ns
wrhsprep = rdbyteclk/18 + 2 ; //hs prep : (40ns + 4*UI)~(85ns + 6*UI)

猜你喜欢

转载自blog.csdn.net/m0_47688674/article/details/124941849