6_怎么看原理图之协议类接口之LCD笔记
首先想一想再前几篇文章讲的协议类的前提
1、双方约定好通信的协议
2、双方满足一定的时序要求
以上第二点又有一些要求:
1)弄清2440在这个通信协议中,能设置哪些时序的值,这些值的含义是什么——2440手册
2)弄清楚这块LCD的时序有什么要求,要取什么值——看LCD手册
3)计算,这些值一般是以多少秒为一个时钟等。
4)再将这些值写入2440相应的寄存器
本篇假定2440连接LCD
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中可以反转水平信号的脉冲
相关文章:

6_怎么看原理图之协议类接口之LCD笔记
首先想一想再前几篇文章讲的协议类的前提 1、双方约定好通信的协议 2、双方满足一定的时序要求 以上第二点又有一些要求: 1)弄清2440在这个通信协议中,能设置哪些时序的值,这些值的含义是什么——2440手册 2)弄清楚这…...

SpringCloud Alibaba 学习
一:SpringCloud Alibaba介绍 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服 务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba&…...

【ros2 control 机器人驱动开发】双关节多控制器机器人学习-example 4
【ros2 control 机器人驱动开发】双关节多控制器机器人学习-example 4 文章目录 前言一、创建controller相关二、测试运行测试forward_position_controller总结前言 本篇文章在上篇文章的基础上主要讲解双轴机器人驱动怎么编写机器人外部/内部(扭矩、压力)传感器数据反馈1,…...

Leetcode 3071. Minimum Operations to Write the Letter Y on a Grid
Leetcode 3071. Minimum Operations to Write the Letter Y on a Grid 1. 解题思路2. 代码实现 题目链接:3071. Minimum Operations to Write the Letter Y on a Grid 1. 解题思路 这一题思路上也是比较直接的,就是首先找到这个Y字符,然后…...

