首先想一想再前几篇文章讲的协议类的前提

  • 1、双方约定好通信的协议
  • 2、双方满足一定的时序要求

以上第二点又有一些要求:

  • 1)弄清2440在这个通信协议中,能设置哪些时序的值,这些值的含义是什么——2440手册
  • 2)弄清楚这块LCD的时序有什么要求,要取什么值——看LCD手册
  • 3)计算,这些值一般是以多少秒为一个时钟等。
  • 4)再将这些值写入2440相应的寄存器

本篇假定2440连接LCD

目录

  • LCD传输的是什么东西
  • 原理图
  • 引脚
  • 引脚含义
  • 原理图导读
    • LED+和LED-
  • 接线
  • 同步信号时序图
  • 内存相关
  • LCD控制器
    • jz2440中LCD的时序
      • VCLK
      • 脉冲宽度
  • 额外注意

LCD传输的是什么东西

HSYNC——水平方向的同步信号
VSYNC——垂直方向的同步信号
Data Enable——数据使能
CLK——时钟
VD(R、G、B)——video data红绿蓝

作用:

  • HSYNC 信号用于告诉电子枪该扫描下一行了, 即要转到下一行起始处了;
  • VSYNC 信号告诉电子枪该显示下一帧了, 即该转回左上角起始处了;
  • VD颜色信息
  • Data Enable是否读取颜色数据并打印,高电平有效,低电平只移动

原理图

引脚


  • 1、VGH——电源供电(高电平)
  • 2、DISP——控制开关
  • 6、VGL——电源供电(低电平)
    等等,有很多引脚

引脚含义

LCD的引线有非常多,那么怎么去理解这些引线呢?

将LCD屏理解为一个一个像素,每行有很多个点。
假想LCD后面有一个电子枪,将RGB颜色打到电子屏当中。打完再一个又一个移动。
那么我们怎么知道这个电子枪移动到下一个位置呢——时钟VCLK(video clock)

这是2440发出来的时钟

这个时钟一定需要满足一定需求
太快——LCD反应不过来
太慢——一个个像素慢慢出现,人眼受不了

那么一行结束,这个枪怎么跳到下一行呢——HSYNC/VLINE(水平方向同步信号)

一次刷新玩屏幕,这把枪在屏幕的最右下方的位置。下一次刷新需要把枪拿到第一个位置,这时怎么做——VSYNC/VFRAME(垂直方向同步信号)

颜色从哪里来——VD0~VD23(video data)

电子枪是否取出并打印数据,还是只移动不取数据——DE(data enable)

  • 高电平则取数据打出来并移动
  • 低电平只移动不取数据

流程如下

  • 1、每来一个时钟,从VD0~VD23取出一个颜色打到屏幕中
  • 2、移动到一行最右边的时候,2440发送一个HSYNC水平信号。这把枪从最右边跳到下一行的最左边。
  • 3、到一页的最后一个节点,2440发送一个VSYNC垂直信号。告诉这把枪要进行下一帧了,将这把枪移动到起始位置。

原理图导读


这四个引脚是触摸屏相关,先不用管

LED+和LED-


原理图中电路如下

中间的芯片是一个电源芯片

↑这个引脚是接到2440的,2440把它配置成输出引脚

若它输出高电平,如何知道高电平是否有效?
电路图中有一些约定俗成的习惯

  • EN——高电平有效
  • nEN、EN上加一横线、EN/——低电平有效
  • 什么都不写——高电平有效

这个引脚输出低电平,屏幕就变暗
输出高电平,屏幕变亮
输入电压是5V,经过这个芯片过后,会出来一个很高的电压。这个电压有20多V

接线


相同名字的线接到一起就行了。

同步信号时序图




这些信号的时序都有要求,那么如何配置这些信号呢
这就需要配置LCD控制器

内存相关

视频数据从哪里来?
这就还需要配置显存
在内存SDRAM中分配一段地址作为显存,然后把这段地址告诉LCD控制器
在设置好LCD控制器的各项参数后,它就会从地址对应的显存中去读取数据

相关过程:

  • 1、LCD控制器读取显存中第一个点的数据,读出来发送到VD0~VD23中对应的数据线上面,结合已经配置好的信号发送给LCD。
  • 2、LCD从video data数据线上得到像素信息后,打印出来。然后依次反复打印下一个。
  • 3、根据HSYNC、VSYNC信号进行换行和回到起始位置进行下一帧。换到下一帧时,LCD控制器又会从显存的第一个地址开始读取。

LCD控制器

所有信号都是由LCD控制器发出来的
2440发出信号的时序需要根据连接的LCD屏幕进行配置

如VCLK的频率
LCD的规格,是320*240的,还是多少。这关乎于HSYNC水平信号要发多少个,然后再发VSYNC竖直信号。

接下来开始看2440的芯片手册

先打开对应的LCD控制器章节

jz2440中LCD的时序

可以找到如下一张LCD时序的例子

这是2440的图。
接下来我们看能设置哪些参数

以水平方向信号为例。

这个水平方向,是一个高脉冲。这个脉冲要维持多长时间,我们就可以通过设置HSPW+1

收到HSYNC后,电子枪从最右边跳到下一行的最左边。不可能是一瞬间就过去的。LCD收到信号后,要过一段时间才能输出第一个像素。这个时间可以设置HBPD+1

接下来就是VD(video data)输出一行的数据。一行数据有多少个像素。一行的像素个数需要根据LCD规格来设置:如一行是320,那么就设置成319个数据。可以设置HOZVAL+1

发完一行数据后,要再等一段时间才能发出下一个水平方向的信号。这段时间就可以设置HFPD+1

注意:以上四个数据,计算得出正确的值要减一,再配置到相应的寄存器当中。

VCLK

  • 如果设置的太快,LCD反应不过来
  • 如果设置的太慢,显得迟钝

    STN和TFT的选择能够百度查到,这里不多解释。

弄清2440中VCLK的取址后,再看外设LCD的LCD取址

时钟周期:最小值是一个周期100纳秒
即LCD接受的最大频率是10兆(时钟周期换算成秒取倒数->10 000 000)

所以2440的VCLK要小于等于10兆赫兹,根据上面2440的手册公式计算,再配置相应寄存器

脉冲宽度

HSPW+1
2440的图列在上面了
下面看看LCD手册

脉冲宽度就是T7

UNIT(单位)是Pixel Clock(像素时钟)
最大值10,最小值4.若我们取5,
那么HSPW就是4

找到寄存器,并配置

水平方向同步信号脉冲的宽度,单位是VCLK

额外注意

LCD手册

2440手册

在这个LCD中是低电平有效,那么我们就需要把2440中的这个脉冲设置成低脉冲

↑2440中可以反转水平信号的脉冲

