加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 硬件準備
    • 軟件修改
    • ① reset引腳時序控制
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

人氣方案推薦——RK3399 雙路MIPI拼接屏+HDMI 三屏顯示

2021/04/01
903
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

飛凌嵌入式RK3399系列主板和核心板支持屏幕拼接顯示,即同一內容分開兩部分在兩個屏幕上顯示,支持橫屏和豎屏顯示,并支持雙屏觸控。適用于游戲機、收銀機、多屏互動、智能廣告機、醫(yī)療健康設備等應用場景。 

硬件準備

■ 飛凌OK3399-C開發(fā)板

■ 2個帶觸摸MIPI顯示屏

■ 1個HDMI顯示屏

PART1.場景實現(xiàn)前提

VOP

Rockchip 平臺的LCD Controller 稱為VOP(Video Output Processor),芯片中一般集成1~2 個VOP。只有支持兩個VOP 的芯片,才能支持雙屏異顯。 

RK3399 有兩個VOP,分別為VOPB(4096x2160),VOPL(2560x1600),所以對于分辨率大于2560x1600 的應用,只能選擇VOPB 作為輸入。

 

MIPI-DSI

RK3399 VOP可以接單通道MIPI屏也可以接雙通道MIPI屏。單通道一半對應的是4 lanes,雙通道對應8 lanes。

1) Single-channel

2) Dual-channel (RK3288/RK3399)

① 標準的dual-channel 接口MIPI 屏

 

② 分別接一樣的屏,組合成dual-channel 接口MIPI 屏,panel0 顯示左半屏,panel1 顯示右半屏。

 

 

雙路mipi拼接屏

之所以可以做成雙路mipi拼接顯示,究其原因是RK3399的vop可以支持雙通道m(xù)ipi,借用這個特性,我們才能進行拼接。

我們選擇了兩個1080x1920分辨率的豎屏進行拼接,使用VOP BIG進行輸出。

PART2.實現(xiàn)步驟
 

軟件修改

① reset引腳時序控制

根據(jù)手冊提供的示意圖可知,reset引腳需要先拉高,然后拉低保持tRESW時間,再拉高保持tREST時間,顯示控制芯片就進入Initial Condition,這個時候我們就可以進行寫初始化序列了。一般可以再找FAE確認一下reset的時序要求。

reset引腳控制時序

       fdtdec_set_gpio(&panel->reset_gpio, 1);

       msleep(panel->delay_init);

       fdtdec_set_gpio(&panel->reset_gpio, 0);

       msleep(panel->delay_reset);

       fdtdec_set_gpio(&panel->reset_gpio, 1);

       msleep(panel->delay_enable);

 

② 初始化序列

在設備樹中配置mipi屏的初始化序列,在dsi節(jié)點中配置panel-init-sequence數(shù)組序列


 

&dsi {

   panel@0{

       panel-init-sequence = [

           39 10 04 B9 FF 83 99

           39 10 10 B1 02 04 6D 8D 01 32 33 11 11 5A 5F 56 73 02 02

           39 10 0C B2 00 80 80 AE 05 07 5A 11 10 10 00

           ...

           15 10 02 D0 39

           15 64 02 11 00

           15 64 02 29 00

       ];

   };

};

命令解析:

39 10 04 B9 FF 83 99

Data Type:0x39 (DCS Long Write)

Delay:0x10 (16 ms)

Payload Length:0x04 (4 Bytes)

Payload:0xB9 0xFF 0x83 0x99

進一步分析,該命令前3個字節(jié)屬于命令格式,后面“B9 FF 83 99”才是要傳輸?shù)闹噶睢?/p>

B9是要寫入的命令,“FF 83 99”是該命令后面的3個參數(shù)。

 

③ 設置時鐘參數(shù)

&dsi {

   panel@0{

        display-timings {

            native-mode = <&timing0>;

           timing0: timing0 {

               clock-frequency = <120000000>;

               hactive = <1080>;

               vactive = <1920>;

               hback-porch = <32>;

               hfront-porch = <32>;

               vback-porch = <10>;

               vfront-porch = <8>;

               hsync-len = <32>;

               vsync-len = <4>;

               hsync-active = <0>;

               vsync-active = <0>;

               de-active = <0>;

               pixelclk-active = <0>;

           };

       };

   };

};

設置完這些,單個屏幕就可以正常點亮顯示了,但這不是我們的目的,我們的目的是雙屏拼接。

 

dual-channel

使能dsi1節(jié)點,配置“rockchip,dual-channel”、“dsi,lanes”屬性。

將horizontal方向上的顯示參數(shù)增加一倍,并將時鐘頻率調高一倍。

&dsi {

   status = "okay";

   rockchip,dual-channel = <&dsi1>;

   panel@0{

       dsi,lanes = <8>;

       display-timings {

           native-mode = <&timing1>;

           timing1: timing1 {

               clock-frequency = <240000000>;

               hactive = <2160>;

               vactive = <1920>;

               hback-porch = <64>;

               hfront-porch = <64>;

               vback-porch = <10>;

               vfront-porch = <8>;

               hsync-len = <64>;

               vsync-len = <4>;

               hsync-active = <0>;

               vsync-active = <0>;

               de-active = <0>;

               pixelclk-active = <0>;

           };

       };

   };

};

&dsi1 {

   status = "okay";

};

修改完就可以點亮兩塊MIPI屏了,效果如下:

兩個MIPI使用了VOP BIG,VOP LITTLE還可以再支持一路HDMI顯示。再插入HDMI,顯示效果如下:

這樣就可以實現(xiàn)瑞芯微教學視頻中的三屏顯示方案了,通過寫app就可以做出三屏拼接顯示或者三屏異顯的方案。

相關推薦

電子產(chǎn)業(yè)圖譜

秉承專業(yè)態(tài)度,專注智能設備核心平臺研發(fā)與制造,以技術研發(fā)創(chuàng)新為主導,以客戶實用化,產(chǎn)品化為目標,把握嵌入式行業(yè)的前沿發(fā)展需求,利用核心技術為客戶提供穩(wěn)定、可靠、功能優(yōu)異的高品質產(chǎn)品。合作聯(lián)系:17713286011