随想录算法训练营第五十一天|309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费
309.最佳买卖股票时机含冷冻期 public class Solution {public int MaxProfit(int[] prices) {if(prices.Length<2){return 0;}int [,]dpnew int[prices.Length,4];dp[0,0]-prices[0];for(int i1;i<prices.Length;i){dp[i,0]Math.Max(dp[i-1,0],Math.Max(dp[i-1,3]-pric…...

【语言学习】std::transform函数
阅读llvm的这个提交时,发现了其中使用了一个函数std::transform(原文对其进行了一层封装) 如果不理解std::transform的三个参数的关系,就会对第三个参数的lambda表达式理解不了。其实,第三个参数的作用是提供给了一种…...

Java开发面试准备,轻松搞定SpringBoot数据校验
程序员:给多少工资,干多少事 我们不是经常会看到一个关于西游记的“悖论”吗: 为什么孙悟空初期大闹天宫的时候那么厉害?因为他自己当老板,打一群天庭的打工仔。 为什么取经路上又变得不行了?作为一个打工…...

信呼OA普通用户权限getshell方法
0x01 前言 信呼OA是一款开源的OA系统,面向社会免费提供学习研究使用,采用PHP语言编写,搭建简单方便,在中小企业中具有较大的客户使用量。从公开的资产治理平台中匹配到目前互联中有超过1W的客户使用案例。 信呼OA目前最新的版本是…...

MySQL进阶之(四)InnoDB数据存储结构之行格式
四、InnoDB数据存储结构之行格式 4.1 行格式的语法4.2 COMPACT 行格式4.2.1 记录的额外信息01、变长字段长度列表02、NULL 值列表03、记录头信息 4.2.2 记录的真实数据 4.3 Dynamic 和 Compressed 行格式4.3.1 字段的长度限制4.3.2 行溢出4.3.3 Dynamic 和 Compressed 行格式 4…...

【Qt学习笔记】(四)Qt窗口
Qt窗口 1 菜单栏1.1 创建菜单栏1.2 在菜单栏中添加菜单1.3 创建菜单项1.4 在菜单项之间添加分割线1.5 给菜单项添加槽函数1.6 给菜单项添加快捷键 2 工具栏2.1 创建工具栏2.2 设置停靠位置2.3 设置浮动属性2.4 设置移动属性2.5 添加 Action 3 状态栏3.1 状态栏的创建3.2 在状态…...

入侵和攻击模拟 (BAS) 技术应用实践
文章目录 前言一、实施BAS的必要性二、实施BAS的关键步骤1、识别网络中的脆弱区域2、创建基线安全模型3、选择合适的BAS工具4、进行模拟攻击测试5、分析结果并改进三、BAS实施中的挑战1、组织的专业知识和能力有限2、改变传统工作流程3、安全预算不足4、难以与现有安全基础设施…...

数据结构(七)——线性表的基本操作
🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉 在csdn获奖荣誉: 🏆csdn城市之星2名 …...

Python 系统学习总结(基础语法+函数+数据容器+文件+异常+包+面向对象)
🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 六天时间系统学习Python基础总结,目前不包括可视化部分,其他部分基本齐全,总结记录࿰…...

汽车碰撞与刮伤的实用维修技术,汽车的车身修复与涂装修补教学
一、教程描述 本套汽车维修技术教程,大小7.44G,共有60个文件。 二、教程目录 01-汽车车身修复教程01-安全规则(共3课时) 02-汽车车身修复教程02-汽车结构(共3课时) 03-汽车车身修复教程03-汽车修复所使…...

网络信息安全:nginx漏洞收集(升级至最新版本)
网络&信息安全:nginx漏洞收集(升级至最新版本) 一、风险详情1.1 nginx 越界写入漏洞(CVE-2022-41742)1.2 nginx 缓冲区错误漏洞(CVE-2022-41741)1.3 nginx 拒绝服务漏洞(CNVD-2018-22806) 二、nginx升级步骤 &…...

【go从入门到精通】go包,内置类型和初始化顺序
大家好,这是我给大家准备的新的一期专栏,专门讲golang,从入门到精通各种框架和中间件,工具类库,希望对go有兴趣的同学可以订阅此专栏。 go基础 。 Go文件名: 所有的go源码都是以 ".go" 结尾&…...

【项目实战】高并发内存池(仿tcmalloc)
【项目实战】高并发内存池(仿tcmalloc) 作者:爱写代码的刚子 时间:2024.2.12 前言: 当前项目是实现一个高并发的内存池,它的原型是google的一个开源项目tcmalloc,tcmalloc全称 Thread-Caching M…...

计算机等级考试:信息安全技术 知识点一
美国联邦政府颁布数字签名标准(Digital Signature Standard,DSS)的年份是1994美国联邦政府颁布高级加密标准(Advanced Encryption Standard,AES)的年份是2001产生认证码的函数类型通常有3类:消息加密、消息认证码和哈希函数。自主访问控制,Di…...

开展庆2024年“三八”国际妇女节系列纪念活动怎样向媒体投稿?
为了向媒体投稿,庆祝2024年“三八”国际妇女节系列纪念活动,你可以遵循以下步骤: 策划与准备: 确定纪念活动的主题和目标,例如提升女性权益、表彰女性成就、促进性别平等。 策划一系列活动,如研讨会、表彰仪式、展览、讲座等,确保内容丰富多样。 准备相关的背景资料、活动介…...

SpringBoot-集成Elasticsearch
jsoup:https://jsoup.org/ 依赖 <!--解析网页--> <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.10.2</version> </dependency> <dependency><groupId>c…...

数据结构之顺序表及其实现!
目录 编辑 1. 顺序表的概念及结构 2. 接口的实现 2.1 顺序表的初始化 2.2 检查顺序表容量是否已满 2.3 顺序表的尾插 编辑 2.4 顺序表的尾删 2.5 顺序表的头插 2.6 顺序表的头删 2.7 顺序表在pos位置插入 2.8 顺序表在pos位置删除 2.9 顺序表的查找 2.10 顺…...

Vue组件间通信实践
Vue组件间通信实践 🌟 前言 欢迎来到我的小天地,这里是我记录技术点滴、分享学习心得的地方。📚 🛠️ 技能清单 编程语言:Java、C、C、Python、Go、前端技术:Jquery、Vue.js、React、uni-app、EchartsUI设…...

FISCO BCOS区块链平台上的智能合约压力测试指南
引言 在当今的分布式系统中,区块链技术因其去中心化、安全性和透明性而备受关注。随着区块链应用的不断扩展,对其性能和稳定性的要求也越来越高。因此,对区块链网络进行压力测试显得尤为重要。 目录 引言 1. 配置FISCO BCOS节点 2. 安装和…...

LabVIEW流量控制系统
LabVIEW流量控制系统 为响应水下航行体操纵舵翼环量控制技术的试验研究需求,通过LabVIEW开发了一套小量程流量控制系统。该系统能够满足特定流量控制范围及精度要求,展现了其在实验研究中的经济性、可靠性和实用性,具有良好的推广价值。 项…...

Python 爱心代码
Python爱心代码是一种用Python编程语言实现的图形化表达方式,可以通过一系列的代码来绘制出一个爱心形状。以下是一个简单的Python爱心代码示例: import turtle # 设置画布和画笔 canvas turtle.Screen() canvas.bgcolor("black") pen turt…...

linux kernel物理内存概述(五)
目录 概述 一、快速路径分配 1、get_page_from_freelist 2、rmqueue()函数 二、慢速路径分配 1、分配流程 三、direct_compact 概述 物理内存分配步骤 1、初始化,参数初始化 2、内存充足,快速分配 get_page_from_freelist 3、内存压力大,慢速…...

3分钟带你搞定电流采样电阻选型
大家好,我是砖一。 一,电流采样电阻的介绍 电流检测电路常用于高压短路保护、电机控制、DC/DC换流器、系统功耗管理、二次电池的电流管理、蓄电池管理等电流检测等场景。 比如,对于电机来说,电流检测电路是为了检测电流功能有比…...

代码随想录算法训练营Day52 | 300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组
300.最长递增子序列 这题的重点是DP数组的定义,子序列必须以nums[i]为最后一个元素,这样dp数组中后面的元素才能与前面的元素进行对比 1、DP数组定义:dp[i]表示以nums[i]为最后一个元素的最长递增子序列长度 2、DP数组初始化:全部…...

一个测试OOM killer的程序未触发OOM所带来的问题
概述 我们知道,由于MMU实现了虚拟地址到物理地址的转换,所以我们在申请虚拟地址时往往可以申请一大块内存,这实际上是对资源的有效利用,毕竟只有内存真正被投入使用时(如memset)才会实际分配物理内存&…...

SanctuaryAI推出Phoenix: 专为工作而设计的人形通用机器人
文章目录 1. Company2. Main2.1 关于凤凰™ (Phoenix)2.2 关于碳™(Carbon)2.3 商业化部署2.4 关于 Sanctuary Corporation 3. My thoughtsReference彩蛋:将手机变为桌面小机器人 唯一入选《时代》杂志 2023 年最佳发明的通用机器人。 称机器人自主做家务的速度和灵…...