RGB_LCD简介

文章目录

  • 前言
  • 一、LCD原理
    • 1、构造
    • 2、分辨率
    • 3、像素格式
    • 4、LCD接口
    • 5、ATK-7016 的屏幕接口原理图
  • 二、LCD时序
    • 1、时间参数
    • 2、行场时序
      • 1、行显示时序:
      • 2、场显示时序:
      • 3、数据同步模式
      • 4、像素时钟
  • 三、总结
  • 四、参考资料


前言

LCD (Liquid Crystal Display)是一种液晶显示屏,它采用 薄膜晶体管(TFT) 技术提升图像质量,如提高图像亮度和对比度等。他显示的每个像素点由液晶后面的薄膜晶体管独立驱动,所以具有较高的响应速度以及图像质量。相比于传统的 CRT 显示器(老式大屁股),LCD 有着轻薄、功耗低、无辐射、图像质量好等诸多优点,因此广泛应用于电视机、电脑显示器、手机等各种显示设备中。


一、LCD原理

1、构造

在这里插入图片描述

lcd在两片平行的玻璃基板中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上会设置彩色滤光片,通过TFT上的信号于电压改变来控制液晶分子的转动方向,去控制每个像素点的偏振光是否出射来判断是否达到目标。额,介绍了一堆废话,听不懂,没事知道怎么用就行。

2、分辨率

对于LCD我们可以联想到720p、1080p等,这个就是指的分辨率。对于LCD,其显示器均由一个一个的像素点组成,每个像素点就类似一个灯,这个小灯是RGB灯,由R、G、B三基色构成。

  • 1080p(1920*1080):
    在这里插入图片描述

对于上图,一共有1920*1080=2073600,A点为第一个像素点,右下角的C点为最后一个像素点。在LCD尺寸不变的情况下,分辨率越高,像素点越多越清晰,在同一分辨率下,尺寸越小则越清晰。分辨率只是衡量LCD的一个参数之一,还有色彩还原度、色彩偏离、亮度、可视角度、屏幕刷新率等。

3、像素格式

一个像素由三个基色组成,一般来说一个基色占有8bit,那么就是24bit,三个字节,这种像素格式叫做RGB888,一般平均分配,看下图:
在这里插入图片描述
此外还有一种是RGB565,顾名思义,就是分别占5、6、5位,这种像素格式就是我们后面需要用得到的:
在这里插入图片描述

  • 如何提取我们需要的图色:
    在这里插入图片描述

打开我们的画图软件即可知晓该颜色的RGB分布。

4、LCD接口

一般显示器的接口有多种,常见有我们前面学习的HDMI接口、DP、VGA等,我们的RGB_LCD接口如下图:

信号线描述
R[7:0]8根红色数据线
G[7:0]8根绿色数据线
B[7:0]8根蓝色数据线
DE数据使能线
VSYNC垂直同步信号线
HSYNC水平同步信号线
PCLK像素时钟信号线

需要注意的是,这是我们LCD屏幕的数据格式,我的板子上的接口位RGB565格式,需要注意位宽的选择:

即开拓者的 R4~R0,对应 LCD 屏的 R7~R3;开拓者的 G5~R0,对应 LCD 屏的 G7~R2;开拓者的 B4~B0,对应 LCD 屏的 B7~ B3;

5、ATK-7016 的屏幕接口原理图

在这里插入图片描述

该接口十分完善,采用 RGB888 格式,并支持触摸屏和背光控制。右
侧的几个电阻,并不是都焊接的,而是可以用户自己选择。默认情况,R1 和 R6 焊接,设置 LCD_LR 和LCD_UD,控制 LCD 的扫描方向,是从左到右,从上到下(横屏看)。

  • 需要注意的是LCD_R7/G7/B7是双向端口,既可以是像素数据的输出,也可以是输入LCD_id,用于选择我们对应的分辨率、行场信号等信息。通过在LCD上控制 R7/G7/B7的上/下拉,来自定义 LCD 模块的 ID,帮助 MCU 判断当前 LCD 面板的分辨率和相关参数。

在这里插入图片描述

二、LCD时序

1、时间参数

在这里插入图片描述

产生黑边的原因:LCD内部拥有IC,发送一行或者一帧数据给 IC,IC 是需要反应时间的。通过这段反应时间可以让 IC 识别到一行数据扫描完了,要换行了,或者一帧图像扫描完了,要开始下一帧图像显示了。因此,在 LCD 屏幕中继续存在 HBP、HFP、VPB 和 VFP 这四个参数的主要目的是为了锁定有效的像素数据。

2、行场时序

1、行显示时序:

在这里插入图片描述

  • 行信号参数:

HSYNC: 行同步信号,当此信号有效的时候就表示开始显示新的一行数据,查阅所使用的 LCD 数据手册可以知道此信号是低电平有效还是高电平有效,图 23.1.8 为低电平有效。
HSPW: 行同步信号宽度,也就是 HSYNC 信号持续时间。HSYNC 信号不是一个脉冲,而是需要持续一段时间才是有效的,单位为 CLK。
HBP: 行显示后沿(或后肩),单位是 CLK。
HOZVAL: 行有效显示区域,即显示一行数据所需的时间,假如屏幕分辨率为 1024*600,那么HOZVAL 就是 1024,单位为 CLK。
HFP: 行显示前沿(或前肩),单位是 CLK。

  • 注意:

只有在 HSYNC 信号发出以后,等待 HSPW+HBP 个 CLK 时间才会接收到真正有效的像素数据。当显示完一行数据以后需要等待 HFP 个 CLK 时间才能发出下一个 HSYNC 信号,所以显示一行所需要的时间等于:HSPW + HBP + HOZVAL + HFP。

2、场显示时序:

场也就是帧,就是当前这副图像的显示时序,场是由多个行构成的。

在这里插入图片描述

  • 场信号参数:

VSPW: 帧同步信号宽度,也就是 VSYNC 信号持续时间,单位为 1 行的时间。
VBP: 帧显示后沿(或后肩),单位为 1 行的时间。
LINE: 帧有效显示区域,即显示一帧数据所需的时间,假如屏幕分辨率为 1024*600,那么 LINE 就是600 行的时间
VFP: 帧显示前沿(或前肩),单位为 1 行的时间。显示一帧所需要的时间就是:VSPW+VBP+LINE+VFP 个行时间

总的时间周期为:
T = (VSPW+VBP+LINE+VFP) * (HSPW + HBP + HOZVAL + HFP)

3、数据同步模式

对于RGB_LCD液晶屏,一般有两种数据同步方式。有行场同步模式(HV Mode),数据使能同步模式(DE Mode)。
1、在使用行场同步模式时,将行场信号作为数据的同步信号,此时的DE必须为低电平。
2、在选择DE模式时,LCD的DE信号则将会作为数据的有效信号,只有在扫描到帧有效区域和行有效显示区域时,DE才有效,在选择DE模式时,行场同步信号VS、HS必须为高。一般来说在LCD中支持DE模式较多,后面我们也打算采用DE模式。

4、像素时钟

原子哥的开拓者2可以接好几个版本的RGB屏幕,不同款式的屏幕需要的时钟数不同,计算公式如下:
N(CLK)= (VSPW+VBP+LINE+VFP) * (HSPW + HBP + HOZVAL + HFP)
用我们的时钟数除以想要显示的帧数就是我们需要的时钟频率。下面是60帧的不同分辨率的时序参数:
在这里插入图片描述


三、总结

简单总结了RGB_LCD的一些概念以及行场时序、接口等信息,方便我们后面进行彩条显示实验和视频。

四、参考资料

以上资料均来自正点原子的教学视频或开拓者2开发教程:原子官方

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/62444.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构——双链表

我宁愿靠自己的力量,打开我的前途,而不愿求有力者垂青 文章目录 双线向链表各接口函数名或变量名 双向链表接口实现源码 快速索引【头文件及函数声明】 双向链表接口实现 双向链表的构造分析 双向链表的定义及初始化 双向链表的插入和删除 往期…

音频客观感知MOS对比,对ViSQOL、PESQ、MosNet(神经网络MOS分)和polqa一致性对比和可信度验证

原创:转载需附链接: https://blog.csdn.net/qq_37100442/article/details/132057139?spm1001.2014.3001.5502 一、背景 Mos分评价音质重要指标,最近也有很多机构和公司在研究适合自己的评价体系。目前Mos分主要分为主观评测和客观感知评价。…

智能仪表板DevExpress Dashboard v23.1亮点 - 增强对自定义导出的支持

DevExpress Dashboard v23.1版本增强了自定义导出到Excel的功能等,欢迎下载最新版本体验! DevExpress Dashboard v23.1正式版下载(Q技术交流:523159565) 所有平台 导出自定义仪表板项目到Excel 用户现在可以在WinForms和Web应…

危大工程智慧工地源码,微服务+Java+Spring Cloud +UniApp +MySql 物联网、人工智能、视频AI分析

一套智慧工地管理平台源码,PC端移动APP端可视货数据管理端源码 智慧工地可视化系统利用物联网、人工智能、云计算、大数据、移动互联网等新一代信息技术,通过工地中台、三维建模服务、视频AI分析服务等技术支撑,实现智慧工地高精度动态仿真&a…

C++ 多线程:std::future

std::future std::future 简介示例1博客引用来源 std::future 简介 我们前面介绍的std::thread 是C11中提供异步创建多线程的工具,只能是异步运行任务,却无法获取任务执行的结果,一般都是依靠全局对象,全局对象在多线程下是及其不…

4 三组例子,用OpenCV玩转图像-AI-python

读取,缩放,旋转,写入图像 首先导入包,为了显示导入matplotlib/为了在matplotlib显示 导入CV2/查看版本 导入图片/查看图片类型 图片数组 数组大小 对于opencv通道顺序蓝色B、绿色G、红色R matplotlib通道顺序为 红色R、绿色G、蓝…

快速修复应用程序中的问题的利器—— Android热修复

