hi3556 MIPI屏调试指南

3556v200 MIPI屏调试指南

1 概述 :

​ a、 海思屏幕调试目前调通的只有MIPI接口屏幕,此文档只对海思平台MIPI屏幕调试做说明,目的做到不用过多的熟悉海思给出的文档,参照此文档实现新屏适配。

​ b、 调试屏幕还需依赖海思提供的以下两个文档:

​ RGB_MIPI屏幕时钟时序计算.xlsx

​ Hi3556V200 2K Mobile Camera SoC 用户指南.pdf

​ c、 屏幕相关代码路径:reference\hal\screen,此目录下海思sdk给出了几个调试好的屏幕,我们参考ota7290b进行说明。

在这里插入图片描述

其中我们主要关注以下成员,其他成员保持ota7290b公版代码不变

HAL_SCREEN_OTA7290B_Init

HAL_SCREEN_OTA7290B_GetAttr

HAL_SCREEN_OTA7290B_SetBackLightState

HAL_SCREEN_OTA7290B_GetBackLightState

HAL_SCREEN_OTA7290B_SetLuma

HAL_SCREEN_OTA7290B_GetLuma

1、HAL_SCREEN_OTA7290B_Init

​ 此函数主要做以下事情:

img

​ a、第一步加载mipi_rx驱动,mipi_tx_module_init()为为海思sdk提供的mipi_rx驱动里写好的接口,在我们调试其它屏幕时这一步请与ota7290b保持一致,不需要变更。

​ b、第二步对屏幕进行复位操作,这一步需要特别注意,需要和屏厂确认时序,在以往点屏过程中这里容易出错,在这里操作gpio直接利用海思封装好的himm,himd接口进行读写寄存器,特别注意读写寄存器时要进行位操作,避免影响其他寄存器。

​ c、第三步打开屏幕背光,这里应根据项目需求确定是GPIO高低电平还是采用脉宽调制,操作时要注意采用不同形式对其gpio进行引脚重用和脉宽调制配置,具体操作参照ota7290b进行实现。

​ d、第四部主要是通过HI_MIPI_TX_SET_DEV_CFG将 combo_dev_cfg_t结构体配置下去****(*ioctl(s_s32HALSCREENFd,HI_MIPI_TX_SET_DEV_CFG, &mipiDevCfg)****)*

​ 下面通过一个示例说明mipiDevCfg中的各项参数怎么配置

示例:

假设从屏幕厂商中拿到的数据为:

  • MIPI Tx 输出模式为 DSI_VIDEO
  • 数据格式为 BURST_MODE
  • 输出数据类型为 OUT_FORMAT_RGB_24_BIT

且给出了屏幕所需要的时序信息:

  • 水平有效区(HACT): 854(像素)
  • 水平后消隐(HBP): 12(像素)
  • 水平前消隐(HFP): 6(像素)
  • 水平同步时序(HSA): 2(像素)
  • 垂直有效区(VACT): 480(行数)
  • 垂直后消隐(VBP): 48(行数)
  • 垂直前消隐(VFP): 40(行数)
  • 垂直同步时序(VSA): 24(行数)
  • 设备帧率为 60fps

直接将我们从屏厂得到的屏幕时序信息填入RGB_MIPI屏幕时钟时序计算.xlsx中MIPI屏幕属性一项中可以自动计算出相应的MIPI设备属性参数值即mipiDevCfg结构体的sync_info、phy_data_rate、pixel_clk这几项的值。表中VO用户时序参数值后续我们会用到。

在这里插入图片描述

在这里插入图片描述

