100ask_imx6ull绝对是最2的IMX6ULL开发板!

100ask_imx6ull绝对是最2的IMX6ULL开发板!_第1张图片
100ask_imx6ull开发板绝对是最2的IMX6ULL开发板!

为什么这么说呢?
因为它有别家的:
2倍的裸机文档!

2倍的裸机实验!

却是2分之1的价格!

自从去年我们发布了后,

开启了一个新模式:

0利润开发板吸引客户,

入门视频全部免费服务大众,

独家视频才收费。

硬件质量久经考验,即使是最专业的硬件工程师,也认可我们的设计和用料;

之前,资料缺乏是唯一槽点,

但是,

从4月20号,这一切都改变了!
600页裸机文档已经发布,
近30板上、板外模块,
每一章节都是韦老师修改,保证质量;

来,看看我们的文档,

就说LCD吧,

如果一上来,就是这个图,你看得懂那些信号是什么鬼?
100ask_imx6ull绝对是最2的IMX6ULL开发板!_第2张图片

可能很多人都知道:HSYNC是行同步信息,VSYNC是列同步信号。

同步?行?列?

什么鬼东西嘛,请说些小白能听懂的话。

我们是善于讲课的老师,我们这样教你:
100ask_imx6ull绝对是最2的IMX6ULL开发板!_第3张图片
跟着韦老师,妈妈再也不用担心我的嵌入式学习了!

2倍的裸机文档/实验:

LED、RAM重定位、时钟、UART、GPIO按键、UND/SWI异常、

GPT定时器、EPIT定时器、EMMC卡、

TF卡、LCD、电容屏、

I2C、SPI、红外遥控器、DHT11温湿度、DS18B20温度模块、SR501人体红外模块、

SR04超声波、步进电机、OLED显示屏、

SPI DAC、AT24C02、GPS、

光敏,ADC,CAN、485。

2分之1的价格:标配369起(转发朋友圈),我们不挣硬件钱,所以当然0利润。

下面分享100ASK_IMX6ULL裸机文档第15章LCD编程之100ASK_IMX6ULL硬件原理

内容包括

1.1 LCD硬件工作原理简介

1.2 RGB接口的LCD硬件连接信号

1.3 TFT材质液晶屏接口简介(7寸1024600TN-RGB)

1.3.1 LCD关键特性

1.3.2 行时序

1.3.3 列时序
1.3.4 DE模式

1.3.5 RGB数据的存放形式

下面分别罗列。

1.1 LCD硬件工作原理简介

100ask_imx6ull绝对是最2的IMX6ULL开发板!_第4张图片

假设上图是一个LCD屏幕,屏幕中一个一个密密麻麻的黑点称之为像素点,每一行有若干个点,试想下有一个电子枪,电子枪位于某一个像素点的背后,然后向这个像素发射红,绿,蓝三种原色,这三种颜色按不同的比例组合成任意一种颜色。电子枪在像素点的背后,一边移动一边发出各种颜色的光,电子枪从左往右移动,到右边边缘之后就跳到下一行的行首,继续从左往右移动,如此往复,一直移动到屏幕右下角的像素点,最后就跳回原点。

问题1:电子枪如何移动?

答: 有一条像素时钟信号线(DCLK),连接屏幕,每来一个像素时钟信号(DCLK),电子枪就移动一个像素。

问题2:电子枪打出的颜色该如何确定?

答:有三组红,绿,蓝信号线(RGB),连接屏幕,由这三组信号线(RGB)传递颜色

问题3:电子枪移动到LCD屏幕右边边缘时,如何得知需要跳到下一行的行首?

答:有一条水平同步信号线(HSYNC),连接屏幕,当接收到水平同步信号(HSYNC),电子枪就跳到下一行的最左边

问题4:电子枪如何得知需要跳到原点?

答:有一条垂直同步信号线(VSYNC),连接屏幕,当接收到垂直同步信号线(VSYNC),电子枪就由屏幕右下脚跳到左上角(原点)

问题5:电子枪如何得知三组信号线(RGB)确定的颜色就是它是需要的呢?

答:有一条RGB数据使能信号线(DE),连接屏幕,当接收到数据使能信号线(DE),电子枪就知道这时由这三组信号线(RGB)确定的颜色是有效的,可以发射到该像素点。

下图是开发板,LCD控制器,LCD屏幕的框图

100ask_imx6ull绝对是最2的IMX6ULL开发板!_第5张图片

之前提到的像素时钟(DCLK), 三组红,绿,蓝信号线(RGB),水平同步信号线(HSYNC),垂直同步信号线(VSYNC),RGB数据使能信号线(DE)都是从LCD控制器发出的,只要开发板支持LCD显示,它肯定就会有一个LCD控制器。

