找回密码
 立即注册
查看: 3425|回复: 42

刷屏,画重点:DMA 需要 RTOS!38ms,DMA-i8080并口8位刷TFT320*240彩屏@ILI9341

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-9-18 13:28:08 | 显示全部楼层 |阅读模式
刷屏,画重点DMA 需要 RTOS
38ms,DMA-i8080并口  8位刷TFT320*240彩屏
===@ILI9341,  Ai8051U 实验箱
19ms,DMA-i8080并口16位刷
TFT320*240彩屏
===@ILI9341,  Ai8051U 实验箱
最近在论坛上看到一些关于TFT刷屏的贴子,
前几天买了个20元的TFT,正好到货了,也来试一试 !!!
首先来聊两个话题,分别为 “刷屏时间” 和 “DMA释放CPU”。
后面再简单介绍代码。
刷屏时间:
条件:40M主时钟,DMA-8位并口,
仅计算刷屏时间,不计算准备数据的时间
代码为红绿蓝三基色320*240整屏循环刷,
起始和结束信号用IO输出,接入示波器直接看。
结论,320*240整屏刷屏时间为: 38ms
理论上用16位并口还可以再提升一倍

微信图片_20240918123807.jpg

关于DMA释放CPU:
前段时间在论论上看到  “发现启动DMA传输后,要等待传输完成
这样一种论调,似乎DMA真正的作用成摆设了。
其实并非如此:以下的代码为循环播放两个图片来模拟动画,
可以看到,CPU 使用率 始终保持到 1%
截图202409181248419751.jpg


DMA释放CPU结论
如果使用了RTOS,则DMA的作用非常大。
数据传输能力不逊色于CPU本身!
祼机用DMA性能提升确实不大,
要么是周期性的DMA,不需要查询上一次DMA是否已经结束,
要么就是等待上次DMA结束,可以看出限制性能的是祼机, 而不是DMA本身.

代码介绍
力求最简的方式呈现,只体现基础代码,或许可以成为您项目的起点。
(部分来源为卖家例程)

先看DMA配制:没用库,就5行搞定DMA配制。
void DMA_LCD_Config(void)
{
    DMA_LCM_CFG     = 0x8F;
    DMA_LCM_ITVH    = 0x00;
    DMA_LCM_ITVL    = 0x00;
    DMA_LCM_STA     = 0x00;
    DMA_LCM_CR      = 0X80;
}

TFT配制,也是5行搞定:
void LCM_Config(void)
{
    LCMIFCFG    = 0x00;
    LCMIFCFG2   = 0x25;
    LCMIFSTA    = 0x00;
    LCMIFPSCR   = 0x00;
    LCMIFCR     = 0x80;
}

/*------------------------------------------------------------------------------
TASK_B, 刷屏或刷动画,基于uC/OS-II  任务
------------------------------------------------------------------------------*/
void TASK_B(void *ppdata)
{
    LCD_Clear(0XFFFF);
    while(1)
    {
        //循环播放两副图片 模拟动画
        LCD_SetWindows(140,90,200-1,180-1);
        DMA_LCM_Write(IMG_DATA1,sizeof(IMG_DATA1));
        OSTimeDly(200);
        LCD_SetWindows(140,90,200-1,180-1);
        DMA_LCM_Write(IMG_DATA2,sizeof(IMG_DATA2));
        OSTimeDly(200);
/*  
        //RGB 三基色循环刷整屏
        LCD_Clear(RED);
        OSTimeDly(500);
        LCD_Clear(GREEN);
        OSTimeDly(500);
        LCD_Clear(BLUE);
        OSTimeDly(500);
*/
    }
    if(ppdata);
}


代码:
TFT(ILI9341)@AI8051U实验箱.rar (231.69 KB, 下载次数: 156)

点评

官方是 29.3帧/秒,就是35mS/帧  发表于 2024-11-10 09:22
2 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-10-1 17:36:12 | 显示全部楼层
冲哥淘宝店有TFT320*240触摸彩屏配套了
截图202410011735531765.jpg
https://www.stcaimcu.com/forum.p ... 0511&pid=109185

回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-11-10 09:31:53 | 显示全部楼层
截图202411100931371788.jpg

https://www.stcaimcu.com/forum.p ... id=10511&pid=103755


