Hdmi Q&A

Q1: 如何把sensor输出到HDMI上显示?

可以参考一下mi_demo目录下的panel,根据目录下的README配置使用屏幕参数。

Q2: HDMI使用时出现[ST_ResetHdmiDispFlow 1790]exec function failed, error:a0222007报错?

检查一下输入HDMI的数据格式是否正确,比如SCL->HDMI,那stSclOutputParam.ePixelFormat就要设置正确的格式。

Q3: HDMI显示,GetSInkInfo函数获取显示屏的物理分辨率,对于4K显示屏获取给出的NativeTimingType值为48,但是SDK中提供的MI_HDMI_TimingType_e最大只到42?

看上去是头文件没更新,链接的库跟头文件要统一才行,再检查一下sdk更新情况,是不是更新之后链接库和头文件对不上了。

Q4:切换HDMI显示器,打印信息中确实检测到了不同分辨率,也下发了配置,各个打印信息也没有error的提示,回调函数中都是pass通过,可并没有激活显示器?

可以打印/proc下的调试信息看看数据流是否正常,比如看下disp的recvbuff是否有数据。详细的debug信息可以看下sigdoc上的相关文档。

Q5: HDMI模块切换分辨率(例如从4K到1080P),SetAttr后函数提示都是成功的,为什么显示器没有被激活?

正确的切换分辨率流程是:stop getattr setattr start,如按此流程切换不出图,可以cat /proc下相应的disp设备的debug 信息检查

Q6: 如何调试HDMI驱动能力?

Bank 145A_22/23 = 0x1414 设置成Bank 145A_22/23 = 0x0000 再试试效果。 PS:HDMI 起来后,再读寄存器。 HDMI Default Bank 145A_22/23 =0x1414 Bank 145A_22 6bit【5:0】 Data0 Bank 145A_22 6bit【13:8】 Data1 Bank 145A_23 6bit【5:0】 Data2 Bank 145A_23 6bit【13:8】 CLK driver current 0.5mA(1[0]+2[1]+4[2]+8[3]+16[4]+32*[5])。