OpenEdv-开源电子网

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

关于STM32F407 SPI2&DMA的问题

[复制链接]

12

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2018-2-28
在线时间
23 小时
发表于 2020-1-17 19:38:42 | 显示全部楼层 |阅读模式
10金钱
        现在在开发过程中遇到了一个问题,就是在这种情况下能否使用DMA功能。
        SPI主设备是Stm32f407,SPI从设备是ADC AD7923。
        我的想法是让ADC一直在读取数据,所以想使用DMA这种方式。
        第一个问题:我看到SPI2的TX和RX都在DMA1的Channel0,能同时收发吗????
        第二个问题:这个AD7923的SPI接口有个CS引脚,The conversion process and data acquisition are controlled by
CS and the serial clock(SPEC上面的一句话),这个情况会不会导致DMA传输有问题。        考虑过用定时器中断去读ADC数据,但是系统还要做通信和控制动作,可能相应会差很多。
        希望有过DMA&SPI开发经验的朋友们,给我一点建议。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
发表于 2020-1-18 08:57:33 | 显示全部楼层
第一个问题,SPI2的TX是在DAM1 通道0 的数据流4,RX是在数据流3.
回复

使用道具 举报

33

主题

114

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-7-8
在线时间
177 小时
发表于 2020-1-18 09:57:48 | 显示全部楼层
本帖最后由 seraph15 于 2020-1-18 10:10 编辑

【1】虽然我只做过SPI_TX+DMA,但感觉做不到,DMA一次只可以使能一个功能,例如我使能SPIx_TX,SPIx_RX就只能不用DMA了,DMA的介绍,我下面放了一张图,有两点需要知道,一个是stream(流),另一个是有分DMA1和DMA2


【2】我也没用过AD7923,但是我看到CS的第一反应,这就是片选引脚了,根据我曾经使用过的外部Flash,型号是W25Q16,也是用SPI通信的,也同样有片选引脚,片选给低电平,
让芯片知道自己被选中了,然后在低电平的时间内传输数据,传输完成把电平拉高,等待下一次的数据传输(再次拉低电平)
总归来说,CS只是选中哪个设备,没被选中的,就无法接收数据,就这样
下图是关于第一点提到的channel和stream
222.png

回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-11 08:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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