使用RK3399核心板CORE-3399-JD4,接口板是自制的,采用MIPI接口转LVDS,现在在3399的板子上装ubuntu18.04系统,在该系统上点亮LVDS屏幕。

1、首先安装Linux系统
        我安装的是ubuntu16.04的系统,具体安装步骤不再过多描述。

2、按照firefly的维基教程安装开发环境和ubuntu18.04的系统源码

ubuntu18.04源码环境及编译 维基教程

3、根文件系统

使用firefly官方提供的根文件系统,编译完成后总是有问题,于是下载了ubuntu18.04,2020年份的系统镜像,使用Android_Tool工具进行解包,将解包后其中的rootfs.img文件系统放到源码中进行编译,可以正常启动。

4、切换编译系统类型

我使用的是RK3399,aio-3399-jd4-lvds-ubuntu.mk,根据自己的型号选择相应的版本,在源码根目录输入

./build.sh aio-3399-jd4-lvds-ubuntu.mk

打开这个文件,可以看到里面的内容,kernel dts为 rk3399-firefly-aiojd4-lvds.dts

5、配置设备树

在内核设备树目录下打开该dts,/kernel/arch/arm64/boot/dts/rockchip

下图中红框标出的三个,为配置外设经常用到的3个配置文件

修改背光

&backlight {status = "okay";pwms = <&pwm1 0 25000 1>;//enable-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;default-brightness-level = <199>;polarity = <1>;brightness-levels = <199 198 197 196 195 194 193 192 191 190189 188 187 186 185 184 183 182 181 180179 178 177 176 175 174 173 172 171 170169 168 167 166 165 164 163 162 161 160159 158 157 156 155 154 153 152 151 150149 148 147 146 145 144 143 142 141 140139 138 137 136 135 134 133 132 131 130129 128 127 126 125 124 123 122 121 120119 118 117 116 115 114 113 112 111 110109 108 107 106 105 104 103 102 101 10099  98  97  96  95  94  93  92  91  9089  88  87  86  85  84  83  82  81  8079  78  77  76  75  74  73  72  71  7069  68  67  66  65  64  63  62  61  6059  58  57  56  55  54  53  52  51  5049  48  47  46  45  44  43  42  41  4039  38  37  36  35  34  33  32  31  3029  28  27  26  25  24  23  22  21  2019  18  17  16  15  14  13  12  11  109   8   7   6   5   4   3   2   1   0 >;
};

查询一下电路上背光是接到那个PWM上的,pwm0或者pwm1,配置为相应pwm。

设置default-level,即默认亮度。

设置brightness-level,即亮暗变化方向。

修改dsi配置,因为我在安卓上移植过液晶屏,所以屏参已经配置好了,这里我直接复制过来就行了。我使用的是天马的TM101JDHG30,具体屏的初始化序列,有一个文件可以配置,文件名称为:TC358764_5_774_5XBG_DSI-LVDS_Tv11p_nm 3399.xls,具体配置大家自行百度吧,时间长了我也记不太清楚了。

