OpenEdv-开源电子网

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

FSMC连接外部SRAM的FSMC_DataSetupTime较低时会影响SPI的DMA通讯,导致数据偶尔出错

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-7-10
在线时间
10 小时
发表于 2017-10-12 11:30:34 | 显示全部楼层 |阅读模式
16金钱
STM32F407ZET6平台,外接FSMC总线连接的SRAM,同时外接了SPI方式连接的外部ADC,经测试:
1. 当SRAM的FSMC_DataSetupTime设置为4时,SPI波特率使用SPI_BaudRatePrescaler_2,使用DMA方式接收外部ADC采样值,会不定期出错。
2. 当SRAM的FSMC_DataSetupTime设置为4时,SPI波特率使用SPI_BaudRatePrescaler_4,使用DMA方式接收外部ADC采样值,仍然会不定期出错。
3. 当SRAM的FSMC_DataSetupTime设置为4时,SPI波特率使用SPI_BaudRatePrescaler_2,使用手动SPI方式接收外部ADC采样值,不会出错。
4.当SRAM的FSMC_DataSetupTime设置为6时,SPI波特率使用SPI_BaudRatePrescaler_2,使用SPI的DMA方式接收外部ADC采样值,很稳定,不会出错。
P.S.
     A.系统同时使用了2个DMA的多个数据流,但仅仅上述所用到的DMA优先级设置为最高,其余都为低。
     B.上述SPI接收ADC采样值的函数是在最高抢占优先级的中断中调用的,不会被中断。
     C.DMA的存储器地址已经刻意避开CCM所在的地址
     D.DMA标志位判断位置没有问题
     E.上述SPI接收ADC采样值使用的是16位模式
     F.采样值出错时有一定规律,类似错位。

综上所述,不知道为什么会出现这种现象,仅仅把FSMC_DataSetupTime设置为6就可以避免出现采样值的乱码,请各位有经验的大大们给予解答,不甚感激!!!!

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-10-13 01:04:56 | 显示全部楼层
FSMC_DataSetupTime,控制FSMC的速度,越大越慢。  你的DMA传输非常迅速么?而且FSMC访问也很频繁?
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-7-10
在线时间
10 小时
 楼主| 发表于 2017-10-13 13:26:05 | 显示全部楼层
正点原子 发表于 2017-10-13 01:04
FSMC_DataSetupTime,控制FSMC的速度,越大越慢。  你的DMA传输非常迅速么?而且FSMC访问也很频繁?

SPI DMA方式传输ADC采样值,采样值是16位的,每次传输30个采样值,采样频率是1600HZ,FSMC访问较为频繁,因为不断从SRAM中读取和写入一些值。
现在还在查找问题,如果找到问题会回来分享给大家的。
谢谢原子大大百忙之中来回复我~~~我就是用您的407开发板入门的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-10-15 01:20:15 | 显示全部楼层
又时候,处理不过来了,就会出错
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 23:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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