Linux下lt9611调试总结资料分享
lt9611是一款mipi转hdmi的芯片,项目中有使用到,分享下调试经验。
参考设计

首先需要获取源码,并对其进行初步分析研究。由于代码中默认配置了驱动程序,这样会省去不少麻烦。稍作调整后,在连接到HDMI屏进行测试时发现:I2C总线通信正常,并实现对前端Mipi信号的正确解码。屏幕上显示检测到HDMI信号输入,但此时屏幕上出现黑色画面。随后将IC芯片带入自检模式,并观察其输出结果是否正常:屏幕上显示检测到HDMI信号输入,但此时屏幕上出现黑色画面。
看log,有如下不正常打印
[ 211.152990] [LT9611] lt9611_pll() hdmi pll unlocked, reset pll
[ 211.163594] [LT9611] lt9611_pll() hdmi pll unlocked, reset pll
[ 211.172848] [LT9611] lt9611_pll() hdmi pll unlocked, reset pll
[ 211.182127] [LT9611] lt9611_pll() hdmi pll unlocked, reset pll
[ 211.193973] [LT9611] lt9611_pll() hdmi pll unlocked, reset pll
后来,测量27M的晶振,发现没有正常起振(27M的正旋波),跟参考设计对比,发现贴的电容不是15pF,导致不能起振。
修改后,ic自测显示正常,屏幕也能显示正确的内容。
在测试过程中遇到随机黑屏现象后,则可能需要重新调整IC的参数设置。这部分工作应该由FAE负责处理, 由于缺乏IC寄存器详细说明书, 因此无法自行完成调试工作
硬件检查点:
2k的精密电阻要贴上
频率为27MHz的晶体振荡器要想正常工作状态,在使用示波器进行测试时需要注意以下几点:首先由于探针接地形成一个等效电容当我们在1Ω电阻上进行测试时这相当于在原本已经存在的15pF电容基础上又并联了一个额外的电容器因此会导致示波器无法捕获到正确的信号即使高端型号的示波器也可能存在此问题因为使用的示波器型号较低
参考正确的打印
[ 1475.290967] [LT9611] lt9611_mipi_input_digtal() lt9611 set mipi lanes = 0
[ 1475.302923] [LT9611] lt9611_mipi_input_digtal() lt9611 set mipi ports = 1
[ 1475.309880] [LT9611] lt9611_mipi_input_digtal() lt9611.mipi_mode = dsi
[ 1477.356611] [LT9611] lt9611_video_check() lt9611.mipi_mode = dsi
[ 1477.363822] [LT9611] lt9611_video_check() h_act_a = 1920, h_act_b = 0, v_act = 1080, v_tal = 1125:
[ 1477.372935] [LT9611] lt9611_video_check() mipi_video_format: a
[ 1477.378984] [LT9611] lt9611_video_check() Video_Check = video_1920x1080_60Hz
[ 1477.386249] [LT9611] lt9611_pll() set rx pll = 148500
[ 1477.398933] [LT9611] lt9611_pll() pcr_m = 37, hdmi_post_div = 2
[ 1477.412925] [LT9611] lt9611_pll() hdmi pll locked
[ 1477.417829] [LT9611] lt9611_mipi_pcr() POL = 0, 0
[ 1477.428349] [LT9611] show_timing() video_format:1920X1080, pclk_khz:148500
[ 1477.435381] [LT9611] show_timing() hfp:88, hbp:148, hs:44, htotal:2200
[ 1477.442130] [LT9611] show_timing() vfp:4, vbp:36, vs:5, htotel:1125
[ 1477.458495] [LT9611] lt9611_audio_init() Audio inut = I2S 2ch
[ 1477.498075] [LT9611] lt9611_init() ############lt9611 initial End##################
[ 1477.507443] [LT9611] lt9611_init() Detect hpd High
[ 1477.588316] [LT9611] lt9611_frequency_meter_byte_clk() port A byte clk = 126270
