您尚未登录。

楼主 #1 2020-12-05 20:15:43

f_Endman
会员
注册时间: 2020-04-16
已发帖子: 54
积分: 136

F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

事情还要从我上淘宝捡便宜买了一块ST7789主控的LCD开始说起(不是广告),然后折腾半天才发现这玩意需要用SPI进行初始化QAQ。。(以下省略N字)

在翻F1C100s手册的时候偶然间看到TCON的数据源中写到了“DMA565”,然后再一次在偶然间翻DMA的手册时发现F1C100有个叫DDMA的东西可以用DRQ的形式向TCON发送数据,来实现类似于Framebuffer的功能,于是我开始尝试调试这个玩意。这个DMA方式的Framebuffer是我自己几乎从零开始慢慢摸索,断断续续整了几个月弄出来的(其实绝大部分时间都花在了TCON的调试上)。

DMA方式的特点在于代码小,避开了图像引擎那资料极少、难以理解、操作还极其繁琐的初始化过程,这样一来增强了可移植性,而且顺便避开了图像引擎工作带来的工作耗电量。而且我还发现使用图像引擎方式屏幕上的像素点会有一定抖动,但DMA方式则完全不会抖动。要说缺点的话,其一是只能使用RGB565,其二是不能使用图像引擎的硬件混色和图层叠加啥的,其三是会一定程度上占用AHB总线。但这些在大部分情况下影响都不大,毕竟代码量只有5KB这个大优势是一直都在的。

裸机BootLoader使用了我前段时间在论坛里开源过的BootLoader,并修复了一些小Bug(代码大小的判断出错)。目前试了三种交叉编译链都能正常编译运行。

软件部分秉承我的一贯风格,使用了我自己写的外设寄存器结构体(这段时间摸索出来了一种极其方便的利用Excel处理手册的方法)。程序里存进去了一张数组形式的图片用于测试。开发环境用的是VSCode,但其它环境应该也没问题。
硬件部分是荔枝派NANO+官方4.3寸屏或者通过转接板连接我上面蓝字那款ST7789的屏(这坑人玩意还涨价了)。其中转接板我用了一种极其鬼畜的方式复用了LCD的引脚来进行软件模拟SPI通讯,居然成功了,AD工程附在文件里。

正所谓前人种树后人乘凉,希望我开源这个东西可以帮到以后入坑的同好。这个DMA-TCON方式实在是有太多坑了,我在程序里基本都详细地一一注释了,有些手册写的不清楚的地方我也根据自己的推断写了注释。

相关文件:DMA-TCON-Framebuffer.zip

图

离线

#2 2020-12-06 10:11:06

tianjjff
会员
注册时间: 2018-12-24
已发帖子: 127
积分: 30

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

感谢楼主分享

离线

#3 2020-12-09 17:53:42

TivonLiu
会员
注册时间: 2019-12-27
已发帖子: 46
积分: 41

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

感谢分享,留个记录,方便回看

离线

#4 2020-12-21 16:46:44

Bosspoi
会员
注册时间: 2020-11-29
已发帖子: 32
积分: 56.5

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

感谢分享,留个爪印,过几天研究下

离线

#5 2020-12-21 19:08:55

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,118
积分: 1070.5

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

这种方式双buffer切换好实现吗?

离线

#6 2020-12-21 19:29:10

guzhengstar
会员
注册时间: 2020-01-12
已发帖子: 25
积分: 19.5

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

优秀 楼主有心了备注

离线

楼主 #7 2020-12-21 22:30:26

f_Endman
会员
注册时间: 2020-04-16
已发帖子: 54
积分: 136

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

达克罗德 说:

这种方式双buffer切换好实现吗?

理论上来讲,只要更改DDMA的源地址寄存器就行了

离线

#8 2021-05-12 17:44:56

MyWaKeng
会员
注册时间: 2020-07-14
已发帖子: 22
积分: 1.5

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

哥们,通过参考你的裸机驱动,我把我的屏也显示了,就是,不能控制显示方向,我需要横屏显示,通过改36寄存器。发现无效,无论改成任何值,都是竖屏。
你的屏能用F1C100S 显示成横屏吗?

离线

#9 2021-05-13 13:15:11

MyWaKeng
会员
注册时间: 2020-07-14
已发帖子: 22
积分: 1.5

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

最后,参考linux驱动,搞定了。

离线

#10 2021-10-07 19:03:24

stephone
会员
注册时间: 2019-10-09
已发帖子: 55
积分: 7

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

优秀,看来要恶补一下

离线

#11 2021-12-14 15:54:41

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 118
积分: 29

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

试试看,不知道速速度能增加多少

离线

#12 2021-12-29 09:15:41

middle007
会员
注册时间: 2021-05-06
已发帖子: 5
积分: 5

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

该评论内容与本帖子无关,鼓励各位坑友积极发言讨论与帖子有关的内容!

离线

  • 不通过:其他

#13 2022-01-04 13:48:51

笔走天下
会员
注册时间: 2021-08-13
已发帖子: 125
积分: 4.5

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

这裸机是keil工程的吗,优秀,我看看怎么实现的

离线

#14 2022-04-11 10:03:01

Vonger
会员
注册时间: 2021-09-13
已发帖子: 6
积分: 6

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

DMA是个好办法!

离线

#15 2022-06-02 01:07:29

rongwinzip
会员
注册时间: 2020-03-14
已发帖子: 48
积分: 1.5

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

这么厉害,这么小代码就驱动起来了啊

离线

#16 2022-06-02 17:36:26

Iven
会员
注册时间: 2018-04-10
已发帖子: 55
积分: 0

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

可玩性很高嘛

离线

#18 2022-06-16 17:08:00

lanlanzhilian
会员
注册时间: 2021-12-21
已发帖子: 79
积分: 54

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

通吃各种小屏了

离线

#19 2022-06-20 14:05:45

Ican
会员
注册时间: 2022-06-11
已发帖子: 30
积分: 0

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

有没有dma官方的例程可以参考?

离线

#22 2022-06-28 08:32:21

Ican
会员
注册时间: 2022-06-11
已发帖子: 30
积分: 0

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

你好,18位的lcd接口是怎么初始化的?

离线

#24 2022-08-26 16:16:30

dingxmhan
会员
注册时间: 2020-06-11
已发帖子: 16
积分: 6

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

膜拜楼主,感觉这个是解决屏幕撕裂的好方法

离线

#27 2022-11-22 22:28:21

Simn
会员
注册时间: 2021-12-16
已发帖子: 33
积分: 18

Re: F1C100s裸奔DMA-TCON方式的Framebuffer,代码不到5KB!(附ST7789的RGB接口裸机驱动)

我想知道FPS增加了什么

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn