查看: 1610|回復: 0
打印 上一主題 下一主題

http://club.digiic.com/Forum/PostDetail/p-36693.html

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2021-6-15 17:18:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: 飛凌嵌入式
[color=rgba(0, 0, 0, 0.75)]VOP
[color=rgba(0, 0, 0, 0.75)]

Rockchip 平臺的L[color=inherit !important]CD Controller 稱(chēng)為VOP(Video Output Processor),[color=inherit !important]芯片中一般集成1~2 個(gè)VOP。只有支持兩個(gè)VOP 的芯片,才能支持雙屏異顯。
[color=inherit !important]RK3399
有兩個(gè)VOP,分別為VOPB(4096x2160),VOPL(2560x1600),所以對于分辨率大于2560x1600 的應用,只能選擇VOPB 作為輸入。


[color=rgba(0, 0, 0, 0.75)]MIPI-DSI
[color=rgba(0, 0, 0, 0.75)]

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

2) Dual-channel (RK3288/RK3399)
① 標準的dual-channel 接口MIPI 屏;

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


[color=rgba(0, 0, 0, 0.75)]雙路mipi拼接屏
[color=rgba(0, 0, 0, 0.75)]

之所以可以做成雙路mipi拼接顯示,究其原因是RK3399的vop可以支持雙通道mipi,借用這個(gè)特性,我們才能進(jìn)行拼接。
我們選擇了兩個(gè)1080x1920分辨率的豎屏進(jìn)行拼接,使用VOP BIG進(jìn)行輸出。


[color=rgba(0, 0, 0, 0.75)]軟件修改
[color=rgba(0, 0, 0, 0.75)]reset[color=inherit !important]引腳時(shí)序控制
[color=rgba(0, 0, 0, 0.75)]


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


[color=rgba(0, 0, 0, 0.75)]

reset引腳控制時(shí)序


[color=rgba(0, 0, 0, 0.75)]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);
[color=rgba(0, 0, 0, 0.75)]初始化序列
[color=rgba(0, 0, 0, 0.75)]

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


[color=rgba(0, 0, 0, 0.75)]&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                ];        };};
[color=rgba(0, 0, 0, 0.75)]

[color=inherit !important]命令解析:


[color=rgba(0, 0, 0, 0.75)]39 10 04 B9 FF 83 99Data [color=inherit !important]Type:0x39 (DCS Long Write)Delay:0x10 (16 ms)Payload Length:0x04 (4 Bytes)Payload:0xB9 0xFF 0x83 0x99
[color=rgba(0, 0, 0, 0.75)]

進(jìn)一步分析,該命令前3個(gè)字節屬于命令格式,后面“B9 FF 83 99”才是要傳輸的指令。
B9是要寫(xiě)入的命令,“FF 83 99”是該命令后面的3個(gè)參數。


[color=rgba(0, 0, 0, 0.75)]設置[color=inherit !important]時(shí)鐘參數
[color=rgba(0, 0, 0, 0.75)]&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>;                        };                };        };};
[color=rgba(0, 0, 0, 0.75)]

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


[color=rgba(0, 0, 0, 0.75)]dual-channel
[color=rgba(0, 0, 0, 0.75)]

使能dsi1節點(diǎn),配置“rockchip,dual-channel”、“dsi,lanes”屬性。
將horizontal方向上的顯示參數增加一倍,并將時(shí)鐘頻率調高一倍。


[color=rgba(0, 0, 0, 0.75)]&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";};
[color=rgba(0, 0, 0, 0.75)]

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


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

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

原文鏈接:https://www.forlinx.com/article_view_687.html



您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页