问题6:RGB三组信号线上的数据从何而来?
100ask_imx6ull绝对是最2的IMX6ULL开发板!_第6张图片

上图是RGB数据来源框图,内存中划出一部分区域,这块区域被称为Framebuffer。在Framebuffer里面我们会构造好每一个颜色所对应的像素。Framebuffer中的值会被LCD控制器读出来,通过RGB三组线传给电子枪,电子枪再把它转换成红绿蓝三种颜色打到屏幕上。在屏幕上的每一个像素,在Frambuffer里面都有一个对应存储空间,里面存有屏幕上对应像素的颜色。

LCD控制器会周而复始的从Framebuffer中取出一个个像素的颜色值,发给电子枪,同时需要和DCLK,VSYNC,HSYNC,DE这些信号配合好。

1.2 RGB接口的LCD硬件连接信号

本次实验编程的屏幕属于RGB接口的显示屏,RGB接口的显示屏至少具备以下信号:

① 像素时钟信号(DCLK)

用于同步LCD上的DE,VS,HS,RGB信号线。

② RGB数据信号(R[0:7] ,G[0:7],B[0:7])

三组信号线组成,分别代表R(红色),G(绿色),B(蓝色),这三组信号中的每一组都会有8根信号,三组共同组成24根线来控制颜色数据。

有些LCD只需要16位颜色(RGB565),可以只使用8条红色数据线中的高5位,其余3位悬空;只使用8条绿色数据线中的高6位,其余2位悬空;只使用8条蓝色数据线中的高5位,其余3位悬空。

③ RGB数据使能信号(DE)

RGB接口的 LCD 有两种驱动模式:DE 模式和 HV 模式。

在HV模式下,需要用到HS与VS来控制刷新。比如对于分辨率为1024x600RGB的LCD,LCD控制器发出HS信号后,就会发出1024个DCLK,在每个DCLK上传输像素数据;当发出600个HS信号后,就会发出一个VS信号。

在DE模式下,需要用到DE信号来控制刷新,比如对于分辨率为1024x600RGB的LCD,LCD控制器发出DE信号后,就要发出1024个DCLK,在每个DCLK上传输像素数据;当发出600个DE信号,刷新完一帧数据后,又从第1行开始扫描。

编写LCD程序时,一般都会兼容两种模式,所以程序中会设置这3个信号:数据使能信号(DE),垂直同步信号(HS),水平同步信号(VS)。

④ 水平同步信号

电路中常用HS或HSYNC表示,详细说明下一小节会说明。

⑤ 垂直同步信号(帧同步或场同步)

电路中常用VS或VSYNC表示,相信说明下一小节会说明。

⑥ LCD背光电源控制信号

所谓背光,就是在LCD显示屏的背部有很多的灯珠,用它们来照亮屏幕。

背光电路可以用GPIO引脚控制,输出高低电平表示亮灭,只有亮灭两种状态;也可以用PWM引脚来控制,它可以输出占空比不同的方波,根据占空比来调节LCD的亮度,更加精细。

100ASK_IMX6ULL开发板的LCD接口定义(在资料光盘/05_Hardware(原理图)->Base_board->100ask_imx6ull_v1.1.pdf)),就包含了上面所述的几种信号类型,如下图:

1.3 TFT材质液晶屏接口简介(7寸1024600TN-RGB)

嵌入式设备中一般都采用TFT材质的液晶屏,如遇到别的材质的屏幕,操作方法也是相似的,可能稍微有些差异,针对差异去做修改即可,7寸1024600TN-RGB液晶屏幕接口引脚如下图,一些关键的引脚做了注释。
100ask_imx6ull绝对是最2的IMX6ULL开发板!_第7张图片

1.4 LCD关键特性

1.4.1 行时序

接下来我们查看下100ASK_7.0寸LCD手册时序图(在资料光盘/06_Datasheet(数据手册)->Extend_modules->7寸LCD模块.zip->7.0-13SPEC(7寸1024600TN-RGB).pdf):

100ask_imx6ull绝对是最2的IMX6ULL开发板!_第8张图片

如上图所示,从最小的像素开始分析,电子枪每次在CLK下降沿采集数据,即从数据线上得到数据,并发射到显示屏上,然后移动到下一个位置。DATA数据线上的数据来源就是前面介绍的FrameBuffer。就这样从一行的最左边,一直移动到一行的最右边,完成了一行的显示。

电子枪当打完一行的最后一个数据后,就会收到Hsync行同步信号,如上图可知该LCD的Hsync有效脉冲为低脉冲,根据时序图,一个行周期可以大致分为四部分组成:

① thp:horizontal pulse

