<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. JS踩过的坑

    一:DOM对象的查找 DOM的查找到的对象,除byID的之外,返回的都是一个数组,并不是DOM对象无法调用DOM对象的方法. 通过id查找: 因为id在一个HTML文件中唯一,因此查找到的只会是一个元 ...

  2. [转]closed-form solution (闭合解/解析解)和数值解的理解

    参考整理自:http://hi.baidu.com/cjb366/item/7290773b2d2eb9f2a9842873 closed-form solution :一般翻译为闭合解/解析解.这一 ...

  3. JavaScript事件冒泡与捕获

    event.preventDefault();    如果event.cancelable的值为true,可以取消默认事件 event.cancelable;             元素是否可以取消 ...

  4. springcloud中eureka集群unavailable-replicas

    unavailable-replicas 配置了集群,但是在注册中心显示另外的几个集群地址是不可用的: 1 首先需要再host中添加服务名映射,如果应映射了再看是否在yml中配置了prefer-ip- ...

  5. 如何基于Spring Boot搭建一个完整的项目

    前言 使用Spring Boot做后台项目开发也快半年了,由于之前有过基于Spring开发的项目经验,相比之下觉得Spring Boot就是天堂,开箱即用来形容是绝不为过的.在没有接触Spring B ...

  6. python基础之命名空间

    前言 命名空间通俗的理解就是对象或变量的作用范围,在python中分为局部命令空间.模块命名空间和build-in全局命名空间. 局部命名空间 局部命名空间即在一个函数或一个类中起作用的变量或引用的字 ...

  7. Nginx常见错误与问题之解决方法技术指南

      Nginx常见错误与问题之解决方法技术指南. 安装环境: 系统环境:redhat enterprise 6.5 64bit 1.Nginx 常见启动错误 有的时候初次安装nginx的时候会报这样的 ...

  8. 【bzoj3065】: 带插入区间K小值 详解——替罪羊套函数式线段树

    不得不说,做过最爽的树套树———— 由于有了区间操作,我们很容易把区间看成一棵平衡树,对他进行插入,那么外面一层就是平衡树了,这就与我们之前所见到的不同了.我们之前所见到的大多数是线段树套平衡树而此题 ...

  9. [HBase]mem store flusher 流程

  10. Python 内置装饰器

    内置的装饰器 ​ 内置的装饰器和普通的装饰器原理是一样的,只不过返回的不是函数,而是类对象,所以更难理解一些. @property ​ 在了解这个装饰器前,你需要知道在不使用装饰器怎么写一个属性. d ...