JDI LCD 驱动时序介绍

1. 引言

绝大多数 STM32 MCU 都可应用于图形界面,而且很多系列还内置图形硬件 LTDC,支持驱动 RGB 接口的 LCD。但是存在少数类型的 LCD,如 JDI 屏,除了 STM32L4P5 支持外,其它 MCU 只能根据屏的接口时序要求,用 GPIO 来驱动。本文会介绍 JDI 屏的接口时序与驱动过程。

2. LCD 介绍

LCD 显示屏由一系列像素组成,通常以“行像素值 x 列像素值”表示屏幕分辨率。比如320x240 表示此显示屏每行有 320 个像素点,每列有 240 个像素点。

色深是指显示屏每个像素能表示多少种颜色,通常用位来表示。比如 16 位色深对应RGB565,每个像素颜色用 2 个字节来表示,其中 RGB565 称作色彩格式。

RGB 接口屏通常支持 RGB565,RGB666,RGB888 等色彩格式,这些格式能显示的颜色种数较多,色彩丰富;而 JDI 接口支持的格式为 RGB222,总共支持 64 种颜色。

2.1. 接口时序

2.1.1. RGB 接口时序

RGB 显示屏包含以下信号:
图1.RGB 接口信号
在这里插入图片描述
在使用 RGB 接口时,RGB565 或 RGB888 格式,接口时序如下:
图2.RGB 接口时序图
在这里插入图片描述
像素数据在像素时钟 CLK 同步下顺序发送,其中 VSYNC 信号用于同步一整帧像素数据,HSYNC 信号用于同步一整行的像素数据,DE 信号表示像素数据有效。在 DE 有效时,每个 CLK 时钟周期会在 R[7 :0], G[7 :0], B[7 :0]信号上传输一个像素的颜色数据,用于指定此像素颜色。这样逐行扫描完所有像素后,就完成了一帧像素数据的传输,LCD 面板就会有对应的图像显示。

2.1.2. JDI 屏接口时序

JDI 屏的只包含 R[2 :1], G[2 :1], B[2 :1]信号,每个颜色 2Bit 数据,其它信号与前面 RGB接口类似,以下是 JDI 屏的信号列表:
图3.JDI 接口信号
在这里插入图片描述
以 240x240 分辨率的 JDI 圆形屏为例,驱动时序如下,其中 LPB 为颜色分量高 bit 位,SPB 为颜色分量低 bit 位:
图4.列信号时序
在这里插入图片描述
图5.行信号时序
在这里插入图片描述
JDI 屏的时序看起来与前面介绍的 RGB 时序非常相似,但是在传输像素数据上有很大差别,比如 RGB565 或 RGB888 在传输像素数据时,每个 CLK 传输一个像素数据,代表同一个像素的颜色值;而 JDI 屏则不同,主要有下面几点差异:

  1. VCK 的高低电平期间都要传输数据
  2. HCK 上升沿和下降沿都传输一次数据
  3. R1,R2…分别代表奇、偶像素点的一 bit 数据,即同一次 HCK 边沿传输的是两个像素点的一 bit 数据
  4. LPB, SPB 区分,在一个 VCK 周期,低电平传输 LPB,高电平传输 SPB,也就是传输每一行时,先传输此行所有像素的高 bit 数据,再传输此行所有像素的低 bit 数据,这样就刷新了一行像素数据

图6.240x240 屏驱扫描过程
在这里插入图片描述
从上图可以看出,在刷新 240x240 分辨率的 JDI 屏时,驱动扫描方式为从上到下,从左到右:

  1. 总共 240 行像素,但分别包含 240 行 LPB、SPB,总共 480 行刷新,对应列信号时序中 VCK 的 480 个高低电平
  2. R1,R2,G1,G2,B1,B2 为一组,分别对应奇偶两个像素 RGB 分量的各一 bit 数据
  3. 每行 240 个像素,在 HCK 双边沿传输,每边沿传输 2 个像素,因此总共 120 个边沿,60 个 HCK 周期即可传输完成一个 LPB 行或 SPB 行

