mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖 1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析

这篇具有很好参考价值的文章主要介绍了mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖 1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ps:创业开发产品,自学笔记,不一定适合教材性的阅读,零碎整理,自我总结用

材料:4.1寸lcd屏两块,屏自带触控,屏幕资料具备,rk3399和MK8788开发版上分别开发。

开发环境:

1】rk3399

  •       ​​​​​​​
    • 开发板:友善的rk3399v2开发版,资料链接
    • 处理器:RK3399
    • 内核:
    • 编译工具:
    • LCD:4.1‘’ LCD屏幕
    • 参考文献 

        ​​​​​​​        ​​​​​​​LCD驱动程序详细讲解(一)_weixin_33935505的博客-CSDN博客

        ​​​​​​​        LCD驱动详解 - Lilto - 博客园 (cnblogs.com)

        ​​​​​​​        主题:s3c2440移植linux-3.4.2中的LCD驱动_大白菜的博客-CSDN博客

        ​​​​​​​       【第2期】韦东山嵌入式Linux之第2期_驱动大全 (100ask.net)​​​​​​​

2】Mk8788

  • 开发板:自购mk8788 ,具备开发板接口讲解资料、源码

产品规格书:仿照此页面采用联发科I500P(MT8788)芯片方案的4G全网通安卓10平板电脑 | ScenSmart一站式智能制造平台|OEM|ODM|行业方案

一、搭建ubuntu

 ps:人傻毛病多,自己给自己制造问题,数之不尽问题,自己慢慢解决吧,主要是真的很琐碎

硬件:

        多台电脑、不同系统电脑

        下载好ubuntu的桌面版和服务器版(相信未来可以驾驭它),

1、windows环境搭建虚拟机

windows中使用微软的那个啥啥来着,创建实例不会,还没搜索找资料

windows中使用ubuntu官网中的虚拟机感觉很难用

windows中不想使用那个啥啥流行的虚拟机

2、mac m2和m1 mimi搭建

1】下载了paralleres虚拟机,只有试用14天,对此就直接很不想用了,先学linux命令,学会买

2】mac的性能感觉真的很强,编译在虚拟机中可能会很强,然后装个ubuntu的主机去移植吧,主要是写帖子时候目前还到不了移植测试步骤

3、单独设备安装ubuntu系统

二、配置ubuntu

1】开启ssh

2】开启wiff、固定ip

3】更换国内源

4】安装输入法

5】linux 更新命令、安装工具来一遍

三、了解rk3399和mk8788的开发、编译等教程

四、解读lcd屏幕资料

ps:英文很差,基本一字一句的翻译理解,电气术语翻译还会有不通顺处。

五、下载安卓源码、rk3399v2源码和mk8788源码

复制

解压

移动

创建文件

六、.mk文件理解

七、源码文件目录用途

八、移植工具和移植教程

九、刷机相关学习

十、mipi接口的学习

用途:相机和屏幕,接口定义一致时,不知硬件上是否可以调换,然后代码控制?

mipi data是成对的差分信号,屏幕一般为2mipi和4mipi,区别在哪?

博主要开发的屏幕资料中有说明可以选择几路mipi,区别在哪?

对于相机传感器:同一颗sensor【传感器】由于register setting【寄存器/注册设置】不同,输出的信号有可能是2 lane或者4lane等

对于屏幕:lcd drive ic的寄存器?或者ic支持最大4lu,但具体要看Lcd屏的排线实现原理?待定未知

知识点1 

        MIPI_RDN和MIPI_RDP,有几对这样的pin脚就代表有*路mipi通道

第一路 MIPI_RDN0
MIPI_RDP0
第二路 MIPI_RDN1
MIPI_RDP1
第三路 MIPI_RDN2
MIPI_RDP2
第四路 MIPI_RDN3
MIPI_RDP3

 知识点二 时钟

        MIPI_RCN和MIPI_RCP:时钟信号

RCN
RCP
CMMCLK 时钟引脚

   

     用法:

知识点三 I2C接口

SCL、SDA十I2C接口

SCL
DA

                用法:

mipi接口 参考文:

1⃣️此文作者笔风可爱,所以排第一

【Camera专题】你应该了解的Camera HW-硬件知识_c枫_撸码的日子的博客-CSDN博客_mipi2lane和4lane​​​​​​​ppi

2⃣️专业度高,直接飙代码

        Android Camera驱动分析_Mr.How的博客-CSDN博客_查看当前安卓相机驱动

