OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4577|回复: 12

请问spi显示屏怎么使用dma2d?

[复制链接]

12

主题

29

帖子

1

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2020-1-27
在线时间
19 小时
发表于 2020-11-15 14:32:42 | 显示全部楼层 |阅读模式
1金钱
请问spi显示屏怎么使用dma2d?

最佳答案

查看完整内容[请看2#楼]

QSPI这个外设它是不管你外部连接的是啥东东, 它都是按你配置的格式, 比如子指是什么, address是多位, 有没有dummy。。。然后数据的长度等等来跟外部构通的。 你可以先用indirect mode, 就像spi一样控制spi屏, 成功后再转用 mapping mode
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2020-11-15 14:32:43 | 显示全部楼层
hhhh63 发表于 2020-11-21 15:15
先表示感谢,每次都进一步。
我用的是H750,有QSPI,但是所有例子都是FLASH,请问能不能用在显示屏上?

QSPI这个外设它是不管你外部连接的是啥东东, 它都是按你配置的格式, 比如子指是什么, address是多位, 有没有dummy。。。然后数据的长度等等来跟外部构通的。
你可以先用indirect mode, 就像spi一样控制spi屏, 成功后再转用 mapping mode
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2020-11-15 20:32:32 | 显示全部楼层
dma2d 的目标缓冲 == SPI DMA 的数据源的缓冲
回复

使用道具 举报

12

主题

29

帖子

1

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2020-1-27
在线时间
19 小时
 楼主| 发表于 2020-11-16 20:01:18 | 显示全部楼层
谢谢,我过几天试试
回复

使用道具 举报

12

主题

29

帖子

1

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2020-1-27
在线时间
19 小时
 楼主| 发表于 2020-11-16 20:19:24 | 显示全部楼层
edmund1234 发表于 2020-11-15 20:32
dma2d 的目标缓冲 == SPI DMA 的数据源的缓冲

请问,dma2d和dma之间如何同步或者触发呢?
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2020-11-17 10:56:36 | 显示全部楼层
hhhh63 发表于 2020-11-16 20:19
请问,dma2d和dma之间如何同步或者触发呢?

我猜我们不是想到一块去
我想象的情境是整个TFT都是映射到一个缓冲, dma2是帮助你把图像或字库搬到此缓冲, 而dma 就根据你制定的刷频时间, 按时把此缓冲的数据通过SPI传到TFT。两者应该是独立的, 不存在触发谁。

回复

使用道具 举报

12

主题

29

帖子

1

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2020-1-27
在线时间
19 小时
 楼主| 发表于 2020-11-19 14:39:05 | 显示全部楼层
edmund1234 发表于 2020-11-17 10:56
我猜我们不是想到一块去
我想象的情境是整个TFT都是映射到一个缓冲, dma2是帮助你把图像或字库搬到此缓 ...

谢谢,我试了能行,但是有一个问题,太占内存。
用DMA2D和MDMA能同步,但是DMA2D没有目标0增量方式,MDMA有0增量方式
不知道有没有办法让DMA2D输出0增量,这样就不占内存了
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2020-11-19 18:18:41 | 显示全部楼层
hhhh63 发表于 2020-11-19 14:39
谢谢,我试了能行,但是有一个问题,太占内存。
用DMA2D和MDMA能同步,但是DMA2D没有目标0增量方式,MDM ...

没完全明白你的意思, 但我猜你是想DMA2D 把RGB数据传到某一地址, 然后DMA就马上从这地址传到SPI,之后 DMA2D 又把下一个RGB数据传到同一地址。。。。。

我没试过这样做, 但感觉难度太高了, 很难在有其它DMA在工作的情况下保证同步的。
我建议申请一个几K动态内存作缓冲,DMA2D搬了一半才开始DMA。。。。。
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2020-11-19 18:23:36 | 显示全部楼层
hhhh63 发表于 2020-11-19 14:39
谢谢,我试了能行,但是有一个问题,太占内存。
用DMA2D和MDMA能同步,但是DMA2D没有目标0增量方式,MDM ...

我忽然想起, 429有QSPI吗? 如果有, 它是可以把QSPI配置为 memory mapped mode, 那就可以直接的DMA2D到SPI了。
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6521
金钱
6521
注册时间
2018-6-27
在线时间
550 小时
发表于 2020-11-20 08:59:25 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6521
金钱
6521
注册时间
2018-6-27
在线时间
550 小时
发表于 2020-11-20 11:47:26 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

12

主题

29

帖子

1

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2020-1-27
在线时间
19 小时
 楼主| 发表于 2020-11-21 15:15:54 | 显示全部楼层
edmund1234 发表于 2020-11-19 18:23
我忽然想起, 429有QSPI吗? 如果有, 它是可以把QSPI配置为 memory mapped mode, 那就可以直接的DMA2D到 ...

先表示感谢,每次都进一步。
我用的是H750,有QSPI,但是所有例子都是FLASH,请问能不能用在显示屏上?
回复

使用道具 举报

12

主题

29

帖子

1

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2020-1-27
在线时间
19 小时
 楼主| 发表于 2020-11-21 15:57:19 | 显示全部楼层
edmund1234 发表于 2020-11-21 15:37
QSPI这个外设它是不管你外部连接的是啥东东, 它都是按你配置的格式, 比如子指是什么, address是多位, ...

好的,我有时间试试,不行就用上面说的“申请一个几K动态内存作缓冲......”的方法,也可以申请一整屏内存(320x240x2 = 150k),这样就可以做半透明弹窗。总之非常感谢。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-15 03:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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