加入星計(jì)劃,您可以享受以下權(quán)益:

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

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

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

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

硬件準(zhǔn)備

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

■ 2個(gè)帶觸摸MIPI顯示屏

■ 1個(gè)HDMI顯示屏

PART1.場(chǎng)景實(shí)現(xiàn)前提

VOP

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

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

 

MIPI-DSI

RK3399 VOP可以接單通道MIPI屏也可以接雙通道MIPI屏。單通道一半對(duì)應(yīng)的是4 lanes,雙通道對(duì)應(yīng)8 lanes。

1) Single-channel

2) Dual-channel (RK3288/RK3399)

① 標(biāo)準(zhǔn)的dual-channel 接口MIPI 屏

 

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

 

 

雙路mipi拼接屏

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

我們選擇了兩個(gè)1080x1920分辨率的豎屏進(jìn)行拼接,使用VOP BIG進(jìn)行輸出。

PART2.實(shí)現(xiàn)步驟
 

軟件修改

① reset引腳時(shí)序控制

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

reset引腳控制時(shí)序

       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);

 

② 初始化序列

在設(shè)備樹(shù)中配置mipi屏的初始化序列,在dsi節(jié)點(diǎn)中配置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

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

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

 

③ 設(shè)置時(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>;

           };

       };

   };

};

設(shè)置完這些,單個(gè)屏幕就可以正常點(diǎn)亮顯示了,但這不是我們的目的,我們的目的是雙屏拼接。

 

dual-channel

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

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

&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";

};

修改完就可以點(diǎn)亮兩塊MIPI屏了,效果如下:

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

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

相關(guān)推薦

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

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