另外,JDI 屏还包括 VCOM, FRP, XFRP 信号如下图,用 PWM 来输出 60Hz,50%占空比波形来驱动即可:
图7.VCOM/FRP/XFRP 信号时序
在这里插入图片描述

3. 测试与小结

结合以上时序,在 STM32U575 Nucleo 板上,使用 GPIO 驱动 JDI 屏能正常显示。在实际使用 JDI 屏时需要仔细查看时序,并结合时序参数来优化显示驱动。

文档中所用到的工具及版本
IAR 9.30.1
LAT 中的附件
test_U575_Nucleo_JDI.7z


本文档参考ST官方的《【应用笔记】LAT1313+JDI+LCD+驱动时序介绍》文档。
参考下载地址:https://download.csdn.net/download/u014319604/89083017

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数学与人工智能:共舞于数字时代的奥秘

数学,这一源远流长的学科,长久以来一直为人类社会的发展与进步提供了坚实的基础。与此同时,随着科技的迅猛发展,人工智能这一新兴领域正逐渐改变着我们的生活方式。这两者之间,似乎存在着一种难以言喻的紧密联系。本文…

hbuilderX创建的uniapp项目转移到vscode

场景:一直使用hbuilderX开发的朋友想转移到vscode获取更好的TypeScript支持,所以想把整个项目目录拖到vscode进行开发,但发现运行不了,提示没有package.json等,并且不能执行pnpm命令 首先,我们先来看一下h…

软件测试(测试用例详解)(三)

1. 测试用例的概念 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合。 测试环境操作步骤测试数据预取结果 测试用例的评价标准: 用例表达清楚,无二义性。。用例可操作性强。用例的输入与输出明确。一条用例只有…

