700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Linux系统驱动之硬件_IMX6ULL的LCD控制器

Linux系统驱动之硬件_IMX6ULL的LCD控制器

时间:2020-10-20 08:47:33

相关推荐

Linux系统驱动之硬件_IMX6ULL的LCD控制器

百问网技术交流群,百万嵌入式工程师聚集地:

/page/2248041

硬件_IMX6ULL的LCD控制器

参考资料,GIT仓库里:

IMX6ULL\开发板配套资料\datasheet\Core_board\CPU\IMX6ULLRM.pdf

《Chapter 34 Enhanced LCD Interface (eLCDIF)》

IMX6ULL的LCD裸机程序

IMX6ULL\source\03_LCD\05_参考的裸机源码\03_font_test

1. LCD控制器模块介绍

1.1 硬件框图

IMX6ULL的LCD控制器名称为eLCDIF(Enhanced LCD Interface,增强型LCD接口),主要特性如下:

支持MPU模式:有些显示屏自带显存,只需要把命令、数据发送给显示屏即可;就是前面讲的8080接口VSYNC模式:跟MPU模式类似,多了VSYNC信号。针对高速数据传输(行场信号)支持DOTCLK模式:RGB接口,就是前面讲的TFT-RGB接口支持ITU-R BT.656接口,可以把4:2:2 YcbCr格式的数据转换为模拟电视信号8/16/18/24/32 bit 的bpp数据都支持,取决于IO的复用设置及寄存器配置MPU模式,VSYNC模式,DOTCLK模式,都可以配置时序参数。

上图是IMX6ULL的LCD控制器框图。

我们在内存中划出一块内存,称之为显存,软件把数据写入显存。

设置好LCD控制器之后,它会通过AXI总线协议从显存把RGB数据读入FIFO,再到达LCD接口(LCD Interface)。

LCD控制器有两个时钟域:外设总线时钟域,LCD像素时钟域。前者是用来让LCD控制器正常工作,后者是用来控制电子枪移动。

上图的Read_Data操作,在MPU模式下才用到;我们采用的是DCLK模式,因此不予考虑。

更详细的内容可以查看IMX6ull芯片手册《Chapter 34 Enhanced LCD Interface (eLCDIF)》。

1.2 数据传输与处理

框图: 举例说明:见视频

1.3 时序控制

看寄存器说明。

2. LCD控制器寄存器简介

查看任何芯片的LCD控制器寄存器时,记住几个要点:

① 怎么把LCD的信息告诉LCD控制器:即分辨率、行列时序、像素时钟等;

② 怎么把显存地址、像素格式告诉LCD控制器。

上图是我们将要使用到的寄存器,下面逐个讲解这些寄存器,在后续的LCD控制编程实验会用到。

2.1 LCDIF_CTRL寄存器

2.2 LCDIF_CTRL1寄存器

本实验中使用TFT LCD,LCD控制器使用DOTCLK模式。本寄存器中其他用不到的位,就不介绍了。

2.3 LCDIF_TRANSFER_COUNT寄存器

2.4 LCDIF_VDCTRL0寄存器

​ 本寄存器用来设置Vsync信号相关的时序,及极性。

2.5 LCDIF_VDCTRL1寄存器

2.6 LCDIF_VDCTRL2寄存器

​ HSYNC_PULSE_WIDTH:水平同步信号脉冲宽度;

​ HSYNC_PERIOD:两个水平同步信号之间的总数,即水平方向同步信号的总周期

2.7 LCDIF_VDCTRL3寄存器

2.8 LCDIF_VDCTRL4寄存器

2.9 LCDIF_CUR_BUF寄存器

2.10 LCDIF_NEXT_BUF寄存器

LCD控制器传输完当前帧后,会把LCDIF_NEXT_BUF寄存器的值复制到LCDIF_CUR_BUF寄存器。

百问网技术交流群,百万嵌入式工程师聚集地:

/page/2248041

百问网技术论坛:

/

百问网嵌入式视频官网:

/index

百问网开发板:

淘宝:/

天猫:/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。