<LCD硬件体系结构>

LCD控制器:位于ARM核内部,为LCD提供需要显示的数据,控制信息,控制时序

<LCD控制器结构>

REGBANKK : 寄存器组,总共有17个寄存器

LCDCDMA:LCD 中的DMA模块,该模块位于LCD的控制器中,在嵌入式系统中是内存中             有一个内存区域叫做帧缓存区,告诉DMA帧缓存区的起始地址,LCD控制器                            的其他控制部件将该数据发给LCD驱动器。

TIMEGEN:用于产生时序信号

<液晶屏种类>

按照驱动类型可以分为:STN, GF,TFT,其中TFT最为常用

LCD驱动芯片:LCD驱动芯片位于液晶显示屏上,作用是为液晶分子提供偏转电压。

LCD显示与信号:

时序

VSYNC:一帧图像显示的时间

HSYNC:显示一行的时间

VCLK: 显示两个点之间的时间间隔

VD[23:0]:LCD像素输出端

VDEN:数据使能信号

LEND:行结束信号

《LCD初始化》

<引脚初始化>

将管脚配置成VD

控制字详情:

 

<时序初始化>

LCD控制寄存器1

作用分析:

用于设置CLKVAL

控制字详情:

LCD控制寄存器2

作用分析:

用于设置VBPD,LINEVAL,VFPD.VSPW

控制字详情:

控制寄存器3

作用分析:

用于设置HBPD,HOZVAL,HFPD,

控制字详情:

控制寄存器4

作用分析:
用于设置HSPW

控制字详情

各个时序信号的值:

VSPW和VBPD时序信号的计算方式:

用于初始化LINEVAL 和HOZVAL:

<帧缓冲初始化>

在内存中开辟一段空间用于存储一帧的数据,2440开发板中用16位数据表示一个像素点(16bpp),所以总共需要(480*272*2)个字节。

分配:

静态分配

LCD帧缓存地址数据寄存器:

作用分析:

用于存放帧缓存数据的起始地址。

控制字详情:

LCDBANK存放帧缓存地址的高30-22位

LCDBASEU存放帧缓存地址的低22-1位

LCD屏幕种类区分设置寄存器:

作用分析:

用于区分“dual-scan LCD”和“single scan LCD”

控制字详情:

如果屏幕使用 的是single-scan LCD,则该寄存器存放帧缓存地的尾地址的21-1位。

首尾像素点时间间隔控制/行宽度寄存器:

作用分析:

用于设置没行的最后一个像素点和下一行的低一个像素点之间是否有时间间隔。

控制字详情:

像素点时间间隔为0,行宽度取半字节,比如这里480个像素点,每个像素点是两个字节,所以取值为(480*2)/2

动态分配

告知:

将帧缓存数据地址值写入LCDADDR1中

<配置寄存器初始化>

LCD控制寄存器1

作用分析:

用于配置LCD种类,屏幕像素点的真彩色,和LCD控制器数据输出使能。

LCD控制寄存5

作用分析:

用于配置像素的分配,这里使用5:6:5(红绿蓝),和翻转极性控制

控制字详情:

像素真彩

转换极型

半字转换使能

临时调色板配置寄存器:

作用分析:

用于使能和配置临时调色板

使能临时调色板

GPG管脚控制器:

作用分析:

用于将相应管脚设置为LCD的电源

控制字详情:

LCD数据显示:

16bpp显示数据分配图

数据显示

http://www.114la.com/other/rgb.htm

单色显示

void LCD_line()

{

int x;

for(x=0;x<480;x++)

{

void point(x++,150,0xff0000)

}

}

