RK3399 雙路mipi拼接屏+HDMI 三屏顯示

原創 2021-03-30 15:37:00 RK3399 雙路mipi拼接屏 HDMI 三屏顯示


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可以支持雙通道mipi,借用這個特性,我們才能進行拼接。
我們選擇了兩個1080x1920分辨率的豎屏進行拼接,使用VOP BIG進行輸出。

軟件修改

reset引腳時序控制


根據手冊提供的示意圖可知,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節點中配置panel-init-sequence數組序列

&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個字節屬于命令格式,后面“B9 FF 83 99”才是要傳輸的指令。
B9是要寫入的命令,“FF 83 99”是該命令后面的3個參數。

設置時鐘參數

&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節點,配置“rockchip,dual-channel”、“dsi,lanes”屬性。
將horizontal方向上的顯示參數增加一倍,并將時鐘頻率調高一倍。

&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,顯示效果如下:

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


相關產品 >

  • FET3399-C核心板

    飛凌RK3399安卓高性能核心板采用 采用六核Rockchip RK3399芯片,雙Cortex-A72大核+四Cortex-A53小核結構,對整數、浮點、內存等作了大幅優化,在整體性能、功耗及核心面積三個方面提升。以下將對瑞芯微芯片RK3399參數,RK3399核心板方案及其性能做具體介紹。如您對飛凌RK3399系列核心板有興趣,歡迎咨詢了解。

    了解詳情
    FET3399-C核心板
  • OK3399-C開發板

    飛凌嵌入式RK3399安卓開發板主芯片采用高性能六核CPU Rockchip RK3399,GPU采用Mail-T860四核 GPU,RK3399作為目RK產品線中低功耗、高性能的代表,可滿足人臉識別設備、機器人、無人機、IoT物聯網領域應用。飛凌RK3399開發板在整體性能、功耗及核心面積做了大幅度優化,更加滿足工業設計需求。飛凌RK3399開發板為進一步減少用戶二次開發難度,開放了底板原理圖,并提供了RK3399用戶手冊、芯片手冊,加上優質的技術服務,讓您的方案從構思到上市時間縮短。

    了解詳情
    OK3399-C開發板

推薦閱讀 換一批 換一批