lt9611是一款mipi轉hdmi的芯片,項目中有使用到,分享下調試經驗。
參考設計

要先拿到源碼,然后進行調試。剛好代碼默認有一份驅動,那不就折騰了。適當修改后,接hdmi屏幕進行測試,i2c能正常通信,也能正確解碼前端的mipi信號,感覺成功了一半。屏幕也提示檢測到了hdmi信號,但黑屏。先讓ic進入自測試模式,看輸出正不正常,屏幕提示超出范圍。
看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了,因為拿不到寄存器說明手冊。
硬件檢查點:
2k的精密電阻要貼上
27M的晶體要正常起振,由于示波器的探針跟地相當于一個小電容,測量1M電阻的波形時,相當于在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
-
芯片
+關注
關注
463文章
54007瀏覽量
465952 -
嵌入式
+關注
關注
5198文章
20442瀏覽量
333990
發布評論請先 登錄
深入RK3588內核:rockchip_linux_defconfig的作用與調試價值
Linux系統性能調試工具—strace
LT1210X:高溫環境下的高性能電流反饋放大器
Linux 下開發嵌入式必備命令速查表
深入解析MAX9611/MAX9612:高側電流檢測放大器的理想之選
探索MAX9611/MAX9612:高側電流檢測放大器的卓越之選
RK3506 MIPI轉HDMI顯示開發實戰:從硬件到驅動全解析
DR1平臺Linux應用開發指南:含GDB調試、Python及MQTT實戰
Linux內核日志玩明白了嗎?printk調試神器全解析
ElfBoard技術貼|如何在【RK3588】ELF 2開發板進行GDB調試
Linux下lt9611調試總結
評論