屏幕mipi接口

mipi接口原理

rgb lcd屏幕和MCU-LCD区别

(转)RGB接口和i80接口的区别

        此链接中很多专业解释的片段,建议大量阅读!

        重点1:MCU-LCD屏它与RGB-LCD屏主要区别在于显存的位置.RGB-LCD的显存是由系统内存充当的,因此其大小只受限于系统内存的大小,这样 RGB-LCD可以做出较大尺寸,像4.3"只能算入门级,而MID中7",10"的屏都开始大量使用.

        而MCU-LCD的设计之初只要考虑单片机的 内存较小,因此都是把显存内置在LCD模块内部.然后软件通过专门显示命令来更新显存,因此MCU屏往往不能做得很大.同时显示更新速度也比RGB- LCD慢

        重点2:RGB显示速度明显比MCU快是因为。。。

mipi和lvds区别

液晶屏MIPI接口与LVDS接口区别(总结)

十一、mk8788开发文章

1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析

MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析_Jimmy8618的博客-CSDN博客_vtouch-supply

摘录: 

/* TOUCH start */
&touch {
    tpd-resolution = <800 1280>;//分辨率
    use-tpd-button = <0>;//如果TP有待按键。则定义值为1
    tpd-key-num = <3>;//按键的数量
    tpd-key-local= <139 172 158 0>;//按键的编码,一般为KEY_MENU,KEY_HOMEPAGE,KEY_BACK的键值
    tpd-key-dim-local = <90 883 100 40 230 883 100 40 370 883 100 40 0 0 0 0>;//按键的布局信息,包含按键的宽度,高度,中心点的坐标
    tpd-max-touch-num = <5>;//支持的最大触摸点数
 goodix_touch@5e {
                compatible = "mediatek,goodix_touch"; //用于匹配GT9xx这个TP驱动
                
                reg = <0x5e>;//GT9xx I2c的地址
                interrupt-parent = <&pio>; //中断脚
                interrupts = <1 IRQ_TYPE_EDGE_RISING 1 0>;//中断模式是上升沿触发
                //vtouch-supply = <&mt_pmic_vldo28_ldo_reg>; //原生MTK节点TP 2.8V PMIC供电
                reg-tp-supply = <&mt_pmic_vldo28_ldo_reg>; //由于我们代码上修改了TP 2.8V PMIC供电节点获取是以reg-tp-supply这个字符获取的原生的是由vtouch-supply这个获取的
                rst-gpio = <&pio 158 0>;//TP的复位引脚
                int-gpio = <&pio 1 0>;//TP的中断引脚

2、

MTK8788[android 9.0]调试笔记 MIPI屏驱动移植_sdkdlwk的博客-CSDN博客

原生MTK LCM屏添加的路径在\vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm*

多个屏驱动兼容。。。。

3、显示驱动,源码文件位置

mt8788_android9.0_lcd(lt8912b_mipi2lvds)_1024_768-Android文档类资源-CSDN下载

4、背光调节

mtk8788 pwm频率及背光亮度调节_阿闷的博客-CSDN博客_pwm背光调节

5、小平米调整系统字体

mtk8788 android 9.0 加大系统字体和图标_cerzong的博客-CSDN博客

摘要:由于屏幕(320*320)太小了,客户提个需求希望将APP图标跟系统字体加大,APP图标加大实际就是增大屏幕密度

6、LCD-TFT

LCD 液晶屏驱动详解_屏幕驱动_LTracer的博客-CSDN博客

LCD种类、电路连接及显示原理

LCD,即液晶显示器,是一种采用了液晶控制透光技术来实现色彩的显示器。LCD有很多种类型,比如STN、TFT、LTPS、OLED等。各有优缺点。TFT类型液晶显示器是目前最为主流的液晶显示器。

  • TFT-LCD的数据传输方式有2种:

    单扫:对于一整屏的数据,从上到下,从左到右,一个一个地发送出来。

    双扫:将一整屏的数据分为上下两部分,同时的从上到下,从左到右,一个一个的发送出来。

区别在哪里?对硬件要求区别?

  • LCD的信号种类:

信号名称 描述
VSYNC 垂直同步信号
HSYNC 水平同步信号
VD[23:0] 数据信号
HCLK 时钟信号
LEND 行结束信号
PWREN 电源开关信号
  • 借鉴其他电路模块图

mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖
1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析

  • LCD控制器原理图

mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖
1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析

  • 显示原理

除了配置一些寄存器告诉LCD控制器图像中像素的格式(RGB565),frameBuffer的首地址之类外,对于TFT LCD的访问还需要用到一些信号,所以需要通过配置寄存器来告诉LCD控制器这些信号的信息(比如何时发出控制信号,发出信号的持续时间等),

        举个例子:

向LCD驱动器发送图片数据时需要时钟控制(VCLK),一个时钟发送一个像素点,那么控制器就需要主动发出时钟信号,这个时钟是由哪个引脚发出的,发出的频率是多少,这个都是要配置寄存器的, 

        通过时序图来分析需要用到的一些信号以及如何去配置它们,如果是第一次了解LCD控制,直接看时序还是比较困难的,所以先给出一个形象的比喻 :

mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖
1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析

        frame buffer: 显存,用于存放LCD显示数据;frame buffer通过LCD控制器和LCD Panel建立一一映射关系;

        LCD控制器: 参考LCD用户手册,配置LCD控制器,用于发出LCD控制信号,驱动LCD显示;

        扫描方式: 如图所示,由start到end的扫描方向是:从左到右,从上到下(扫描方向的一种);

        HSYNC: 行同步信号,用于行切换,一行扫描结束,需要扫描新行时,需要先发送行同步信号;

        VSYNC: 列同步信号,用于列切换,一帧扫描结束,需要扫描新的一帧时,需要先发送列同步信号;

        时钟信号: 每来一个时钟,扫描的点移位一;

        上图中LD驱动器可以比喻成电子枪,LCD控制器就是控制这个电子枪的,它从显示缓存中拿像素数据传给电子枪并发送命令让电子枪发射像素颜色, 上图中,成像过程

  1. LCD控制器发出VSYNC信号,告诉电子枪,要发出一张新帧了,然后电子枪把枪头调转到LCD屏幕的左上角准备开始发射像素
  2. 发出VSYNC信号的同时,发出HSYNC信号(告诉电子枪新行开始, 从左向右动发射子弹吧)但是电子枪毕竟反应比较慢,过了少许开始发射子弹
    对于上面两个过程,由于电子枪接受了VSYNC信号,调转枪头后,需要反应一段时间才能正常开始工作, 所以就白白扫射了几行的无效数据,相当于经过了几个HSYNC信号周期的时间, 一个HSYNC周期就是电子枪扫射一行的时间(从HSYNC信号开始扫射第一行直到到一行结束扫射结束所用时间),就出现了上方无效区
  3. 当第一行结束时,LCD控制器又发出HSYNC信号, 电子枪枪头扭转到下一行新行开始发射数据, 但是枪头扭转的比较慢, 所以出现了左右的无效区(即第一行结束后,电子枪由于硬件原因要反应一段时间, 所以在右边出现了无效数据区, 调转枪头后, 也得反应一段时间开始发射子弹,所以出现了左边的无效区),有人会问电子枪如何知道第一行何时结束(其实是我们通过寄存器告诉LCD控制器第一行有多少个数据的,我们的屏幕分辨率是480*272, 即这个信息会设置到寄存器里), 当一行结束时,LCD控制器就不会再发有效像素数据,并且等待电子枪游离一段时间,之后再发下一行的HSYNC信号.
  4. loop第三个过程
  5. 当扫描到最后一行结束时(一帧即将结束),LCD控制器就不会再发有效像素数据,并且等待电子枪游离一段时间,所以会继续往下扫描,出现了下方的无效区, 之后再发下一行的VSYNC信号, 之后回到过程1开始重复。

在工作中的显示器上,可以在四周看见黑色的边框。上方的黑框是因为当发出VSYNC信号时,需要经过若干行之后第一行数据才有效;下方的黑框是因为显示完所有行的数据时,显示器还没有扫描到最下边(VSYNC信号还没有发出),这时数据是无效的;左边的黑框是因为当发出HSYNC信号时,需要经过若干像素之后第一列数据才有效;右边的黑框是因为显示完一行数据时,显示器还没扫描到最右边(HSYNC信号还没有发出),这时数据已经无效。显示器只会依据VSYNC、HSYNC信号来取得、显示数据,并不理会该数据是否有效,何时发出有效的数据由显卡或LCD控制器决定。

VSYNC信号出现的频率表示一秒钟内能显示多少帧图像,称为垂直频率或场频率,这就是我们常说的“显示器频率”;

HSYNC信号出现的频率称为水平频率,表示一秒钟能显示多少个像素的数据。
显示器上,一帧数据的存放位置与VSYNC、HSYNC信号的关系如下图所示:

mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖
1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析

image-20210718155614982

有效数据的行数、列数,即分辨率,它与VSYNC、HSYNC信号之间的距离等,都是可以设置的,文章来源地址https://www.toymoban.com/news/detail-403910.html

到了这里,关于mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖 1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之LCD上电初始化时序

    mipi屏调试一般都要在RK平台的dts中配置屏幕上电初始化时序 :panel-init-sequence和下电初始化时序:panel-exit-sequence。本文讲解如何配置屏幕的这些初始化时序。 注意:这里的parameter并不是指数据字节个数 0x05 命令类型:(DCS Short Write, no parameters) 0x15 命令类型:(DCS Short Write, 1 p

    2024年02月12日
    浏览(25)
  • FPGA学习笔记03——RGB LCD显示屏

    LCD屏与FPGA芯片接口如下,其中LCD_R0—R7,G0—G7,B0—B7为RGB888信号, LCD_BL:背光板使能,为高时背光板才亮 LCD_DE:RGB数据使能,为高时RGB数据有效 LCD_VSYNC:竖直(列)扫描有效 LCD_HSYNC:水平(行)扫描有效 LCD_CLK:显示器时钟 //在控制RGB LCD屏时,即可使用DE使能,也能用VSY

    2024年02月03日
    浏览(18)
  • 痞子衡嵌入式:在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤(MIPI DSI接口)

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是 在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤 。 我们知道 LCD 屏的接口有很多:DPI-RGB、MIPI DSI、DBI/MCU(I8080)、LVDS、SPI 等等,接口不同,对应的软件驱动也不同。RT1170 片内外设对以上接口都能很好

    2024年02月03日
    浏览(18)
  • 高通平台&MTK平台驱动开发流程

    高通(Qualcomm)是全球领先的无线通信技术解决方案提供商,尤其在移动通信领域有深远的影响。高通的Snapdragon系列处理器广泛应用于智能手机、平板电脑、智能手表等多种设备中。Snapdragon处理器以其优异的性能、高效的能耗比以及强大的图形和视频处理能力而著称。高通平

    2024年04月13日
    浏览(19)
  • rk3568驱动开发之mipi屏

    屏是嵌入式驱动开发中常见的设备,一般的带屏项目中最开始要调试的,简单记录一下自己在项目开发中的经验过程。所用平台是rockchip的rk3568,android11。 硬件原理图主要看接的是哪个mipi接口,屏的电源控制io,背光控制io,这些需要在设备树中配置的要仔细核对。 PS:以上

    2024年02月12日
    浏览(13)
  • FPGA驱动SPI接口的LCD(三)——LCD的初始化

    LCD初始化函数 void LCD_Init(void);  首先是LCD的复位 void LCD_RESET(void) {     LCD_RST_CLR;        //拉低复位引脚     Delay_Ms(100);        //延时100ms         LCD_RST_SET;        //拉高复位引脚     Delay_Ms(50);        //延时50ms } 向LCD屏幕写入一个8位命令 void LCD_WR_REG(u8 data) {     

    2024年02月01日
    浏览(22)
  • RK系列(RK3568) MIPI屏适配 PWM背光 驱动开发

    平台:Android12 SOC:RK3568 一般拿到MIPI屏 厂家会给一个跑的配置文件  例如我的: 那么可以配置设备树 由于我接的是DSI0 backlight = backlight; 设置背光

    2024年02月07日
    浏览(17)
  • STM32 FSMC接口驱动4.3寸TFT LCD屏

    STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏。 这里以STM32F103VET6开发板连接4.3寸TFT LCD屏,将正点原子的参考代码,移植到STM32CUBEIDE开发环境,实现TFT LCD屏的显示。 TFT LCD模块的管脚连接: 其中: LCD_CS是总线片选, WR/CLK是写使

    2024年02月10日
    浏览(23)
  • <Linux开发>驱动开发 -之- Linux LCD 驱动

    <Linux开发>驱动开发 -之- Linux LCD 驱动 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分) <Linux开发> -之-系统移植 uboot移植过程详细记录(第二部分) <Linux开发>

    2024年02月06日
    浏览(22)
  • rk3568点亮LCD(mipi)

    MIPI (Mobile Industry Processor Interface) 是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟,目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性。MIPI设备接口分为两种:摄像头接口CSI(Camera Serial Interface)和显示接

    2023年04月09日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包