日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Android MIPI转LVDS显示屏调试--- bootloader阶段显示(4)

發(fā)布時間:2025/4/16 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android MIPI转LVDS显示屏调试--- bootloader阶段显示(4) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

《80_NU323_3_Multimedia_Driver_Development_and_Bringup_Guide___Display.pdf》提到Once Kernel bringup is done, perform the following steps for little kernel (LK) bringup.,也就是說推薦先調(diào)試kernel,但我們還是先介紹lk。

  • 顯示屏是command還是video mode
  • 我們的顯示屏是video mode

    ?

    2. 創(chuàng)建panel(顯示屏)頭文件

    到device\qcom\common\display\tools目錄下,找到此目錄下類似的xml文件,比如panel_nt35596_1080p_video.xml,基于此文件改為和我們顯示屏的,比如改為panel_lm215w_lvds_1080p_video.xml,此xml文件里的內(nèi)容細節(jié)這里不介紹了。

    Xml可生成對應的.h和.dtsi文件,生成的方法如下:

    perl parser.pl panel_lm215w_lvds_1080p_video.xml panel

    但是在生成頭文件的時候,沒有生成panel_config結(jié)構(gòu)體的mode_gpio_state和slave_panel_node_id對應的值,也沒有生成lane_configuration結(jié)構(gòu)體下force_clk_lane_hs成員的值。見下圖紅色部分,只能是我們手動增加,或是修改parser.pl文件來生成對應的

    在parser.pl和xml中增加ModeGPIOState和SlavePanelNodeID(這兩個名稱是我自己命名的),這樣用perl parser.pl panel_lm215w_lvds_1080p_video.xml panel生成的頭文件就可以了。

    Xml文件的配置,詳細參考文檔

    《80_NU323_3_Multimedia_Driver_Development_and_Bringup_Guide___Display.pdf》,xml中一些參數(shù)的生成需要用到《80-NH713-1_G_DSI_Timing_Parameters.xlsm》,比如我們要根據(jù)panel的參數(shù)來填寫

    下面只介紹幾項

    2.1? PanelTimings

    An array of length 12 that specifies the PHY timing settings for the panel.

    填寫好參數(shù)后,見excel表格的DSI PHY timing setting子表格

    執(zhí)行CTRL+J and CTRL+K后重新計算生成相關的,如下

    PanelTimings對應DSI PHY registers的值,如下:

    <PanelTimings>"0xD6, 0x32, 0x22, 0x00, 0x62, 0x66, 0x26, 0x36, 0x28, 0x03, 0x04, 0x00"

    ?

    2.2? TclkPost和TClkPre

    (1)TClkPost

    DSI timing control clock post value

    (2)TclkPre

    DSI timing control clock pre value

    ?

    這兩個值對應T_CLK_POST和T_CLK_PRE,

    </PanelTimings>

    ??? <DSIMDPTrigger>0</DSIMDPTrigger>

    ??? <DSIDMATrigger>4</DSIDMATrigger>

    ??? <TClkPost>0x03</TClkPost>

    ??? <TClkPre>0x28</TClkPre>

    ?

    2.3? ResetSequence

    Reset sequence using ResetGPIO with pulse width.這是顯示屏使用的reset引腳的控制時序圖,我們本次設計的SN65DSI84沒有用到reset,我以之前項目用的顯示屏panel規(guī)格書說明下

    這是panel reset引腳的時序圖,所以

    <ResetSequence>

    ?????? <PinState1>1</PinState1>

    ?????? <PulseWidth1>20</PulseWidth1>

    ?????? <PinState2>0</PinState2>

    ?????? <PulseWidth2>2</PulseWidth2>

    ?????? <PinState3>1</PinState3>

    ?????? <PulseWidth3>20</PulseWidth3>

    ?????? <EnableBit>2</EnableBit>

    ??? </ResetSequence>

    這些值我還沒有改,需要根據(jù)實際panel來填寫,具體需要幾個階段,根據(jù)panel的規(guī)格書來定,比如這里是3個階段

    這里的EnableBit是用于表示reset GPIO作為輸入還是輸出的,輸入對應0,輸出對應2,這個時序在target_panel_reset()中會用到

    ?

    2.4? 頭文件結(jié)構(gòu)體lane_configuration的force_clk_lane_hs

    這個表示是否強制DSK CLK工作在HS(高速)模式,一般情況下command panel此值為0,表示工作在LP(low power)模式;video panel此值為1,表示工作在HS模式。

    因為我們硬件設計,SN65DSI84采用的是DSI CLK作為時鐘源,SN65DSI84的DSI Lane合并時需要在HS模式,所以我們這里force_clk_lane_hs=1,如果為0則黑屏

    ?

  • 初始化流程
  • aboot_init()--->sn65dsi84_Init()+target_display_init()--->gcdb_display_init()--->oem_panel_select()--->init_panel_data()

    ?

    下面重點說明下我們修改涉及的部分:

    3.1? sn65dsi84_Init()

    這里主要是對SN65DSI84初始化,主要的內(nèi)容如下:

    3.1.1? 涉及到的GPIO控制

    3.1.2? 通過I2C對SN65DSI84寫寄存器,初始化

    這涉及到I2C讀寫,有兩種實現(xiàn)方式:

    (1)GPIO模擬I2C

    這里我省略到一部分寄存器,中間實際是有其他寄存器的。

    ?

    (2)采用CPU的I2C總線協(xié)議

    Lk下Msm8937對應的目錄是msm8952,查看了源代碼,lk階段8952沒有使用i2c,但msm8916下有配置i2c和使用i2c的地方,比如oem_panel.c下:

    那我們基于8916的用法來在8952下添加的,需要根據(jù)采用的I2C對應的GPIO口來確定是哪個BLSP和QUP,比如我們采用SDA---GPIO6,SCL---GPIO7,最后確定是對應BLSP1和QUP_ID_1,詳細見鏈接

    https://blog.csdn.net/LoongEmbedded/article/details/83070030

    3.2? oem_panel_select()

    確保panel_id的值為我們增加的顯示屏對應的,這里還調(diào)用init_sn65dsi84()來對SN65DSI84上電控制和通過I2C寫初始化參數(shù)。

    ?

    3.3? init_panel_data()

    把xml文件生成的mipi dsi相關參數(shù)來初始化panelstruct結(jié)構(gòu)體

    ?

    參考鏈接:

    toshiba TC358764 mipi 轉(zhuǎn)LVDS屏調(diào)試

    https://blog.csdn.net/u013786805/article/details/21630325

    高通spi 屏幕 -lk代碼分析

    https://www.douban.com/note/669497080/

    總結(jié)

    以上是生活随笔為你收集整理的Android MIPI转LVDS显示屏调试--- bootloader阶段显示(4)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。