OpenEdv-开源电子网

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

关于SD卡驱动DMA模式的几点问题

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2023-5-20
在线时间
6 小时
发表于 2023-7-4 16:55:53 | 显示全部楼层 |阅读模式
3金钱
我使用的是F4探索者的板子测试SD卡,程序分别为HAL库和标准库的fatfs代码。目前发现一下几个问题。

1. F4 DMA模式无法使用4线模式,hal库和标准库都无法使用,卡在getfree获取容量函数,猜测是DMA不能正常传输数据。

以下为单线模式。

2. HAL库DMA模式速度只有几百k,查询模式可以达到2MB/s。标准库DMA和查询模式都可以达到2MB/s。应该是


有没有大佬帮忙看看DMA是什么情况?
1. 4线模式无法使用。
2. HAL库单线模式速度太慢。

另:标准库总线切换函数有问题。如下:

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2023-7-7 01:00:28 | 显示全部楼层
建议用查询模式,用我们提供的代码。 DMA模式,我之前使用,貌似不太好用。
回复

使用道具 举报

29

主题

167

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1011
金钱
1011
注册时间
2021-7-26
在线时间
184 小时
发表于 2023-7-9 18:10:33 | 显示全部楼层
虽然是正点原子论坛,但是DMA读取SD卡这部分,得看野火,拿野火的代码移植。原子的代码用不了不知道为啥,我也没看底层哪出问题了,太多了看不下去...
并且我试过DMA方式读取SD卡,速度我感觉是和查询模式是一样的,快也没快过半个数量级。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2023-7-11 00:36:59 | 显示全部楼层
精英板 发表于 2023-7-9 18:10
虽然是正点原子论坛,但是DMA读取SD卡这部分,得看野火,拿野火的代码移植。原子的代码用不了不知道为啥, ...

DMA驱动SD稳定么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

29

主题

167

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1011
金钱
1011
注册时间
2021-7-26
在线时间
184 小时
发表于 2023-7-13 19:09:09 | 显示全部楼层

还好吧,没啥误码的,但是读取速度确实差不多
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2023-7-14 01:02:04 | 显示全部楼层
精英板 发表于 2023-7-13 19:09
还好吧,没啥误码的,但是读取速度确实差不多

DMA理论上应该比轮询会快一些才对
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2023-5-20
在线时间
6 小时
 楼主| 发表于 2023-7-14 09:40:30 | 显示全部楼层
精英板 发表于 2023-7-9 18:10
虽然是正点原子论坛,但是DMA读取SD卡这部分,得看野火,拿野火的代码移植。原子的代码用不了不知道为啥, ...

野火的F4 HAL的DMA模式也是有问题的,用的是金士顿的SD卡和TF。标准库的DMA模式有点小问题在测试中。
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2023-5-20
在线时间
6 小时
 楼主| 发表于 2023-7-14 09:45:09 | 显示全部楼层
正点原子 发表于 2023-7-14 01:02
DMA理论上应该比轮询会快一些才对

标准库的总线切换函数有点问题,传参是u32 0x800,函数定义是u8,传进去的都是0了吧。

//SDIO使能宽总线模式
//enx:0,不使能;1,使能;
//返回值:错误状态
SD_Error SDEnWideBus(u8 enx)
回复

使用道具 举报

29

主题

167

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1011
金钱
1011
注册时间
2021-7-26
在线时间
184 小时
发表于 2023-7-14 10:49:05 | 显示全部楼层
f401382507 发表于 2023-7-14 09:40
野火的F4 HAL的DMA模式也是有问题的,用的是金士顿的SD卡和TF。标准库的DMA模式有点小问题在测试中。

标准库如果是往正点的例程移植野火DMA的SD,是需要再改改
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2016-3-15
在线时间
57 小时
发表于 2024-1-15 16:18:03 | 显示全部楼层

还可以,传输时需要加个等待DMA传输完成,每次以8K大小写入,时间约1.6ms
搞技术要脚踏实地!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 23:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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