F429驱动TFT裸屏时LTDC

news2024/12/25 0:32:46

F429驱动TFT裸屏时LTDC时序配置说明(以V6的7寸驱动为例)
说明:
1. 经常有兄弟问到这个问题,所有这里就写一个帖子。
2. 基础知识学习:
TFT LCD的DE模式和HV模式的区别:http://bbs.armfly.com/read.php?tid=18525
3. 7寸RGB屏规格书 

 7寸屏高亮(800x480)GL070009T0-40 3.5H.pdf (564 K)
7寸RGB屏使用的source driver ic OTA7001手册  DATA_SHEET_OTA7001A_V06.pdf (914 K)
(下载地址:http://bbs.armfly.com/read.php?tid=18528)
(下载地址:http://bbs.armfly.com/read.php?tid=18528)
(下载地址:http://bbs.armfly.com/read.php?tid=18528)
======================================================
LTDC时序配置主要分三步就可以完成
1. 行同步,场同步,DE的极性配置
2 CLK时钟配置
3. 时序参数配置。
下面分别简单的说明下
======================================================
1. 行同步,场同步,DE的极性配置
这个的配置要看OTA7001手册上面的时序图,对于DE模式,行同步和场同步的极性配置为高或者为低均可。 我们这里使用的就是DE模式。所以主要配置DE的极性,这里要特别注意一个小问题,看时序图是DE高电平时数据有效,但是配置的时候要设置为低电平才可以。
下面的是V6开发板配套的7寸裸屏使用的source driver ic OTA7001

实际配置F429的工程时,将DE配置为低有效才是上面截图的效果,这个问题的确是有些奇葩了。
大家使用的时候也特别注意。

/* 配置信号极性 */
LTDC_InitStruct.LTDC_HSPolarity = LTDC_HSPolarity_AL; /* HSYNC 低电平有效 */
LTDC_InitStruct.LTDC_VSPolarity = LTDC_VSPolarity_AL; /* VSYNC 低电平有效 */
LTDC_InitStruct.LTDC_DEPolarity = LTDC_DEPolarity_AL; /* DE 低电平有效 */
LTDC_InitStruct.LTDC_PCPolarity = LTDC_PCPolarity_IPC;
================================================
上面黄色的波形是DE信号,下面的是行同步信号HSync

下面是将信号水平放缩了下

===========================================================
2. 时钟的配置
关于LTDC可以输出多大的时钟,在OTA7001手册上面有说明,通过函数
RCC_PLLSAIConfig(420, 2, 7);
RCC_LTDCCLKDivConfig(RCC_PLLSAIDivR_Div2); 配置即可,配置的大小是多少呢,简单举个例子
--------------------------------
上面的配置中PLLSAI_N = 420, PLLSAI_R = 7 , RCC_PLLSAIDivR = 2:
首先,输入时钟 PLLSAI_VCO Input = HSE_VALUE / PLL_M = 8M / 8 = 1MHz
输出时钟 PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAI_N = 1 * 400 = 420MHz
PLLLCDCLK = PLLSAI_VCO Output / PLLSAI_R = 420 / 7 = 60MHz
最后,LTDC 时钟 = PLLLCDCLK / RCC_PLLSAIDivR = 60/ 2 = 30MHz



===========================================================
3. 时序参数配置
时序参数的配置也比较容易,其实就是先看F429参考手册上面的公式说明,说是公式,其实就是简单的加减法。然后将OTA7001的参数带到这个公式就OK了。又因为手册一般都是给出了参数的最小值,典型值和最大值,大家可以根据实际情况做简单的调整即可。需要用到的参数
uint16_t Width, Height, HSYNC_W, VSYNC_W, HBP, HFP, VBP, VFP;

* Horizontal Synchronization (Hsync) 对应后面的变量HSYNC_W
* Horizontal Back Porch (HBP) 对应后面的变量HBP
* Active Width 对应后面的变量Width
* Horizontal Front Porch (HFP) 对应后面的变量HFP
*
* Vertical Synchronization (Vsync) 对应后面的变量VSYNC_W
* Vertical Back Porch (VBP) 对应后面的变量VBP
* Active Heigh 对应后面的变量Heigh
* Vertical Front Porch (VFP) 对应后面的变量VFP
----------------------------------------------
3.1 F429参考手册上面的公式


---------------------------------------------------
3.2 从OTA7001上面获取这些参数


---------------------------------------------------
3.3 配置如下参数
通过这些参数,直接给变量赋值,我们这里直接取典型值,如果大家实际测试的时候效果不是很好,怎么知道效果不好呢,最简单的方式就是可以在显示屏的边界显示一个方框,看看是否有错位。

---------------------------------------------------
3.4 参数设置好了,直接带公式并跟行同步,场同步和DE一起初始化

/* 配置LTDC的同步时序 */
LTDC_InitStruct.LTDC_HorizontalSync = HSYNC_W;
LTDC_InitStruct.LTDC_VerticalSync = VSYNC_W;
LTDC_InitStruct.LTDC_AccumulatedHBP = LTDC_InitStruct.LTDC_HorizontalSync + HBP;
LTDC_InitStruct.LTDC_AccumulatedVBP = LTDC_InitStruct.LTDC_VerticalSync + VBP;
LTDC_InitStruct.LTDC_AccumulatedActiveW = Width + LTDC_InitStruct.LTDC_AccumulatedHBP;
LTDC_InitStruct.LTDC_AccumulatedActiveH = Height + LTDC_InitStruct.LTDC_AccumulatedVBP;
LTDC_InitStruct.LTDC_TotalWidth = LTDC_InitStruct.LTDC_AccumulatedActiveW + HFP;
LTDC_InitStruct.LTDC_TotalHeigh = LTDC_InitStruct.LTDC_AccumulatedActiveH + VFP;

LTDC_Init(&LTDC_InitStruct);

 

 

 

 

 

 

 

 

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

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

相关文章

Kafka搭建部署

解压文件 启动zookeeper 配置kafka环境变量 查看Kafka的版本内容 分发Kafka文件到slave1、slave2 修改server.properties文件 在Master、slave1和slave2节点上分别启动Kafka 在Master节点上执行如下命令来创建Topic 解压文件 tar -zxvf kafka_2.12-2.4.1.tgz -C /opt …

2022(一等奖)基于哨兵2影像的典型地表参量和红边指数的特征空间石漠化遥感监测模型

作品介绍 1 监测模型设计概述 (1)应用背景 石漠化是危害人们安全的自然灾害之一,也是土壤荒漠化其中的一种。我国西南地区是全球石漠化现象最严重的地区之一,长期的人为干预使得生态环境变得非常敏感,地表植被破坏严…

升级系统到Proxmox VE 8

Proxmox VE 8.0正式版发布 Proxmox VE 需要升级到7.4,验证一下。 rootpve99:~# pveversion pve-manager/7.4-13/46c37d9c (running kernel: 5.13.19-6-pve) rootpve99:~# pve7to8 CHECKING VERSION INFORMATION FOR PVE PACKAGES Checking for package updates.…

【实战与杂谈】本地搭建自己的游戏王卡片生成器

声明: 1.游戏王卡片制作器本身就是由【kooriookami】开发的,用于DIY卡片因此我只是原有功能再现并不会追加新功能 2.其次数据和卡图均来源于网络,因此我也只提供网络能获取该内容的途径,并不会预先准备好 最近一直没有时间看回复…

2023数字化产品经理如何建立自己的护城河线下演讲-上

来源:三爷出席《人人都是产品经理》2023数字化产品经理大会演讲实录 各位朋友们,大家下午好,非常高兴呢能受到人人都是产品经理官方的邀请,今天能有这样一个机会站在这里和大家做一个简单的分享。 ​ 编辑 添加图片注释&#xf…

C#/.Net的多播委托到底是啥?彻底剖析下

前言 委托在.Net里面被托管代码封装了之后,看起来似乎有些复杂。但是实际上委托即是函数指针,而多播委托,即是函数指针链。本篇来只涉及底层的逻辑,慎入。 概括 1.示例代码 public delegate void ABC(); //委托写在类的外面 publi…

Linux 多路转接 —— poll

目录 传统艺能😎poll🤣struct pollfd🤣 poll 服务器😘PollServer类😁运行服务器😒事件处理😁 服务器测试😂 传统艺能😎 小编是双非本科大二菜鸟不赘述,欢迎米…

【初识C语言(4)】操作符

文章目录 1. 算术操作符2. 移位操作符3. 位操作符4. 赋值操作符5. 单目操作符6. 关系操作符7. 逻辑操作符8. 条件操作符9. 逗号表达式10. 下标引用、函数调用和结构成员 1. 算术操作符 - * / %加 减 乘 除 求余 加减乘 都很简单没啥可讲的,这里主要讲解 除 和 求余。…

nginx主配置文件及实操

文章目录 一、nginx主配置文件nginx.conf1.认识nginx服务的主配置文件2.全局配置3.I/O事件配置4.HTTP配置5.检查配置文件是否正确6.浏览器测试 二、实战操作1.nginx的访问状态统计2.基于授权的访问控制:3.基于客户端访问设置(设置…

驱动开发:内核中进程与句柄互转

在内核开发中,经常需要进行进程和句柄之间的互相转换。进程通常由一个唯一的进程标识符(PID)来标识,而句柄是指对内核对象的引用。在Windows内核中,EProcess结构表示一个进程,而HANDLE是一个句柄。 为了实…

【跑实验04】CLIP安装报错,setup.py如何安装,图像编码器(image_encoder)的使用(含源代码)

文章目录 一、如何解决CLIP安装报错二、setup.py如何安装?三、图像编码器(image_encoder)的使用 一、如何解决CLIP安装报错 我第一次尝试安装CLIP,采用的方法是pip的方法: pip install clip但是安装后,无法使用: 明确…

代码随想录二刷 day31 | 贪心之 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

day31 理论基础什么是贪心贪心算法的套路一般解题步骤 455.分发饼干376. 摆动序列情况一:上下坡中有平坡情况二:数组首尾两端情况三:单调坡度有平坡 53. 最大子序和 理论基础 什么是贪心 贪心的本质是选择每一阶段的局部最优,从…

vue3基础 ---- 上

目录 一.vue3介绍 1. 官网初识 2.环境搭建 2-1 线上尝试 2-2 CDN使用 2-3 Vue CLI 2-4 Vite 二.vue3基础 1.模板语法 1-1 我的第一个vue应用 1-2 应用背后的真相 1-3 模板语法-新的皮肤来了 1-4 Todolist-来个案例 1-5 点击变心案例 - 是变色 1-6 v-html- 模板…

【libdatachannel】pycharm运行streamer的信令服务及streamer与js客户端本机联调2

后面与ws服务器一直有ping pong2023-06-23 10:30:27.915 VERB [24456] [rtc::impl::PollService::runLoop@178] Entering poll, timeout=10000ms 2023-06-23 10:30:27.916 VERB [24456] [rtc::impl::PollServ

有了电脑怎么搞?我有办法(第一部分)-涵子的个人想法

上一次会选电脑后,今天我们来学习一下电脑的整理方法。今天满满的都是干货,请仔细阅读!注意粗体内容。 目录 一、磁盘太乱咋整? 1.1.磁盘是个啥?为啥乱? 1.2.分区怎么分? 1.3.还是分不清怎…

Java类加载机制:从字节码到对象的奇妙之旅

目录 什么是类加载机制? 类加载顺序 类加载顺序图 双亲委派模型 双亲委派模型示意图 如何打破双亲委派模型? 要想学好java,首先得知道它是什么,怎么运行的,怎么加载的,运行的是个什么东西&#xff0c…

JVM内存模型及JAVA程序运行原理

文章目录 JVM简介JVM的内存结构方法区堆栈程序计数器 JAVA程序在JVM内是如何执行的 JVM简介 JVM------Java Virtual Machine.JVM是Java平台的基础,与实际机器一样,它有自己的指令集(类似CPU通过指令操作程序运行),并在…

Temu、shopee、Lazada、Newegg、美客多销量增长黑科技!

在跨境电商的激烈竞争环境下,2023年伴随着疫情的解封,电商业务重新焕发生机。卖家们不应该只在一个平台投放所有资源,而应多元化地进行平台选择。实际上,许多小型电商平台如Wish、敦煌等也能带来大量业务,而且竞争压力…

如何保证API接口的安全性

API接口的安全性是非常重要的,以下是一些保证API接口安全性的措施: 用户认证、授权:接口的调用者必须提供有效的身份认证信息,包括用户名、密码、密钥等,以保证接口的调用者的身份有效性。同时,需要在接口的…

亚马逊云科技中国峰会:Amazon DeepRacer——因构建 而可见

文章目录 一、前言二、 亚马逊云科技中国峰会大会亮点三、Amazon DeepRacer 赛事火热开启四、Amazon DeepRacer 深度体验五、2023亚马逊云科技中国峰会——Amazon DeepRacerAmazon DeepRacer 中国峰会总决赛Girls in Tech Show高校联动,寻找未来“生力军”Amazon De…