力扣---反转链表 II ***

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff1a;[1,4,3,…

【MATLAB】GA_BP神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 基本定义 GA_BP神经网络时序预测算法是一种结合了遗传算法(GA)和反向传播(BP)神经网络的时序预测方法。它利用了遗传算法的全局搜索和优化能力&#xff0c;以及BP神经网络的学习和逼近能力&#xff0c;可以更有效地预…

Ubuntu中文输入法设置指南:从添加输入源到自定义设置的完整步骤

文章目录 Ubuntu设置中文输入法教程步骤1&#xff1a;打开“设置”应用程序步骤2&#xff1a;进入“区域与语言”设置步骤3&#xff1a;添加中文输入源步骤4&#xff1a;选择中文输入法步骤5&#xff1a;设置默认输入源&#xff08;可选&#xff09;步骤6&#xff1a;使用中文输…

C++算法 —— 前缀和

一、【模版】前缀和 1.链接 【模板】前缀和_牛客题霸_牛客网 (nowcoder.com) 2.描述 3.思路 前缀和的思想其实就是一种简单的动态规划&#xff0c;以i位置记录从头位置到i位置的和&#xff0c;然后间接的求一段连续区间的数组和&#xff0c;时间复杂度是O&#xff08;n&…

解密项目管理工具数据安全:防火防盗,保密有招

相关数据显示&#xff0c;2021年中国数字经济规模总量达到45.5万亿元&#xff0c;占到国内GDP总量的39.8%。数字经济已经渗入我们工作生活的方方面面&#xff0c;项目管理工具就是其中之一&#xff0c;在数据安全备受重视的今天如何保证项目管理工具的数据安全性&#xff1f;Zo…

达梦disql登录数据库显示“未连接”

问题&#xff1a;达梦数据库在使用disql登录时&#xff0c;显示“未连接”。 指定了IP和端口号还是连接异常。 [dmdbatest ~]$ disql sysdba/Dameng123 disql V8 SQL> select * from v$instances; 未连接 SQL> exit [dmdbatest ~]$ disql sysdba/Dameng123localhost:52…

C++运算符重载如何模拟数学表达式,或模拟Python sympy和numpy

在人工智能数学基础一书中&#xff0c;下面是一题Python求函数极限的例子&#xff1a; 【例2.6】使用Python编程求 lim( x → 1) (x^2 - 1 / x - 1) ————————————————————————————————————————— import sympy from sympy import oo…

医疗大数据现状及发展问题探讨

医疗大数据&#xff0c;作为近年来备受瞩目的领域&#xff0c;其发展和变化的速度之快令人瞩目。从最初的概念炒作到如今的实际应用&#xff0c;短短三年多的时间&#xff0c;我们已经见证了医疗大数据领域的巨大变革。 临床数据的公开透明&#xff0c;为医疗大数据的利用提供…

漫谈GIS和空间数据库技术

1 GIS和CAD有啥区别 地理信息系统&#xff08;GIS&#xff09;和计算机辅助设计&#xff08;CAD&#xff09;是两种不同的技术&#xff0c;它们在功能、应用和数据处理方面有着显著的区别。以下是根据搜索结果得出的GIS和CAD的主要区别&#xff1a; 1. **数据处理的侧重点不同…

金陵科技学院软件工程学院软件工程专业

感兴趣的小伙伴可以私信我哦~~ 是笔者写的各种高质量作业和实验哦~~ 感兴趣的小伙伴可以私信我哦~~ 是笔者写的各种高质量作业和实验哦~~ 感兴趣的小伙伴可以私信我哦~~ 是笔者写的各种高质量作业和实验哦~~ 感兴趣的小伙伴可以私信我哦~~ 是笔者写的各种高质量作业和实验哦…

【其他】灾害预警,科技助力:手机地震预警功能设置指导

22024年4月3日7时58分在台湾花莲县海域遭遇了一场7.3级的强烈地震&#xff0c;震源深度12公里&#xff0c;震中位于北纬23.81度&#xff0c;东经121.74度&#xff0c;距台湾岛约14公里。震中5公里范围内平均海拔约-3560米。这场突如其来的自然灾害给当地居民的生活带来了巨大的…

从永远到永远-Git中tag的使用

Git中tag的使用 1.tag的作用2.使用背景3.tag的使用1.种类2.创建标签3.查看标签3.推送标签4. 删除标签: 4.idea可视化操作1.创建标签2.推送标签 999 删除、指定commit、验证暂时不表 1.tag的作用 Tag(标签)用来记录某个特定的提交(commit)。一个 Tag 被用来标记重要的历史节点&…

物联网实战--入门篇之(八)嵌入式-空气净化器

目录 一、风扇调速 二、通讯协议 三、净化器运行逻辑 一、风扇调速 单片机是不能直接驱动电机的&#xff0c;因为主芯片的驱动电流比较小(50mA左右)&#xff0c;他们之间正常还要有个电机驱动器&#xff0c;常用的有TB6612、L298和L9110等&#xff0c;目前项目用的这个电机它…

猫头虎技术分享 || 断网了,还能ping127.0.0.1吗?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【数据分析面试】6.计算对话总数(SQL)

题目&#xff1a;计算对话总数 给定了名为 messenger_sends 的消息发送表格&#xff0c;找出总共有多少个唯一的对话。 注&#xff1a;在某些记录中&#xff0c;receiver_id 和 sender_id 从初始消息中互换了。这些记录应视为同一个对话。 示例&#xff1a; 输入&#xff1…

Linux进程控制 Part 1

Linux进程控制 文章目录 Linux进程控制Linux系统任务管理的方法PCB的原型 Linux查看获取进程id的方式现象解释 Linux 进程的状态首先学习查看进程状态的命令常见的几种状态僵尸进程的危害 孤儿进程&#xff1a; 进程优先级概念&#xff1a;PRI and NI查看进程优先级的命令 环境…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--php函数

php函数 wordpress会封装一部分函数&#xff0c;比如bloginfo该函数的作用是直接调用你设置的你的网站的名称 示例 This is our amazing custom theme <?php echo 22; function myfirstfunction(){ echo 33; echo "<p>Hello ,this is my first function</…