Ai8051U-LQFP48  比普通 M0/M3,如 32F103C8T6 强太多的地方:
1,Ai8051U有TFPU@120MHz, 算力比他强, uS级硬件三角函数/浮点运算器;
2,Ai8051U的抗干扰比他强;
3,  Ai8051U的内部复位是专业级的复位电路,彻底省外部复位;
4,  Ai8051U的内部时钟完全满足串口通信要求,4组串口;
5,Ai8051U-LQFP48有 QSPI, i8080/M6800-TFT 接口,32F103C8T6没有;
6,  Ai8051U的PWM支持硬件移相@120MHz
7,Ai8051U是 34K SRAM
8,Ai8051U是 自带硬件USB, 1个芯片就能直接USB连接电脑仿真/下载,全球唯一


Ai8051UUSB 型 1T 8051,支持32位和8位指令集, LQFP48-RMB2.3
===直接 USB下载 / USB仿真,1个芯片搞定
管脚兼容天王级别的:  89C52RC,  12C5A60S2
要兼容 8位8051指令集,  可以用 Keil C51/IAR/SDCC 编译器
===就相当于更强大的 8H8K64U
兼容 32位8051指令集可以用 Keil C251 编译器,双核兼容设计

===就相当于更强大的 32G12K128, 32G8K64
34K SRAM(2K edata, 32K xdata), 64K Flash
TFPU@120MHz, 硬件浮点/硬件三角函数 运算器
DMA支持PWM, DMA支持外设直接到外设, P2P

120MHz-PWM支持硬件移相,16位PWM; 真12位ADC
USB, 4组串口,12位ADC, 轨到轨比较器
QSPI, SPI, I2S, I2C,  TFT-i8080/M6800 接口
PDIP40,LQFP44,LQFP48
CPU32@42MHz
回复 支持 反对

使用道具 举报 送花

4

主题

12

回帖

184

积分

注册会员

积分
184
发表于 2024-9-18 18:37:07 来自手机 | 显示全部楼层
楼主研究一下在刷整屏时出现的斜纹怎么解决,
查资料说是屏读写不同步造成的,
竖屏横用就会出现斜向撕裂,
一直没找到好的方法

点评

啥斜纹呀,我不知道这是什么东西, 是眼晴看到的, 还是手机拍到的? 如果眼睛看上去没有,手机拍照有, 这种情况属于正常, 适当的拉远或返调速摄像一般都可消除. 同为电子产品, 像机扫描和和屏自身的扫描可能会有一些相关  详情 回复 发表于 2024-9-18 19:12
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-9-18 19:12:10 | 显示全部楼层
本帖最后由 tzz1983 于 2024-9-18 19:22 编辑
wa*** 发表于 2024-9-18 18:37
楼主研究一下在刷整屏时出现的斜纹怎么解决,查资料说是屏读写不同步造成的,竖屏横用就会出现斜向撕裂,一 ...

啥斜纹呀,我不知道这是什么东西, 是眼晴看到的, 还是手机拍到的?
如果眼睛看上去没有,手机拍照有, 这种情况属于正常, 适当的拉远或调近摄像头一般都可消除.
同为电子产品, 像机扫描和和屏自身的扫描可能会有一些频率相关性
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:486
  • 最近打卡:2025-05-01 10:50:05
已绑定手机

6

主题

285

回帖

881

积分

荣誉版主

积分
881
发表于 2024-9-18 19:56:24 | 显示全部楼层
我对彩屏不熟悉,也正在玩。
下面都是AI8051U@40MHz,
一个是软件SPI驱动ST7789-320X240,
另一个是8位并口驱动ILI9325-320X240单色刷屏。
抛开型号不同,明显是并口比SPI串口快很多。
没有使用DMA硬件SPI等,都是软件的,

屏幕配套的原始例程。待时间再优化看看...

80

20240913_222825.mp4

15.4 MB, 下载次数: 101

点评

SPI接口省端口, 速度也不错. 是非常实用的接口. 实际应用时,软件优化后, 大多数时候是不需要全屏刷新的, 比如某个控件只占很小一块面积, 刷新就特别快.  详情 回复 发表于 2024-9-18 20:43
1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
(仅供参考,欢迎探讨)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:238
  • 最近打卡:2025-05-01 13:11:43

22

主题

283

回帖

901

积分

高级会员

积分
901
发表于 2024-9-18 19:59:03 来自手机 | 显示全部楼层
REMOVEUNUSED
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-9-18 20:43:05 | 显示全部楼层
本帖最后由 tzz1983 于 2024-9-18 20:44 编辑
autop*** 发表于 2024-9-18 19:56
我对彩屏不熟悉,也正在玩。
下面都是AI8051U@40MHz,
一个是软件SPI驱动ST7789-320X240,