热修复技术在Android开发中扮演着重要的角色,它可以帮助开发者在不需要重新发布应用程序的情况下修复已经上线的应用程序中的bug或者添加新的功能。 一、热修复是什么? 热修复(HotFix)是一种在运行时修复应用程序中的问题的技术…

彻底弄清楚Minor GC和Major GC及Full GC

系列资源汇总 https://gitee.com/xiayi/java-docs 每日一句 每一日你所付出的代价都比前一日高,因为你的生命又消短了一天,所以每一日你都要更用心。 前提概要 对于JVM而言,最难能够掌握的就是GC回收部分的研究和探索。 而对于虚拟机而言根据…

前端页面--视觉差效果

代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><link rel"stylesheet" href"https://un…

如何实现基于场景的接口自动化测试用例?

自动化本身是为了提高工作效率&#xff0c;不论选择何种框架&#xff0c;何种开发语言&#xff0c;我们最终想实现的效果&#xff0c;就是让大家用最少的代码&#xff0c;最小的投入&#xff0c;完成自动化测试的工作。 基于这个想法&#xff0c;我们的接口自动化测试思路如下…

【Linux】【预】配置网络IP,挂载网络目录

【Linux】【预】配置网络IP&#xff0c;挂载网络目录 1. 配置查看IP2.配置Linux中的IP3. 串口连接开发板&#xff0c;配置 1. 配置查看IP a . 查看ipifconfig如下操作&#xff0c;其中的&#xff1a;192.168.252.140就是它的IP b . 使用xmodem 连接到虚拟机&#xff0c;最后点…

Docker搭建zookeeper

问题背景 前言 本文参考自&#xff1a;docker-compose快速搭建Zookeeper集群还有一种更加详细更加全面的部署方式&#xff1a;Docker之docker-compose一键部署Zookeeper集群&#xff0c;但笔者还未验证&#xff0c;先记录下来 搭建 安装docker-ce 此处不赘述 安装docker-co…

Docker快速入门笔记

Docker快速入门 前言 当今软件开发领域的一股热潮正在迅速兴起&#xff0c;它融合了便捷性、灵活性和可移植性&#xff0c;让开发者们欣喜若狂。它就是 Docker&#xff01;无论你是一个初学者&#xff0c;还是一位经验丰富的开发者&#xff0c;都不能错过这个引领技术浪潮的工…

MYSQL进阶-事务的基础知识

1.什么是数据库事务&#xff1f; 就是把好几个sql语句打包成一个整体执行&#xff0c;要么全部成功&#xff0c;要么全部失败&#xff01;&#xff01;&#xff01; 事务是一个不可分割的数据库操作序列&#xff0c;也是数据库并发控制的基本单位&#xff0c;其执 行的结果必…

03_012slab块分配器,管理内核内存分配,管理高速缓存

物理背景 为什么会有缓存cache 在最初开发ARM架构时&#xff0c;处理器的时钟速度和内存的访问速度大致相同。今天的处理器内核要复杂得多&#xff0c;其时钟速度可以快上几个数量级。但是&#xff0c;外部总线和内存设备的频率并没有扩大到同样的程度。有可能实现小块的片上S…

搭建SVN服务器

简介 SVN&#xff08;Subversion&#xff09;是一种版本控制工具&#xff0c;用于管理和跟踪文件的修改历史。它可以帮助团队协作开发&#xff0c;方便地共享和更新代码&#xff0c;同时也可以提供备份和安全控制功能。 使用SVN&#xff0c;你可以创建中央代码库&#xff08;…

【MySQL】对表中数据的操作

本期给大家带来的是MySQL下对表中数据的增删查改操作 目录 一、对表插入数据 1.1 单行数据插入 1.2 多行数据插入 1.3 插入冲突时更新数据 1.4 替换式插入 1.5 插入查询结果 二、对表中数据进行查询 2.1 基本select 2.1.1 使用select查询表中数据 2.1.2 使用select…

内存快照:宕机后,Redis如何实现快速恢复?RDB

AOF的回顾 回顾Redis 的AOF的持久化机制。 Redis 避免数据丢失的 AOF 方法。这个方法的好处&#xff0c;是每次执行只需要记录操作命令&#xff0c;需要持久化的数据量不大。一般而言&#xff0c;只要你采用的不是 always 的持久化策略&#xff0c;就不会对性能造成太大影响。 …

Godot 4 源码分析 - 碰撞

碰撞功能应该是一个核心功能&#xff0c;它能自动产生相应的数据&#xff0c;比如目标对象进入、离开本对象的检测区域。 基于属性设置&#xff0c;能碰撞的都具备这样的属性&#xff1a;Layer、Mask. 在Godot 4中&#xff0c;Collision属性中的Layer和Mask属性是用于定义碰撞…

任务12、Quality指令加持,Midjourney生成电影级数码作品

12.1 任务概述 本次实验任务旨在帮助你掌握Midjourney AI绘画中的Quality指令。通过深入介绍Quality指令的概念和作用,我们将解释为什么它在绘画中至关重要。通过测试不同的Quality参数对绘画效果的影响,并提供实战演示,你将学会如何在Midjourney中设置Quality参数以达到更…