硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5009|回复: 6
收起左侧

[ADC] STM32H7使用FMC接口驱动AD7606的DMA方式研究(2020-04-14)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2020-4-14 11:34:41 | 显示全部楼层 |阅读模式
FMC的并行接线方式:



这里实现FMC DMA方式的关键就是BUSY引脚去触发DMA控制,如果是单纯的DMA正常模式,实现比较简单,接收到INT引脚的就绪状态,使用FMC DMA将8路数据全部读取出来即可。

如果是循环转换模式,就需要PWM一直开启着,来一路BUSY信号,触发DMA读取一次8路数据。

针对这个问题,就可以使用DMAMUX的事件触发方式来实现,可以选择的主要是:
HAL_DMAMUX1_REQ_GEN_EXTI0
HAL_DMAMUX2_REQ_GEN_EXTI0
HAL_DMAMUX2_REQ_GEN_EXTI2

这种的就略有点麻烦,如果用户使用的INT引脚不是EXTI0或者EXTI2,使用起来就不太方便。



回复

使用道具 举报

0

主题

18

回帖

18

积分

新手上路

积分
18
发表于 2020-4-14 20:24:06 | 显示全部楼层
这两天正好也在看这方面的东西。需要的是FMC同时接两片多路高速ADC,每路ADC有8位数据线, 每个数据需要8次传输才能完成,速率要达到15M。
也只能通过中断触发来采集数据。之前看到说H7中断控制GPIO的速率在10几MHz,会不会影响FMC采集速率?
本来还想挂一片SDRAM在FMC上来缓存ADC数据,但是又担心FMC接口处理不过来。

请问HAL_DMAMUX1_REQ_GEN_EXTI0这块哪里有介绍?如果要使用DMA传输,是否就只能接在中断号是EXTI0或者EXTI2的引脚上?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
 楼主| 发表于 2020-4-15 11:51:57 | 显示全部楼层
hustkema 发表于 2020-4-14 20:24
这两天正好也在看这方面的东西。需要的是FMC同时接两片多路高速ADC,每路ADC有8位数据线, 每个数据需要8次 ...

那个GPIO速度是纯GPIO的,要给GPIO配置上外设复用才可以达到高性能。

STM32H7的FMC做纯软件IO输出控制可以输出40MHz方波
http://www.armbbs.cn/forum.php?m ... 1282&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

18

回帖

18

积分

新手上路

积分
18
发表于 2020-4-17 09:36:44 | 显示全部楼层
eric2013 发表于 2020-4-15 11:51
那个GPIO速度是纯GPIO的,要给GPIO配置上外设复用才可以达到高性能。

STM32H7的FMC做纯软件IO输出控制 ...

看到一篇应用笔记,采用Input capture来响应,是否比外部中断+FMC+DMA的传输来的更好?



AN4666_运用GPIO和DMA实现并行同步通信.pdf

1.2 MB, 下载次数: 50

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
 楼主| 发表于 2020-4-17 10:15:09 | 显示全部楼层
hustkema 发表于 2020-4-17 09:36
看到一篇应用笔记,采用Input capture来响应,是否比外部中断+FMC+DMA的传输来的更好?

STM32H7的定时器输入捕获可以实现12MHz方波的双边沿捕获,单边沿可以做到24MHz
http://www.armbbs.cn/forum.php?m ... 1283&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

18

回帖

18

积分

新手上路

积分
18
发表于 2020-4-17 19:52:55 | 显示全部楼层
收到,谢谢了。 那还是用定时器输入捕获比中断快一些。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
 楼主| 发表于 2020-4-18 09:18:47 | 显示全部楼层
hustkema 发表于 2020-4-17 19:52
收到,谢谢了。 那还是用定时器输入捕获比中断快一些。

主要是因为有DMA。

中断也可以使用DMA,借助DMAMUX。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 23:59 , Processed in 0.312912 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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