MIPI-DSI 接口屏幕相关问题总结

[English]

本文档主要总结了 MIPI DSI 接口屏幕开发过程中常见的问题,并给出了相应的解决方法。

相关文档

MIPI-DSI 接口驱动 API 参考

相关示例

MIPI-DSI 接口屏幕驱动示例

时序参数计算

lane_bit_rate_mbps 计算方法

  1. 计算原始数据速率

    Pixel Clock 公式:

    pixel_clock = (水平分辨率 + HBP + HFP + HSPW) × (垂直分辨率 + VBP + VFP + VSPW) × 刷新率
    

    Raw Data Rate 公式:

    raw_data_rate = pixel_clock × bits_per_pixel
    
  2. 考虑 DSI 协议开销

    • 8b/10b 编码:增加 25%(×1.25)

    • 包头 + ECC:预留大约 10~15%(这里取 15%,×1.15)

    综上:

    protocol_data_rate = raw_data_rate × 1.25 × 1.15
    
  3. 按数据通道数均分:

    lane_bit_rate = protocol_data_rate ÷ num_data_lanes
    
  4. 预留 20% 带宽余量:

    final_bit_rate = lane_bit_rate × 1.2
    
  • 注意,在 ESP32-P4 平台上,lane_bit_rate_mbps 最大 ≤ 1.5 Gbps,同时建议最小值 ≥ 480 Mbps

示例计算

  • 分辨率:800 × 1280(HSPW=4,HBP=20,HFP=20;VSPW=4,VBP=20,VFP=20)

  • 刷新率:60 Hz

  • 色深:24 bpp

  • 数据通道数:2

具体步骤:

  1. Pixel Clock:

    pixel_clock = (800+20+20+4) × (1280+20+20+4) × 60
                = 62.4 MHz
    
  2. Raw Data Rate:

    raw_data_rate = 62.4 MHz × 24 = 1497.6 Mbps
    
  3. 协议开销调整:

    protocol_data_rate = 1497.6 × 1.25 × 1.15 = 2153.55 Mbps
    
  4. 单通道速率:

    lane_bit_rate = 2153.55 ÷ 2 ≈ 1076.78 Mbps
    
  5. 预留 20% 余量:

    final_bit_rate = 1076.78 × 1.2 ≈ 1292 Mbps
    

因此,lane_bit_rate_mbps ≈ 1.3 Gbps

关于 MIPI-DSI 数据通道数带来的选屏困扰

ESP32-P4 最多支持 MIPI-DSI 2 lane。虽然市面上的屏幕多数以 4 lane 为主,但大部分面板都可通过寄存器配置兼容 2 lane,因此在选型时无需过于受限。同时,可参考 LCD 驱动 IC 中支持 MIPI-DSI 的屏幕列表。

  • 注意, ESP32-P4 仅支持 Video 模式输出视频流,不支持 Command 模式,客户选屏时需要注意。