LCD的更多相关文章

  1. STM32F429 LCD程序移植

    STM32F429自带LCD驱动器,这一具有功能给我等纠结于屏幕驱动的程序员带来了很大的福音.有经验的读者一定有过这样的经历,用FSMC驱动带由控制器的屏幕时候,一旦驱动芯片更换,则需要重新针对此驱动 ...

  2. 分页型Memory LCD显存管理与emWin移植

    上一篇随笔整理了一下逐行扫描型Memory LCD的显存管理与emWin移植,这篇就整理一下分页型Memory LCD显存管理与emWin移植. //此处以SSD1306作为实例 //OLED的显存/ ...

  3. 逐行扫描型Memory LCD显存管理与emWin移植

    因为Memory LCD 的特性,不能设置像素坐标,只能用缓存整体刷新. 所以对于Memory LCD来说,emWin移植仅与打点函数有关,这里用Sharp Memory LCD(ls013b7dh0 ...

  4. Sharp Memory LCD (ls013b7dh03)驱动

    网上找不到什么靠谱的资料,甚至我调好了夏普原厂和代理商还来找我要demo,  哎,苦逼的码农. lcd_main.c #include "ls013b7dh03.h" #inclu ...

  5. AM335x kernel4.4.12 LCD 时钟翻转设置记录

    TI AM335x kernel 4.4.12 LCD display 时钟翻转记录 因为公司硬件上已经确定LCD 转LVDS 转换芯片上确认以上升沿时钟为基准,所以只能在软件上调整相关东西. 入口在 ...

  6. Arduino下LCD1602综合探究(上)——1602的两种驱动方式,如何使LCD的控制编程变得更简单

    一.前言: LCD ( Liquid Crystal Display 的简称)液晶显示器,已经逐渐替代CRT成为主流的显示设备之一,因此也成为了单片机发烧友绕不过的话题之一:而LCD1602更是很多单 ...

  7. jquery模拟LCD 时钟

    查看效果网址:http://keleyi.com/keleyi/phtml/jqtexiao/24.htm 以下是HTML文件源代码: <!DOCTYPE html PUBLIC "- ...

  8. 嵌入式Linux驱动学习之路(十八)LCD驱动

    驱动代码: /************************************************************************* > File Name: lcd ...

  9. LCD接口(转载)

    LCD接口分类 1.   I8080接口,我觉得应该就是所谓的8080,通常会用在12864屏上面,且有内部sdram,不需要实时的刷新图片,速度有限制, 支持的数据宽度有8/9/16/18bit,接 ...

  10. LCD底层驱动分析

    根据分析的框架,自己写一个LCD驱动程序 1分析LCD硬件原理图 Von和Voff接的是一个电源电路,通过LCD_POWER接的是GPG4来控制LCD电源,高电平表示开启LCD电源 VM接的是CPU的 ...

随机推荐

  1. HDU 2722 Here We Go(relians) Again (最短路)

    题目链接 Problem Description The Gorelians are a warlike race that travel the universe conquering new wo ...

  2. react页面间传递参数

    react-router页面跳转,带请求参数 this.context.router.push({pathname:'/car_datail',state:{item:"hello" ...

  3. VM虚拟机上连接usb无反映

    主机的usb连接又是正常的,排除了usb3.0的接口原因后,突然想到了是不是虚拟机的什么服务没有开?进入到控制面板->管理工具->服务,找到 V开头的,发现原来确实是虚拟机有关usb的服务 ...

  4. 通过BurpSuite和sqlmap配合对dvwa进行sql注入测试和用户名密码暴力破解

    0x1 工具和环境介绍 dvwa:渗透测试环境 BurpSuite:强大的WEB安全测试工具 sqlmap:强大的sql注入工具 以上工具和环境都在kali linux上安装和配置. 0x2 步骤说明 ...

  5. SolrJ查询条件组合查询实现——(十六)

    带查询条件的实现原理: 查询按钮被包在一个大表单,表单还有三个隐藏域,一个商品筛选,一个 价格,一个排序,每次点击查询时候清空三个隐藏域,就带着一个大条件去查询;点击下面的筛选条件时,给隐藏域的筛选条 ...

  6. 建立ARM交叉编译环境 (arm-none-linux-gnueabi-gcc with EABI)【转】

    转自:http://lib.csdn.net/article/embeddeddevelopment/60172?knId=886 建立ARM交叉编译环境 (arm-none-linux-gnueab ...

  7. c语言格式控制符

    http://zhidao.baidu.com/link?url=-YJjz3U0fd_eSW9eLa8ankGo_QbyOOOaKYWyAY9g4mKWQj0DN6l12OSLJz24U8jCwo1 ...

  8. restful API 规范(转)

    1. URI URI 表示资源,资源一般对应服务器端领域模型中的实体类. URI规范 不用大写: 用中杠-不用下杠_: 参数列表要encode: URI中的名词表示资源集合,使用复数形式. 资源集合 ...

  9. 利用CSS函数calc(...)实现Web页面左右布局

    前言 因为自己的网站需要,想要做一个左右布局的页面: 左边是导航菜单之类的东西.右边是文档内容(因为最近看的一些软件的文档页面都是这么布局的): 左边固定宽度——300像素.右边使用剩余的宽度: 左边 ...

  10. python基础-类的封装

    封装:类中封装了公有属性和方法,对象封装了私有属性的值 class F1: def __init__(self,n): self.N=n print('F') class F2: def __init ...