成员名称描述
devnoMIPI Tx 设备号,配 0
lane_id4lane:配成{0,1,2,3} 3lane:配成{0,1,2,-1}2lane:配成{0,1,-1,-1} 1lane:配成{0,-1,-1,-1}未使用的 lane 设置为-1
output_modeMIPI Tx 输出模式。参数选择范围: OUTPUT_MODE_CSI、OUTPUT_MODE_DSI_VIDEO、OUTPUT_MODE_DSI_CMD。三种参数分别表示了 MIPI Tx 不同的数据输出模式。具体选择哪种输出模式, 参考屏幕说明书。
output_formatVIDEO 模式下的数据格式。参数选择范围: BURST_MODE、NON_BURST_MODE_SYNC_PULSES、NON_BURST_MODE_SYNC_EVENTS。三种模式下,传递的数序和数据包位置不同, 具体根据特定屏要求赋值。 参考屏幕说明书。如果 output_mode_t 属性为 OUTPUT_MODE_DSI_CMD,本属性配置不生效。
video_modeMIPI Tx 输出数据类型。参数选择范围: OUT_FORMAT_RGB_16_BIT、OUT_FORMAT_RGB_18_BIT、OUT_FORMAT_RGB_24_BIT、OUT_FORMAT_YUV420_8_BIT_NORMAL、OUT_FORMAT_YUV420_8_BIT_LEGACY、OUT_FORMAT_YUV422_8_BIT。参数表示的是 MIPI Tx 发送的数据包中数据的格式, 根据特定屏要求赋值。 参考屏幕说明书

e、第五步主要是配置 MIPI Tx 屏幕初始化序列

​ SDK 提供了结构体 cmd_info_t,如需将该结构体中每一项都赋值, 可通过HI_MIPI_TX_SET_CMD 配置下去,建议在 HI_MIPI_TX_ENABLE 之前调用, 此时mipi 工作于 LP 模式,数据以低速发送,兼容性较好,cmd_info_t 结构体定义如下所示。

在这里插入图片描述

MIPI 命令一般由,数据类型+数据地址+数据索引+数据 1 +数据 2+…+数据 N,数据索引为数据的个数。 数据地值和数据一般为 16 位。

cmd_info_t 结构体赋值示意表:

成员名称描述
devnoMIPI Tx 设备号,配 0
data_type写命令数据类型, 即 DCS(DisplayCommandSet)(指令集)中的Data Type。 根据数据个数选择数据类型。类型 1、当只有寄存器地址没有数据时, 数据类型选择 0x5或者 0x13, 一般情况下通用,具体使用哪个请咨询厂商或者查询屏幕说明书;类型 2、 有寄存器地址和一个数据时, 数据类型选择 0x15 或者 0x23, 一般情况下通用, 具体使用请咨询厂商;类型 3、 有寄存器地址且数据个数大于等于两个数据类型一般用 0x39 或者 0x29, 一般情况下通用,具体使用请咨询厂商
cmd_size数据类型个数。但是只有大于或等于两个数据时才用来表示数据个数。类型 1、 当没有数据时, 为寄存器地址;类型 2、 当一个数据时, 低八位为地址,高八位为数据。
cmd命令数据指针。类型 1、类型 2、 当小于两个数据时,可置为 NULL;类型 3、 否则为数据。

下面举例说明三种配置方式:

  • MIPI TX 只发送地址 cmd_info_t 结构体配置示例。当需要发送地址 0x11 时, 配置如下所示。

在这里插入图片描述

  • MIPI TX发送地址和多个数据cmd_info_t结构体配置示例。当需要往0xe1地址上依次写数据 0xf0,0x03…0x23时配置如下所示。

在这里插入图片描述

f、第六步调ioctl(s_s32HALSCREENFd, HI_MIPI_TX_ENABLE)使能mipi_tx设备。

2、HAL_SCREEN_OTA7290B_GetAttr

​ 该接口主要用于配置海思平台VO 输出序列,如下图中位置直接将"RGB_MIPI屏幕时钟时序计算.xlsx"中得到的VO用户时序参数值填上即可。

在这里插入图片描述

3、HAL_SCREEN_OTA7290B_SetBackLightState

​ 此接口用于设置当前屏幕背光打开还是关闭,应注意区分背光控制方式(gpio? PWM?),相关操作参考ota7290b。

4、HAL_SCREEN_OTA7290B_GetBackLightState

​ 此接口用于得到当前屏幕背光的状态,相关操作参考ota7290b。

5、HAL_SCREEN_OTA7290B_SetLuma

​ 此接口用于调整屏幕亮度,相关操作参考ota7290b。

6、HAL_SCREEN_OTA7290B_GetLuma

​ 此接口用于得到屏幕亮度,,相关操作参考ota7290b。

​ 注:

​ 以上gpio,pwm相关寄存器需要参考"Hi3556V200 2K Mobile Camera SoC 用户指南.pdf"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值