Hsync信号的脉冲,thpw称为脉冲宽度,这个时间不能太短,太短电子枪可能识别不到。

② thb:horizontal back porch

③ thf:horizontal front porch

Hsync信号发出后,电子枪从最右端移动到最左端,这是需要时间的:这个移动的时间就是thb。

从Hsync结束到DE开始的区间被称为行扫描的后肩(back porch),从DE结束到Hsync开始称为前肩(front porch)。

④ thd:horizontal data

thd为数据有效区,假设一行的有效像素个数为x。

1.4.2 列时序

100ask_imx6ull绝对是最2的IMX6ULL开发板!_第9张图片

同理,电子枪被Hsync驱动,一行一行地从上面移动到最下面时,它会收到一个Vsync信号(上图中标为VSD):你应该回到原点去了。如上图可知该LCD的VSD有效脉冲为低脉冲,然后就让电子枪移动回最上边。VSD中的tvpw是脉冲宽度,tvb是移动时间,tvfp表示显示完最下一行像素,再过多久VSD才来,tvd为数据有效区,tv为打完一帧所需要的时间。假设一共有y行,则LCD的分辨率就是x*y。

电子枪打完一帧的最后一个数据后,就会收到Vsync行同步信号。根据时序图,一帧的周期可以大致分为四部分组成:

① tvp:vertical pulse

Vsync信号的脉冲,tvpw称为脉冲宽度,这个时间不能太短,太短电子枪可能识别不到。

② tvb:vertical back porch

③ tvf:vertical front porch

Vsync信号发出后,电子枪从最底端移动到最上端,这是需要时间的:这个移动的时间就是tvb。

在电子枪移动的过程中,Hsync信号会一直有,但是RGB上没有有效的数据。假设一帧信号里,含有有效数据的第1个Hsync信号发生时间称为T1;一帧里,最后一行有效数据的下一个Hsync信号发生的时间称为T2。

从Vsync结束到T1的这段时间,被称为列扫描的后肩(back porch),从T2到Vsync开始称为前肩(front porch)。

④ tvd:vertical data

tvd为数据有效区,假设一帧数据里的有效行数为y。

LCD的分辨率是:x*y。

1.4.3 DE模式

100ask_imx6ull绝对是最2的IMX6ULL开发板!_第10张图片

RGB数据有效信号(DEN),高电平表示数据有效。

根据以上信息大致了解几个关键信号的时序和极性,后面章节会详细介绍。

在这里插入图片描述

再根据上图,我们就可以确定像素时钟是51.2Mhz。

1.4.4 RGB数据的存放形式

前面的LCD硬件接口图里用到了24条数据线:R0-R7、G0-G7、B0-B7,每个像素的颜色占据3*8=24位。硬件上LCD的数据引脚连接是固定的,但是我们使用的时候,在软件上可以支持不同的像素格式,比如ARGB888,ARGB555,RGB565等等。也就是说虽然硬件上用了24条数据线,但是软件上我们可以提供24位数据,也可以只提供16位数据。当只提供16位数据时,硬件上24位数据线中会有8条数据线上没有数据。比如对于RGB565格式,R0R1R2、G0G1、B0B1B2这8条数据线上是不传输数据的,恒为0。

本实验支持ARGB888和ARGB555。

ARGB888:每个像素就占据32位数据,其中最高字节A表示灰度透明度其余RGB数据8+8+8=24BPP,因为硬件上根本没接透明度的数据线,所以透明度的数据没用上。

ARGB555:每个像素就占据16位数据,其中最高位A表示灰度透明度其余RGB数据5+5+5=15BPP,但是LCD本身没有透明度的数据线,所以透明度数据没用上。

                                          -END-

100ask_imx6ull购买地址:
http://100ask.taobao.com (点开第一个海报即可进入)
以后会不定期连载100ASK_IMX6ULL裸机文档。
是否意犹未尽? 100ASK_IMX6ULL 裸机文档完整版(600页)下载

下载方法一,

a.

下载安装Git Bash工具 :

https://gitforwindows.org/

b.

打开Git Bash,执行命令:

git  clone  https://gitee.com/weidongshan/imx6ull_NoosProgramProject.git

大概1分钟,下载成功后,你会在C:\Users 目录下,你自己的用户目录里,看到一个imx6ull_NoosProgramProject目录。

下载方法二,

百度网盘,

链接:

https://eyun.baidu.com/s/3smDzFAH

密码:LDCn

路径:
100ask_imx6ull_2020.02.29_v2.0

->10_裸机程序及文档

嵌入式Linux应用开发完全手册第2版_韦东山全系列视频文档全集.pdf的第四篇 裸机开发 。

我们推荐您使用下载速度更快的GIT下载。

你可能感兴趣的:(Linux驱动开发)