技术参数

  • IO Power supply: (VDDIO) 3.3v
  • MIPI analog and digital power supply: (MVDD) 1.2V
  • 最高支持 1920 像素 (60Hz)
  • 最高支持 to 2560 像素 (30Hz)
  • 支持 DSI(v1.01.00), DCS(v1.02.00), D-PHY (v1.00.00)

文档

ssd2828-rgb-arrangement

 

 

 

软件

//@RGB interface configuration 
//Horizontal Back Porch
//指有效行间 行同步信号(HSYNC)开始 到有效数据开始之间的DCLK的CYCLE个数 包括同步信号区
//Horizontal Sync Pulse Width
//指行同步信号的宽度 单位为1个dclk的时间(即是1个datacycle的时间)
//Vertical Back Porch
//指场同步信号(VSYNC)开始,到有效数据行开始之间的行数 包括场同步信号区
//Vertical Sync Pulse Width
//指场同步信号的宽度 单位为行
//@MIPI lane configuration
//@CABC brightness setting
//@Communicate with LCD driver through MIPI 
//@PLL configuration
delay(2000);
/* @group LCD driver initialization */
//MIPI lane and PLL configuration 
//Send command and data through MIPI
delay(2000);
/@ group Access video mode */
//RGB interface configuration 
//MIPI lane configuration
//CABC brightness setting 
delay(200);
//PLL configuration

 

读取 SSD2828 Device ID

  • Register Address: 0xB0
  • Reset Value: 0x2828

 

注意事项

应用笔记

  • 如果不使用 SPI 接口, CSX (Pin 59) 要设置为 HIGH
  • SPI Interface 8 bit 4 Wire
  • PCLK 的波形信号质量不好的时候容易出问题,一般用 TX_CLK (晶振)。
  • B1-B6 寄存器配置正确之后才能接收到正确的RGB信号。

D-PHY

传输模式

  • LP(Low-Power) 模式:用于传输控制信号,最高速率 10 MHz
  • HS(High-Speed)模式:用于高速传输数据,速率范围 [80 Mbps, 1Gbps] per Lane

传输的最小单元为 1 个字节,采用小端的方式及 LSB first,MSB last。

2、Lane States

  • LP Mode 有 4 种状态: LP00、LP01(0)、LP10(1)、LP11 (Dp、Dn)
  • HS Mode 有 2 种状态: HS-0、HS-1

HS 发送器发送的数据 LP 接收器看到的都是 LP00,

3、Lane Levels

  • LP: 0 ~ 1.2V
  • HS: 100 ~ 300mV,HS common level = 200mV,swing = 200 mv

4、操作模式

在数据线上有 3 种可能的操作模式:Escape mode, High-Speed (Burst) mode and Control mode,下面是从停止状态进入相应模式需要的时序:

  • Escape mode 进入时序:LP11→LP10→LP00→LP01→LP00,退出时序:LP10→LP11

当进入 Escape mode 需要发送 8-bit entry command 表明请求的动作,比如要进行低速数据传输则需要发送 cmd: 0x87,进入超低功耗模式则发送 cmd: 0x78。在 DSI 中 LP 通讯只用 Data Lane 0。

  • High-Speed mode 进入时序:LP11→LP01→LP00→SoT(0001_1101),退出时序:EoT→LP11,时序图如下:

 

Turnaround 进入时序:LP11→LP10→LP00→LP10→LP00,退出时序:LP00→LP10→LP11

这是开启 BTA 的时序,一般用于从 slave 返回数据如 ACK: 0x84。

5、时序要求

在调试 DSI 或者 CSI 的时候, HS mode 下的几个时序非常重要:T_LPX,T_HS-SETTLE ≈ T_HS-PREPARE + T_HS-ZERO,T_HS-TRAIL,一般遵循的原则为:Host 端的 T_HS-SETTLE > Slave 端的 T_HS-SETTLE。

二、DSI

1、线路构成

  • 在 DSI 中需要 1 根时钟线以及 1 ~ 4 根数据线。

2、两种接口的 LCD

  • Comman mode(对应 MPU 接口)
  • Video mode(对应 RGB 接口)该模式下视频数据只能通过 HS mode 传输

故障排查

  • 唤醒慢的问题

在最初调试的几款 LCD 里面初始化 cmd 都比较少,后来在调试一款 IPS 屏的时候发现唤醒需要 3 秒左右,这款 LCD 初始化 cmd 有100多条,之前在调试一款 LCD 的时候每条 cmd 发送之后需要 delay 10ms 再发下一条 cmd,所以在这款 LCD 这里不能有 delay,并且经过调试在确保发送成功的情况下将 LP 的传输速度提高了 3 倍(这里需要读取每条 cmd 的返回值 0x84 确认命令是否发送成功),优化后唤醒时间不到 1 秒。

  • LCD 参数理解更正

才发现之前一直对 LCD 的几个参数 HFP、HBP、VFP、VBP 理解有错误,正确的应该是以同步信号(HSYNC、VSYNC)为基准,在同步信号之前的称为 Front,在同步信号之后的称为 Back,而不是之前理解的以有效像素为基准。

  • LCD 显示呈锯齿状问题

这两天(12.11)还调试了一款 540 x 960 分辨率的 mipi LCD,在开始的时候一直点不亮,和供应商确认了好久无意间才发现是他们给的初始化代码是错的,使用正确的初始化代码就能点亮了,不过显示出来的图像却是呈锯齿状的,即没有对齐。之前在别的平台也遇到过类似问题,也就是分辨率不是 16 的整数倍,LCD controller 在取数据的时候会对不齐。边研究 Datasheet 边和 ASIC 同事讨论,后来确定了一个方案:即在 DSI、LCD 寄存器里面设置分辨率为 540 x 960 以让 LCD 正确识别信号,但 framebuffer 需要设置为 544 x 960 以对齐,并且设置 Source pitch 寄存器为 544,这样显示就正常了,相当于 framebuffer 里每一行的最后 4 个 pixel 会被 LCD controller 丢掉。

今天(12.12)在和 ASIC 同事的讨论下更正了之前的理解:LCD controller 在计算取数据的时候,地址是根据(x,y)坐标来算的,差不多是address = y * pitch + x + base,pitch 就是一行 pixel 在内存里的大小,这个至少是要对齐到 8byte, 因为 bus 宽度是 8byte,如 Data sheet 中的描述 ”Source pitch for RGB channel, QWORD aligned if linear mode“。之前计算 pitch 值的公式为:xres / 8 * bits_per_pixel / 8,如果 xres = 540,bits_per_pixel = 32,计算的结果因为取整的原因为 0x10c,实际上正确的值应该是 0x10e,所以需要将公式改为:xres * (bits_per_pixel / 8) / 8,即在每个像素占 4byte 的情况下只要 xres 为偶数就可以满足对齐的要求,而不用改为 544。