硬汉嵌入式论坛

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

[STM32H7] STM32H7使用DMAMUX做ADC采集

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2024-9-18 11:18:45 | 显示全部楼层 |阅读模式
关于STM32H7使用DMAMUX做500ksps,24bits SPI ADC芯片采集,外挂有SDRAM和EMMC,跑有Fatfs和RTOS,想实现边采集边存储到EMMC,但是使用Fatfs在多次写入EMMC之后,直接报错找不到文件,想问一下有没有人做过这方面的,请教一下各位
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-9-18 12:07:22 | 显示全部楼层
做过

楼主当前多久存储一次,每次多少字节数据。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-9-18 13:54:41 | 显示全部楼层
eric2013 发表于 2024-9-18 12:07
做过

楼主当前多久存储一次,每次多少字节数据。

目前是采用一个30000字节的buf去接收,触发DMA半满和全满中断就将数据从buf中取出到环形缓冲区中,然后中断给队列消息到任务,然后任务进行存储,我看过你们之前的帖子,单次文件系统存512字节,然后进行多次存储;前面几次可能还可以,多了以后文件就像是损坏了
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-9-18 14:00:55 | 显示全部楼层
eric2013 发表于 2024-9-18 12:07
做过

楼主当前多久存储一次,每次多少字节数据。

目前是采用一个30000字节的buf去接收,触发DMA半满和全满中断就将数据从buf中取出到环形缓冲区中,然后中断给队列消息到任务,然后任务进行存储,我看过你们之前的帖子,单次文件系统存512字节,然后进行多次存储;前面几次可能还可以,多了以后文件就像是损坏了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-9-19 09:31:55 | 显示全部楼层
Noral 发表于 2024-9-18 13:54
目前是采用一个30000字节的buf去接收,触发DMA半满和全满中断就将数据从buf中取出到环形缓冲区中,然后中 ...

那看来是写入速度跟不上采集速度,有没有测试过降低采集速度是不是正常。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-9-19 09:52:33 | 显示全部楼层
eric2013 发表于 2024-9-19 09:31
那看来是写入速度跟不上采集速度,有没有测试过降低采集速度是不是正常。

目前需求上要达到500k,试过使用底层MMX_WRTIEDMA是可以写进去的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-9-20 08:45:47 | 显示全部楼层
Noral 发表于 2024-9-19 09:52
目前需求上要达到500k,试过使用底层MMX_WRTIEDMA是可以写进去的

可能是运行一段时间后,速度跟不上,因为FAT内文件系统随着文件越来越大,会影响写入速度。
1、文件的写入不要close,使用f_write+f_sync
2、文件到一定大小后,新建个文件写入。
3、最后就是考虑低速写入测试下,仅仅是测试目的,看看正常不。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 17:35 , Processed in 0.041882 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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