USER GUIDE / DISPLAY / MIPI DSI / INITIALIZE CONTROLLER AND DPHY

初始化控制器和 D-PHY

配置 DPI 传输接口

全局配置:配置 n 通道(PHY_IF_CFG)来使能控制器高速传输的通道数量。

配置 DPI 接口,定义 DPI 接口与控制器交互。

  1. 配置 DPI_VCID 寄存器:DPI 接口数据包的虚拟通道。
  2. 配置 DPI_COLOR_CODING 寄存器。
  3. 配置 dataen_active_low (DPI_CFG_POL)。
  4. 配置 vsync_active_low (DPI_CFG_POL)。
  5. 配置 hsync_active_low (DPI_CFG_POL)。
  6. 配置 shutd_active_low (DPI_CFG_POL)。
  7. 配置 colorm_active_low (DPI_CFG_POL)。
  8. 配置 loosely18_en (DPI_COLOR_CODING)。

配置视频传输模式。

  1. 配置 low-power transitions (VID_MODE_CFG)。
  2. 配置 frame_bta_ack_en (VID_MODE_CFG)。
  3. 配置 lp_cmd_en (VID_MODE_CFG)。
  4. Burst mode 传输:
    1. 配置 vid_mode_type (VID_MODE_CFG) 为 2'b1x。
    2. 配置 vid_pkt_size (VID_PKT_SIZE) 为一行的 pix 数量。
    3. 配置 vid_num_chunks 和 vid_null_size 为 0。
  5. Non-Burst mode 传输:
    1. 配置 vid_mode_type field (VID_MODE_CFG) 为 2'b0x。
    2. 配置 vid_mode_type field (VID_MODE_CFG) 为 2'b00 使能 sync pulses 传输。
    3. 配置 vid_mode_type field (VID_MODE_CFG) 为 2'b01 使能 sync events 传输。
    4. 配置 vid_pkt_size field (VID_MODE_CFG) 为单个数据包中传输的 pix 数量。
    5. 配置 vid_num_chunks field (VID_NUM_CHUNKS)。
    6. 配置 vid_null_size field (VID_NULL_SIZE)。
  6. 定义 DPI 接口的 Horizontal 时序:
    1. 配置 vid_hline_time field (VID_HLINE_TIME) 为 DPI 接口一行需要的周期,单位是 lanebyteclk。
    2. 配置 vid_hsa_time field (VID_HSA_TIME) 为 DPI 接口 HSA 需要的周期,单位是 lanebyteclk。
    3. 配置 vid_hbp_time field (VID_HBP_TIME) 为 DPI 接口 HBP 需要的周期,单位是 lanebyteclk。
  7. DPI 接口的 Vertical 时序:
    1. 配置 vsa_lines field (VID_VSA_LINES) 为 DPI Vertical Sync Active 的数量。
    2. 配置 vbp_lines field (VID_VBP_LINES) 为 DPI Vertical Back Porch 的数量。
    3. 配置 vfp_lines field (VID_VFP_LINES) 为 DPI Vertical Front Porch 的数量。
    4. 配置 v_active_lines field (VID_VACTIVE_LINES) 为 DPI Vertical Active 的数量。

初始化 D-PHY

  1. 配置 PHY_RSTZ 的 physhutdownz 和 phyrstz 为高。
  2. 配置 PHY_TST_CTRL0 为 1'b1。
  3. 配置 PHY_IF_CFG 寄存器使能使用的 data lane。
  4. 配置 CLKMGR_CFG 寄存器的 tx_esc_clk_division 系数配置 TX_ESC clock 频率(低于 20 MHz),时钟源是 lanebyteclk。
  5. 配置 phy_forcepll 和 phy_enableclk(PHY_RSTZ)使能 PHY 的 PLL 和打开 clk lane。
  6. 等待 PHY 的 PLL locked 并且 clock lane 进入停止状态。

生成 Video Mode Pattern

  1. 配置 MODE_CFG 为 Video mode。
  2. 配置 VID_MODE_CFG[1:0] 选择 Video mode 类型。
  3. 配置 DPI_COLOR_CODING。
  4. 配置行和帧使用的时序寄存器。
  5. 配置 VID_MODE_CFG[20] 选择视频模式 pattern。
  6. 配置 VID_MODE_CFG[24] 选择 pattern 方向。
  7. 配置 VID_MODE_CFG[16] 使能 pattern 生成。