SPI接口省端口, 速度也不错. 是非常实用的接口.

实际应用时,软件优化后, 大多数时候是不需要全屏刷新的,
比如某个控件只占很小一块面积, 刷新就特别快.

我也是头回玩彩屏哈, 这是我第一块买的彩屏!
平常都是工业应用, 用个KS0108的  128*64, 了不得了, 哈哈
回复 支持 反对

使用道具 举报 送花

4

主题

12

回帖

184

积分

注册会员

积分
184
发表于 2024-9-18 21:02:10 来自手机 | 显示全部楼层
tzz1983 发表于 2024-9-18 19:12
啥斜纹呀,我不知道这是什么东西, 是眼晴看到的, 还是手机拍到的?
如果眼睛看上去没有,手机拍照有, 这种情 ...

不是手机拍摄问题,直接看就有,两个大色块切换的时候
Screenshot_20240918_205054_com.tencent.mobileqq_edit_466597912559662.jpg

点评

另一种解释就是, 只要你够快, 快要摄像机没法捕捉到切换过程, 那就不会有所谓的"斜纹" 一般达到100以上的帧频, 就不会有"斜纹"了. 另外你看一下我主贴第二个视频, 就没有"斜纹", 这就是因为刷新的地方小, 速度提上  详情 回复 发表于 2024-9-18 21:37
你抓的图片是我的吧,这个就是相机拍出来的, 实际没有这个条纹, 这个就是屏暮在刷新, 而相机正在扫描, 两组组合就成这样了, [attachimg]57418[/attachimg] 看这张图, 这是坛友拍的, 或许是刷新速度不一样, 又或者  详情 回复 发表于 2024-9-18 21:30
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-9-18 21:30:24 | 显示全部楼层
本帖最后由 tzz1983 于 2024-9-18 21:32 编辑
wa*** 发表于 2024-9-18 21:02
不是手机拍摄问题,直接看就有,两个大色块切换的时候

你抓的图片是我的吧,这个就是相机拍出来的, 实际没有这个条纹,
这个就是屏暮在刷新, 而相机正在扫描, 两组组合就成这样了,

截图202409182124325951.jpg

看这张图, 这是坛友拍的, 或许是刷新速度不一样, 又或者是手机型号不一样,
同为绿色, 中间那段和上面就是不一样的,  有明显的界线, 所以, 所见并非所得.  
我们的眼睛时刻都在被电子设备“欺骗"着,
建议你 深刻的学习 点亮数码管的代码,
实际上, 同一时刻只有一个数码管是亮的, 但是我们看到的却是整排都亮的,
如果刷新率低, 用摄像机拍那就更惨了, 直接给你来段爆闪视频!

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-9-18 21:37:45 | 显示全部楼层
本帖最后由 tzz1983 于 2024-9-18 21:39 编辑
wa*** 发表于 2024-9-18 21:02
不是手机拍摄问题,直接看就有,两个大色块切换的时候

另一种解释就是, 只要你够快, 快到摄像机没法捕捉到切换过程, 那就不会有所谓的"斜纹"
一般达到100以上的帧频, 就不会有"斜纹"了.

另外你看一下我主贴第二个视频, 就没有"斜纹", 这就是因为刷新的地方小, 速度提上去了
回复 支持 反对

使用道具 举报 送花

4

主题

12

回帖

184

积分

注册会员

积分
184
发表于 2024-9-18 22:35:39 来自手机 | 显示全部楼层
请了解一下这篇文章

如何解决液晶屏TE(Tearing Effect,显示撕裂)问题 - 来自Madliar https://www.madliar.com/notebook/publish/i/caoliang.net/2023-11-29/-ru-he-jie-jue-ye-jing-ping-TETearingEffect-xian-shi-si-lie--wen-ti.html

点评

感谢这位坛友推荐的爽文,从中获益良多 从文中得知:屏幕像素的刷新方向由屏幕面板上的cof芯片决定。 虽然软件可以改变屏幕 纵向/横向,但只是改变了写入数据时的顺序,不能改变扫描方向。 实验时,同样的软硬件  详情 回复 发表于 2024-9-19 09:39
回复 支持 1 反对 0

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:33 , Processed in 0.795439 second(s), 130 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表