协议类基础——LCD相关推荐

  1. 协议类接口 - LCD

    一.引脚含义 下图为某LCD相关引脚: 从引脚可以大概看出其SoC的连接情况: 1)VCLK为时钟,每一次像素就移动一次 2)HSYNC/VLINE 3)VSYNC/VFRAME 4)VD0 - VD ...

  2. SIP协议(基础技术知识)

    SIP协议(基础技术知识) SIP(Session InitiationProtocol)协议是Internet多媒体通信和控制协议体系的一部分,该协议族包括会话描述协议(SDP).会话发布协议(SA ...

  3. 【前端全家桶】 HTTP协议类

    写在开头 大家好,这里是 lionLoveVue,基础知识决定了编程思维,学如逆水行舟,不进则退.金三银四,为了面试也还在慢慢积累知识,Github上面可以直接查看所有前端知识点梳理, github传 ...

  4. 不惧面试:HTTP协议(1) - 基础扫盲

    阅读目录 面试常见题: 参考答案: 前言 先交代下背景,写这个系列的原因是总结自己遇到的面试题以及可能遇到的题目,更重要的是,今年定的目标是掌握网络这一块的知识点,先是搞懂HTTP协议,然后是TCP/ ...

  5. JavaのFile类基础操作之问题

    在上一章节,介绍了File类的基础操作,比如文件的创建,文件的删除等等.这一章节,将介绍在File类基础操作中遇到的问题. 1.路径分割符问题 在实际的软件开发与运行过程中,往往都会在Windows环 ...

  6. 计算机视觉之OpenCV教程 --- Mat图像类基础(二)

    机器视觉之OpenCV教程图像容器Mat类基础一(二) 一.Mat像素点的存储方法 色彩空间是指我们通过组合颜色分量来对各种颜色编码 灰度图像: 从黑到白 ,逐渐过渡 , 划分成若干灰度级别 彩色图像 ...

  7. 计算机视觉之OpenCV教程 ---Mat类基础(一)

    机器视觉之OpenCV教程图像容器Mat类基础一(一) 零.OpenCV概述 基本上在机器识别的领域 ,都有OpenCV的身影 . OpenCV中基本上包含了所有的机器视觉所用到的算法 , 即使没有也 ...

  8. 【转】医疗业务学习笔记--DICOM协议的基础内容!!!!!!!!!!

    转自:医疗业务学习笔记--DICOM协议的基础内容 - 知乎 本文首发于"雨夜随笔"公众号,欢迎关注. DICOM协议是医疗领域对如何处理.存储.打印和传输医疗图片的一系列标准.D ...

  9. PHP使用POP3协议类收取邮件

    POP3协议类收取邮件 此测试代码需要到服务器邮箱开通pop协议,获取客户端授权密码(详见163内部获取): <?php//此处查看链接状态header("Content-type:t ...

最新文章

  1. Kubernetes v1.0特性解析
  2. iOS开发实战-基于SpriteKit的FlappyBird小游戏
  3. Mac下使用ABTestingGateway快速搭建灰度网关
  4. ML之RFXGBoost:基于RF/XGBoost(均+5f-CrVa)算法对Titanic(泰坦尼克号)数据集进行二分类预测(乘客是否生还)
  5. boost::geometry::coordinate_type用法的测试程序
  6. 菜鸟学Linux 第093篇笔记 keepalived
  7. IE6-IE9使用JSON、table.innerHTML 问题
  8. 关于微信退款出现错误代码:52的解决方法【转】
  9. 3-matlab求秩和比代码
  10. 产品经理应具备的能力(初中高级),产品经理岗位细分
  11. 一篇文章带你游历各种编码方式(三阶高密度码,曼彻斯特编码,交替双极性反转码,单双级(不)归零码)
  12. 微信公众号支付开发常见问题
  13. Python 中文变量名 用中文写 Python
  14. harmonyos2.0刷机包,鸿蒙harmony os 2.0刷机包|鸿蒙harmony os 2.0系统刷机包 v1.021-520下载站...
  15. 凸多边形、凹多边形、凸包算法
  16. R语言数据可视化-箱线图
  17. Flume介绍和使用
  18. Python创意编程100例turtle篇题目串烧
  19. Java 自动类型转换,强制类型转换
  20. 2020年中国IT咨询行业市场现状及发展趋势

热门文章

  1. [KSN2021] Binary Land题解(位运算应用)
  2. 华硕手机打开调试模式
  3. 前端开发工程师 - 03.DOM编程艺术 - 第1章.基础篇(下)
  4. [进阶]-Python3 异步编程详解(史上最全篇)
  5. Java之类与对象(图文结合)
  6. 酷狗2018——买橘子
  7. 互联网早报:货拉拉宣布上线行程录音功能,试运行车载设备后将逐步推广至全国
  8. 百万点赞怎么来?用Python制作抖音视频原来这么简单
  9. CSS实现背景图片透明和文字不透明效果
  10. js 数字和字符串相互转换