Firefly开源社区
标题: 【驱动入门】 FirePrime_rgb888_lcd_投影仪_光机 [打印本页]
作者: 54zw 时间: 2016-6-13 19:42
标题: 【驱动入门】 FirePrime_rgb888_lcd_投影仪_光机
本帖最后由 54zw 于 2016-6-13 20:14 编辑
Fireprime外接RGB888投影仪(光机: opd01m)原理和外接LCD是一样的
1.先看下硬件框图,LCD控制器引出的信号如下:
需要将LCD_D0~LCD_D23这24根管脚配置成LCD数据信号脚
如下图所示:
再加上LCD到行列同步信号:
LCD_DEN,LCD_CLK, LCD_VSYNC, LCD_HSYNC
下面是光机到接口,红绿蓝分别是LCD_D0~LCD_D23,外加4个控制信号:
2.在软件上要这些管脚配置成相应到功能脚,且是在LCD控制器的DeviceTree中描述
下面看下LCD控制器在DeviceTree中的描述:
先来看下DeviceTree里LCD控制器的描述:
lcdc:lcdc@1010e000 {
compatible= "rockchip,rk312x-lcdc";
rockchip,prop= <PRMRY>;
reg= <0x1010e000 0x1000>;
interrupts= <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names= "default";
pinctrl-0= <&lcdc0_lcdc>;
clocks= <&clk_gates6 0>, <&dclk_lcdc0>, <&clk_gates61>, <&sclk_lcdc0>, <&pd_vop>, <&clk_cpll>;
clock-names= "aclk_lcdc", "dclk_lcdc", "hclk_lcdc","sclk_lcdc", "pd_lcdc", "sclk_pll";
rockchip,iommu-enabled= <1>;
status= "disabled";
};
看到 pinctrl-0= <&lcdc0_lcdc> 这里就是配置LCD控制器上管脚到地方
lcdc0_lcdc:lcdc0-lcdc{
rockchip,pins=
<LCDC0_DCLK>,
<LCDC0_DEN>,
<LCDC0_HSYNC>,
<LCDC0_VSYNC>;
rockchip,pull= <VALUE_PULL_DISABLE>;
};
可以很明确到看到这里将上面提到到4个控制信号配置成了相应的功能管脚
但是没有看到配置LCD_D0~LCD_D23?
这里解释下:我没有找到RK3128关于所有PIN脚MUX的配置文档,这样的文档在其他平台上都是会有很详细到说明的,所以我对各PIN脚MUX的信息都是通过看代码知道的,在内核中rockchip-rk312x.h这个文件里用宏来描述,但是未发现有LCD_D0~LCD_D9到描述,所以猜测很可能这24根PIN脚初始的功能就是LCD信号,所以只要不MUX成其他功能就可以正常使用。
3.根据光机芯片手册得到光机需要到LCD时序,根据这个时序来配置LCD控制器让其输出符合的时序:
光机需要的时序如下图:
根据这个时序配置,可以写出下面到时序描述文件OPD01M.dtsi
/{
disp_timings:display-timings {
native-mode= <&timing0>;
timing0:timing0 {
screen-type= <SCREEN_RGB>;
out-face = <OUT_P888>;
clock-frequency= <30240000>;
hactive= <854>;
vactive= <480>;
hback-porch= <40>;
hfront-porch= <50>;
vback-porch= <12>;
vfront-porch= <30>;
hsync-len= <16>;
vsync-len= <3>;
hsync-active= <1>;//active low
vsync-active= <1>;//active low
de-active= <0>;//active high
pixelclk-active= <1>;//active low
swap-rb= <0>;
swap-rg= <0>;
swap-gb= <0>;
};
};
};
4.如何使用这个新添加到时序
在rk3128-fireprime.dts中include上面这个dtsi
#include"OPD01M.dtsi"
引用disp_timings这个节点即可
注意:
1.由于LCD信号和以太网信号复用,所以需要去掉对以太网管脚的配置
2.另外代码中有些摄像头驱动也会复用到LCD信号,需要去掉,否则无法正常显示
作者: ljj3166 时间: 2016-6-19 10:57
谢谢分享
很好的经验
作者: gyj82117 时间: 2016-6-27 18:14
支持一个
作者: zzyzjdy 时间: 2016-6-29 09:58
dqfqfqf
作者: stanleyfang 时间: 2016-7-14 11:10
谢谢楼主
作者: qinchwuhuai 时间: 2016-7-19 20:04
很厉害啊,将的这么细,谢谢你
作者: williamxu 时间: 2016-8-22 17:20
不错,楼主能够分享经验,难能可贵。
作者: csworld 时间: 2016-11-8 09:51
多谢楼主分享经验,mark
作者: buzaiyouyu001 时间: 2016-11-8 15:37

作者: carter123456 时间: 2017-4-10 10:32
正在找这方面的资料 谢谢楼主分享 谢谢
作者: carter123456 时间: 2017-5-15 16:40
你好 请问你用RK做过投影吗 RK 3D投影改怎么实现呢 谢谢
作者: dianziit 时间: 2017-5-15 23:01
很厉害啊,将的这么细,谢谢你
作者: 54zw 时间: 2017-5-16 23:56
3D投影没接触过,你有相应的设备吗?可以考虑帮你调试下
作者: carter123456 时间: 2017-5-17 08:57
有相应的设备
作者: 54zw 时间: 2017-5-18 10:01
我在深圳,群里相同logo的qq就是我,有需要联系我
作者: xiawenyu 时间: 2017-5-21 15:38
楼主,加个QQ:381555652 我们公司也在用RK3128 RGB做显示,可以谈谈合作
作者: xiawenyu 时间: 2017-5-21 15:40
我们公司也在深圳,可以谈谈合作。381555652
作者: ian700518 时间: 2017-5-25 11:26
也是用RGB的屏,谢谢楼主分享~
作者: flowerking 时间: 2017-9-6 12:08
我现在正在接RGB的屏幕,折腾了几天,总是点不亮,请问怎么全部屏蔽网络的复用?
作者: mango 时间: 2017-9-14 21:55
楼主好,希望可以把搂主位的图补一下,挂了。谢谢了
作者: 54zw 时间: 2017-9-28 23:05
本帖最后由 54zw 于 2017-9-28 23:06 编辑
作者: 54zw 时间: 2017-9-28 23:06
哪张图片无法显示?我这里看都是正常的啊
作者: 卢晓雪 时间: 2019-9-27 11:44
很有用
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) |
Powered by Discuz! X3.1 |