硬汉嵌入式论坛

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

STM32F4 双AD7606 FMC+DMA采集思路求助

  [复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2022-3-11 20:31:15 | 显示全部楼层 |阅读模式
项目中需要用到两片AD7606进行同步采集,因此两片7606需要用到同一个CONVST引脚来启动ADC转化目前单个7606的FMC+DMA驱动正常,程序参考的【STM32F429开发板用户手册】第36章 STM32F429的FMC总线应用之DMA双缓冲驱动AD7606(8通道同步采样, 16bit, 正负10V) - 安富莱电子 - 博客园 (cnblogs.com)

由于启动DMA传输使用HAL库的HAL_DMA_Start_IT(&TIMDMA, (uint32_t)AD7606_BASE_1, (uint32_t)g_sAd7606Buf_1, 8)函数
一次TIM_UP中断只能传输一个固定地址的数据,两块7606的话 分别采用两个不同的片选信号
总线地址分别是:
#define AD7606_BASE_1            0x60000000
#define AD7606_BASE_2            0x6C000000


求助有没有办法在一次TIM_UP中断中 触发两次DMA传输
考虑到可能需要修改HAL库的底层代码,在清除TIM_UP中断标志前,再进行一次DMA传输,不知道有没有可能实现
或者使用BUSY信号线来触发外部中断,在外部中断中触发两次DMA传输?有没有可能实现呢
如果实在不行就不用DMA进行传输了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2022-3-12 11:18:03 | 显示全部楼层
感觉可以试试FMC的32bit数据地址线,高16bit接一组,低16bit接一组。
回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2022-3-12 19:26:16 | 显示全部楼层
eric2013 发表于 2022-3-12 11:18
感觉可以试试FMC的32bit数据地址线,高16bit接一组,低16bit接一组。

谢谢 可是这样要改硬件设计吧 有没有不改变硬件设计的方法来实现呢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2022-3-12 21:59:13 | 显示全部楼层
jkl28831532 发表于 2022-3-12 19:26
谢谢 可是这样要改硬件设计吧 有没有不改变硬件设计的方法来实现呢

你现在的PCB布线已经定了吗
回复

使用道具 举报

1

主题

20

回帖

23

积分

新手上路

积分
23
发表于 2022-3-15 09:23:41 | 显示全部楼层
用同一个定时器的两个PWM TIMUP通道触发2个DMA通道进行采集,只有第一个通道ADC去触发启动两AD7606进行转换,我项目中实际用了3片AD7606同步采集,同时还采集16个DI通道,完全没有压力。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2022-3-15 09:45:53 | 显示全部楼层
missyou213 发表于 2022-3-15 09:23
用同一个定时器的两个PWM TIMUP通道触发2个DMA通道进行采集,只有第一个通道ADC去触发启动两AD7606进行转换 ...

这个会玩
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-8-12 11:28:25 | 显示全部楼层
missyou213 发表于 2022-3-15 09:23
用同一个定时器的两个PWM TIMUP通道触发2个DMA通道进行采集,只有第一个通道ADC去触发启动两AD7606进行转换 ...

您好,能详细说一下 原理吗,我这要挂4片,不知道咋进行那,,,,,谢谢谢谢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2023-8-13 08:53:24 | 显示全部楼层
gui986665794 发表于 2023-8-12 11:28
您好,能详细说一下 原理吗,我这要挂4片,不知道咋进行那,,,,,谢谢谢谢

可以,核心就是同一个定时器的4个通道,其它和我们分享的FMC DMA玩法一样。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2023-10-11 21:22:25 | 显示全部楼层
eric2013 发表于 2023-8-13 08:53
可以,核心就是同一个定时器的4个通道,其它和我们分享的FMC DMA玩法一样。

请问一下,如果一个fmc模块接4片ad7606的话,是需要设置四个不同片选型(设置四个不同的基地址)嘛,有没有办法能在只用一个片选(只是用一个基地址)的情况下同时读4片ad7606呢。因为我是用的是stm32f407,只有一个基地址能用~真心求教
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-3-7 21:09:47 | 显示全部楼层
另外用4个IO口分别选中某一个7606不就完了。
回复

使用道具 举报

14

主题

31

回帖

73

积分

初级会员

积分
73
发表于 2024-5-15 15:51:46 | 显示全部楼层
missyou213 发表于 2022-3-15 09:23
用同一个定时器的两个PWM TIMUP通道触发2个DMA通道进行采集,只有第一个通道ADC去触发启动两AD7606进行转换 ...

请问一下,一个定时器输出两个通道的PWM来启动2片7606,TIMUP来触发DMA,只能触发一个通道DMA啊,怎么触发两路DMA来分别传输两片7606的数据
回复

使用道具 举报

1

主题

20

回帖

23

积分

新手上路

积分
23
发表于 2024-10-10 23:36:25 | 显示全部楼层
海米阿门 发表于 2024-5-15 15:51
请问一下,一个定时器输出两个通道的PWM来启动2片7606,TIMUP来触发DMA,只能触发一个通道DMA啊,怎么触 ...

用同一个定时器的两路PWM的TIMUP触发2个不同的DMA通道传输数据,定时器的任一路IO输出触发两片AD7606进行采集。
回复

使用道具 举报

14

主题

31

回帖

73

积分

初级会员

积分
73
发表于 2024-10-17 15:35:22 | 显示全部楼层
missyou213 发表于 2024-10-10 23:36
用同一个定时器的两路PWM的TIMUP触发2个不同的DMA通道传输数据,定时器的任一路IO输出触发两片AD7606进行 ...

哥们,能加个好友,请教一下
回复

使用道具 举报

14

主题

31

回帖

73

积分

初级会员

积分
73
发表于 2024-10-17 15:37:22 | 显示全部楼层
missyou213 发表于 2024-10-10 23:36
用同一个定时器的两路PWM的TIMUP触发2个不同的DMA通道传输数据,定时器的任一路IO输出触发两片AD7606进行 ...

2路PWM的TIMUP触发2片不同的DMA传输,但是DMA不是有优先级的吗,不能同时把两个DMA的通道数据一起传输啊
回复

使用道具 举报

1

主题

20

回帖

23

积分

新手上路

积分
23
发表于 2024-10-18 09:29:40 | 显示全部楼层
海米阿门 发表于 2024-10-17 15:37
2路PWM的TIMUP触发2片不同的DMA传输,但是DMA不是有优先级的吗,不能同时把两个DMA的通道数据一起传输啊

2版DMA的时间差异可以忽略,芯片内核自动处理,可能只有数个时钟周期的差异。
回复

使用道具 举报

14

主题

31

回帖

73

积分

初级会员

积分
73
发表于 2024-10-18 16:23:59 | 显示全部楼层
missyou213 发表于 2024-10-18 09:29
2版DMA的时间差异可以忽略,芯片内核自动处理,可能只有数个时钟周期的差异。

2个DMA,优先级分别先后传输,这对2片7606实时传输有影响吗
回复

使用道具 举报

14

主题

31

回帖

73

积分

初级会员

积分
73
发表于 2024-10-18 16:25:39 | 显示全部楼层
missyou213 发表于 2024-10-18 09:29
2版DMA的时间差异可以忽略,芯片内核自动处理,可能只有数个时钟周期的差异。

qq加一下请教一下:1979912854
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-1 07:30 , Processed in 0.322750 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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