&dsi {status = "okay";rockchip,lane-rate = <800>;dsi_panel: panel {compatible ="simple-panel-dsi";reg = <0>;//ddc-i2c-bu//power-supply = <&vcc_lcd>;pinctrl-0 = <&lcd_panel_reset>;backlight = <&backlight>;//enable-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;reset-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;dsi,format = <MIPI_DSI_FMT_RGB888>;//dsi,format = <MIPI_DSI_FMT_RGB666>;//bus-format = <MEDIA_BUS_FMT_RGB666_1X18>;//bus-format = <MEDIA_BUS_FMT_RGB888_1X24>;dsi,lvds-force-clk = <800>; // 800/2/3 ~= 65Mhzdsi,lanes = <4>;dsi,channel = <0>;enable-delay-ms = <35>;prepare-delay-ms = <6>;unprepare-delay-ms = <0>;disable-delay-ms = <20>;size,width = <120>;size,height = <170>;status = "okay";panel-init-sequence = [29 00 06 3C 01 09 00 07 0029 00 06 14 01 06 00 00 0029 00 06 64 01 09 00 00 0029 00 06 68 01 09 00 00 0029 00 06 6C 01 09 00 00 0029 00 06 70 01 09 00 00 0029 00 06 34 01 1F 00 00 0029 00 06 10 02 1F 00 00 0029 00 06 04 01 01 00 00 0029 00 06 04 02 01 00 00 0029 00 06 50 04 21 01 E0 1529 00 06 54 04 04 00 04 0029 00 06 58 04 00 05 28 0029 00 06 5C 04 01 00 02 0029 00 06 60 04 20 03 28 0029 00 06 64 04 01 00 00 0029 10 06 A0 04 06 80 44 0029 00 06 A0 04 06 80 04 0029 00 06 04 05 04 00 00 0029 00 06 80 04 00 01 02 0329 00 06 84 04 04 07 05 0829 00 06 88 04 09 0A 0E 0F29 00 06 8C 04 0B 0C 0D 1029 00 06 90 04 16 17 11 1229 00 06 94 04 13 14 15 1B29 00 06 98 04 18 19 1A 0629 00 06 9C 04 31 04 00 00];panel-exit-sequence = [05 05 01 2805 78 01 10];power_ctr: power_ctr {rockchip,debug = <0>;lcd_rst: lcd-rst {gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;pinctrl-names = "default";pinctrl-0 = <&lcd_panel_reset>;rockchip,delay = <120>;};};disp_timings: display-timings {native-mode = <&timing0>;timing0: timing0 {        clock-frequency = <66866760>;hactive = <1280>;vactive = <800>;hsync-len = <10>;hback-porch = <2>;hfront-porch = <30>;vsync-len = <1>;vback-porch = <2>;vfront-porch = <40>;hsync-active = <0>;vsync-active = <0>;de-active = <0>;pixelclk-active = <0>;  };};};
};

下边为dsi配置的具体分析:

其中reset-gpios按照电路图引脚配置,要搜索一下是否有其他地方占用了这个IO资源,占用的屏蔽掉。

dsi,format输出格式,我的为RGB888。

dsi,lvds-force-clk,屏的频率,800MHz。

dsi,lanes,看电路图,用了几路线,填对应的数。

dsi,channel,看电路用了那个通道。

初始化序列,通过上边说的TC358764_5_774_5XBG_DSI-LVDS_Tv11p_nm 3399.xls生成对应的初始化序列。也可以跟厂家咨询初始化序列。

下边为屏的退出序列和时序配置。

clock-frequency为时钟频率,通过计算得出。

hactive为屏幕长,vactive为屏幕宽,和屏幕尺寸对应,剩下的为留边的长度宽度,如果屏幕有黑边或者少显示,则调整下边的这些参数即可。

修改vopl,vopb,如下图所示

hdmi使用的是vopl,那么dsi使用vopb,如图所示,hdmi_in_vopb为disabled,hdmi_in_vopl为okay,dsi_in_vopl为disabled,dsi_in_vopb为okay。各用一路。

配置好后,重新编译,烧录即可。

如果屏幕没有亮,则应检查以下几项:

1、reset引脚是否对,默认高低电平是否对,是否有其他地方配置该引脚。

2、屏幕初始化序列是否正确。

3、时序配置是否正确,根据屏幕参数进行配置。

4、vopl,vopb的配置是否正确,hdmi使用一路,dsi使用一路。

RK3399的linux系统,配置LVDS屏幕是可以使用的,如果不成功,则检查上述几项,基本就完事了。

遇到的问题:

1、升级后屏幕不亮,但是有背光,通过修改背光的默认值,背光有变化,说明dts的配置是没问题的,只是有某个地方没有配置对。

2、修改vopl,vopb配置后,HDMI无输出,说明配置的dts是正确的。

3、修改reset引脚后,屏幕出现白色,带有竖条纹,说明驱动有,可以使用,只是配置有问题。

4、搜索reset引脚,将其他dtsi中有用到该引脚的地方去掉后,液晶屏点亮。

RK3399核心板,装Ubuntu18.04系统,LVDS屏幕配置相关推荐

  1. 基于arm开发板在ubuntu18.04系统上编译vlc播放器

    前言 VLC 是一款自由.开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD.音频 CD.VCD 及各类流媒体协议.接下来将通过vlc源码进行编译 环境 arm64开发硬件 ubun ...

  2. 基于RK3399第一篇烧录Ubuntu18.04系统并实现PuTTy远程登录

    文章目录 一.简介 二.下载系统文件 三.烧写到SD卡 四.烧录系统到rk3399 五.putty远程操作 一.简介 我们拿到NanoP

  3. 惠普主板笔记本Win10系统装Ubuntu18.04.6的过程

    惠普主板笔记本Win10系统装Ubuntu18.04.6的过程 一.准备工作 二.开始安装 一.准备工作 1.先安装一个软碟通的软件,下载安装系统的ubuntu-18.04.6-desktop-amd ...

  4. 启明云端分享| 采用 B to B设计的RK3399核心板来了,邮票孔,支持4K、H.265 硬解码;核心板内置 EDP、MIPI-DSI、HDMI、DP 显示接口,带有 2 路 MIPI-CSI

    RK3399核心板(邮票孔)–IDO-SOM3909 提示:启明云端旗下触觉智能 采用 B to B设计的RK3399核心板来了,邮票孔,支持4K.H.265 硬解码:核心板内置 EDP.MIPI-D ...

  5. 基于30系显卡以及Ubuntu18.04系统的YOLOv3环境搭建和训练模型以及测试

    基于30系显卡以及Ubuntu18.04系统的YOLOv3环境搭建和训练模型以及测试 安装环境 下面是官网对N卡框架以及驱动和cuda版本的部分对应关系 驱动 (可以跳过这段安装,你可以在安装CUDA ...

  6. 源码编译Ros, Ubuntu18.04系统使用源码编译Ros1,出错集合及其解决办法

    官方的介绍http://wiki.ros.org/kinetic/Installation中提到了,脚本安装的方法it is available for Ubuntu Wily (15.10) and ...

  7. Ubuntu18.04系统中python3.7安装MultiNEAT库

    Ubuntu18.04系统中python3.7安装MultiNEAT库 前言 MultiNEAT介绍 安装问题 boost安装 MultiNEAT安装 安装过程遇到问题及解决方法 前言 MultiNE ...

  8. ubuntu18.04系统中 matlab2019 和 sougou拼音冲突

    ubuntu18.04 系统中 matlab2019 和 sogou拼音冲突 问题描述 只要是 matlab2019 和 sogou拼音 这俩东西在一起,我的matlab 就出问题,启动起来了之后也是 ...

  9. 【Ubuntu18.04系统开启防火墙】

    [Ubuntu18.04系统开启防火墙] 1 查看防火墙状态 2 开启防火墙 3 关闭防火墙 4 允许开启防火墙时,ssh连接和22端口许可 4.1 允许tcp 22端口通过防火墙 4.2 允许SSH ...

最新文章

  1. 查询选修c语言课程的学生学号和姓名,数据库实验(学生信息表)
  2. JAVA不可变List的实现
  3. gradle idea java ssm_应用框架:IDEA+Gradle创建MyBatis+SpringMVC项目
  4. 在Eclipse中进行HotSpot的源码调试--转
  5. opengl加载显示3D模型Q3O类型文件
  6. 【模板】AC自动机(加强版)
  7. Android官方开发文档Training系列课程中文版:分享简单数据之发送简单数据给其它APP
  8. Repeater内部排序
  9. 马斯克发全员信 呼吁员工6月底全力以赴
  10. oracle批量更新数据从另一表_【案例】Oracle t-sql 更新大批量数据 更新两张大数据表案例...
  11. 用javascript操作xml
  12. java 图片压缩100k_Java 图片压缩至指定大小
  13. 项目开发中dev、test和prod是什么意思
  14. 人工智能工程化丨中小企业AI中台落地指南
  15. oracle imp 多用户,用imp把一个用户的架构下的数据导入到另一个用户下的问题
  16. MTK DDR进行ETT之后的压力---测试环境的搭建
  17. python表情包多样化图形化聊天室_Python还有这功能:自动生成表情包,从此斗图无敌手!...
  18. 后序线索化二叉树及遍历(图解)
  19. asc18_hpl,hpc,hpcg
  20. LumaQQ学习记录

热门文章

  1. 第16章 Linux的常用服务搭建
  2. 达梦数据库DM8--学习笔记(麒麟v10+dm8)
  3. linux mysql 修改表名_Linux下mysql怎么设置表名?
  4. python恶搞表情包下载大全_Python:恶搞,将你朋友照片做成熊猫人表情包
  5. java服务器登录系统,JavaWeb入门登陆注册系统
  6. QMS-云质-质量管理软件-供应链质量管理
  7. iWisoft Free Video Converter-免费全能视频转换器
  8. swiper一个页面多个轮播
  9. 简易理解设计模式之:装饰模式——穿衣服经典案例
  10. sigma-delta数字滤波器的设计(1) — 原理与前端设计