搜索
bottom↓
回复: 28

STM32H7 SD卡持续高速写入

[复制链接]

出0入0汤圆

发表于 2019-1-31 13:15:20 | 显示全部楼层 |阅读模式
新上的项目,用SD卡来录制多频道音频信息,持续速率大概是25MByte/s, 要求是要以这个速率持续写100分钟,无需文件系统,直接往地址里写就行
我现在测试下来,对官方demo进行一些调整,在标称90MByte/s的SD卡上,写入速度可以到52MByte/s, 上到4GB 持续写入,下到512KByte, 都能到这个速度
想请教一下各位,如果持续写入,1,会不会有发热问题(Thermal shutdown) 2,会不会有写不进去的情况

出0入4汤圆

发表于 2019-1-31 15:08:30 | 显示全部楼层
你都进行测试了,发热和错误的问题应该是我们向你请教吧!!

出0入0汤圆

 楼主| 发表于 2019-1-31 15:12:11 | 显示全部楼层
lzg1987 发表于 2019-1-31 15:08
你都进行测试了,发热和错误的问题应该是我们向你请教吧!!

对SD3.0的稳定性还是没把握,一般大家用SD卡到几Mbit/s 就差不多了
用的示例程序,有时候会写入失败,但是不知道是什么问题

出0入0汤圆

发表于 2019-1-31 15:27:49 | 显示全部楼层
不上文件系统,一旦出现坏块,你咋处理?

出0入0汤圆

发表于 2019-1-31 15:32:20 | 显示全部楼层
以前的老卡
- 写满(出现新写入需要擦扇区的情形),继续写,有可能在擦除的时候存在较长的延迟(卡一下)
- 用过很长时间之后(估计是存在坏块了),可能写入会卡住一会儿
均速能达到,就是需要足够的buffer

出0入0汤圆

 楼主| 发表于 2019-1-31 16:42:03 | 显示全部楼层
xjmlfm1 发表于 2019-1-31 15:27
不上文件系统,一旦出现坏块,你咋处理?

上文件系统的话这个速率是不是就基本不现实了
我们可以用十次换一张SD卡,反正他们不差钱
SD卡出现坏块概率很高吗?

出0入0汤圆

 楼主| 发表于 2019-1-31 16:43:46 | 显示全部楼层
dr2001 发表于 2019-1-31 15:32
以前的老卡
- 写满(出现新写入需要擦扇区的情形),继续写,有可能在擦除的时候存在较长的延迟(卡一下)
...

如果是没有文件系统的话,还会有擦除这个操作吗,如果我确保每次写入的时候卡都是空的,是不是就不会有问题了
都会是UHS1级以上的卡

出0入0汤圆

发表于 2019-1-31 17:09:19 | 显示全部楼层
xjmlfm1 发表于 2019-1-31 15:27
不上文件系统,一旦出现坏块,你咋处理?

SD卡自己有坏块管理的,不过呢,就是会卡下,缓冲区要够大

出0入0汤圆

发表于 2019-1-31 19:13:54 来自手机 | 显示全部楼层
SD卡不用管坏块,不过稳定性不如CF卡,持续高速写入还得CF卡靠谱,如果非得用SD卡的话,直接上topssd的slc颗粒卡

出0入0汤圆

发表于 2019-1-31 19:35:17 | 显示全部楼层
本帖最后由 dr2001 于 2019-1-31 19:37 编辑
sunnylyvoune 发表于 2019-1-31 16:43
如果是没有文件系统的话,还会有擦除这个操作吗,如果我确保每次写入的时候卡都是空的,是不是就不会有问 ...


SD/TF内部有FTL进行磨损均衡,行为不是非常可控,除非用量产工具或者内部的工具来确认这点。(你看到的卡空不意味着Flash处于全擦状态)
更多的,对擦除成功的扇区写入,也不意味着写入一定成功。如果校验不过就可能导致一系列的操作,比如重试/块重映射/etc,都可能消耗时间。
更远点说,就算是Serial NAND/Flash,写入时间也是会抖动的。

没有Buffer的话,那总是有风险的。

出0入0汤圆

发表于 2019-1-31 21:11:58 | 显示全部楼层
使用前把sd全部填FF

出0入4汤圆

发表于 2019-2-1 08:50:26 来自手机 | 显示全部楼层
jianfengxixi 发表于 2019-1-31 19:13
SD卡不用管坏块,不过稳定性不如CF卡,持续高速写入还得CF卡靠谱,如果非得用SD卡的话,直接上topssd的slc ...

他家的卡都是slc的么?

出0入0汤圆

发表于 2019-2-1 09:21:21 来自手机 | 显示全部楼层
算下来100分钟得几百GB的sd卡了

出0入0汤圆

发表于 2019-2-1 10:16:57 | 显示全部楼层
其实你这个需求,可能最好的方法是直接上SLC的NAND裸片直接写

每次操作前进行检查确认,擦好扇区,直接烧;加一个什么缓存芯片(DataFlash?)做Fallback之类的,如果允许丢数就无所谓了。

出0入0汤圆

 楼主| 发表于 2019-2-1 12:31:37 | 显示全部楼层
nanfang2000 发表于 2019-2-1 09:21
算下来100分钟得几百GB的sd卡了

是的,现在准备用三星的UHS-1 的256GB的卡

出0入0汤圆

 楼主| 发表于 2019-2-1 12:32:08 | 显示全部楼层
xjavr 发表于 2019-1-31 17:09
SD卡自己有坏块管理的,不过呢,就是会卡下,缓冲区要够大

H7我可以给512KB的buffer但是不知道够不够

出0入0汤圆

 楼主| 发表于 2019-2-1 12:33:12 | 显示全部楼层
dr2001 发表于 2019-2-1 10:16
其实你这个需求,可能最好的方法是直接上SLC的NAND裸片直接写

每次操作前进行检查确认,擦好扇区,直接烧 ...

这样的话我是不是不如直接FPGA挂SATA 算了,反正板载Artix7 的

出0入0汤圆

 楼主| 发表于 2019-2-1 12:34:41 | 显示全部楼层
jianfengxixi 发表于 2019-1-31 19:13
SD卡不用管坏块,不过稳定性不如CF卡,持续高速写入还得CF卡靠谱,如果非得用SD卡的话,直接上topssd的slc ...

他家没有microSD啊

出0入0汤圆

 楼主| 发表于 2019-2-1 12:36:33 | 显示全部楼层
dr2001 发表于 2019-1-31 19:35
SD/TF内部有FTL进行磨损均衡,行为不是非常可控,除非用量产工具或者内部的工具来确认这点。(你看到的卡 ...

Buffer 的话现在直接把H7 D1 domain的sram,512KB全部给他,反正也不干别的

出0入0汤圆

发表于 2019-2-1 14:15:31 | 显示全部楼层
vermon 发表于 2019-2-1 08:50
他家的卡都是slc的么?

也有mlc的,看价格,slc的一看价格就知道肯定是slc的了

出0入0汤圆

发表于 2019-2-2 09:43:02 | 显示全部楼层
sunnylyvoune 发表于 2019-2-1 12:32
H7我可以给512KB的buffer但是不知道够不够

不够,我测试过,我用的卡遇到最大的是卡200ms,你25MB/S,至少要大于5MB的缓冲。

出0入0汤圆

 楼主| 发表于 2019-2-2 13:00:23 | 显示全部楼层
xjavr 发表于 2019-2-2 09:43
不够,我测试过,我用的卡遇到最大的是卡200ms,你25MB/S,至少要大于5MB的缓冲。 ...

5MB的缓冲,挂sram嘛?

出0入0汤圆

 楼主| 发表于 2019-2-2 13:24:24 | 显示全部楼层
xjavr 发表于 2019-2-2 09:43
不够,我测试过,我用的卡遇到最大的是卡200ms,你25MB/S,至少要大于5MB的缓冲。 ...

我挂个psram吧,sram太大了,这玩意我们不在意成本,但是真的难做啊mmp

出0入0汤圆

发表于 2019-2-2 13:43:18 | 显示全部楼层
sunnylyvoune 发表于 2019-2-2 13:24
我挂个psram吧,sram太大了,这玩意我们不在意成本,但是真的难做啊mmp

不太意成本就好说了,直接挂SDRAM,挂64MB也没多少钱,量大又便宜,就主控贵些,比如STM32F429,如果选择ARM9,就好办多了。

出0入0汤圆

 楼主| 发表于 2019-2-2 14:16:09 | 显示全部楼层
xjavr 发表于 2019-2-2 13:43
不太意成本就好说了,直接挂SDRAM,挂64MB也没多少钱,量大又便宜,就主控贵些,比如STM32F429,如果选择 ...

谢谢指点
我也是觉得不行上arm9上操作系统算了,但是软件感觉会比st的麻烦很多
主控是artix7+ stm32h753  753是400Mhz的主频,能弄出来根本无所谓多少钱。artix7 用来解码madi信号的
sdram会不会有点慢
因为我现在artix7 和stm32h7之间通信用的也是fmc的口,复用的话速度太慢可能影响fpga-arm通信

出0入0汤圆

发表于 2019-2-3 07:31:28 来自手机 | 显示全部楼层
这样高负荷的应用应该上更高端的U,比如a系列。比如microchip的sam5d2自带几十MBddr,或者上ti的am335x系列。这两个都有官方裸奔库和Linux

出0入0汤圆

 楼主| 发表于 2019-2-3 14:52:07 | 显示全部楼层
nanfang2000 发表于 2019-2-3 07:31
这样高负荷的应用应该上更高端的U,比如a系列。比如microchip的sam5d2自带几十MBddr,或者上ti的am335x系列 ...

hhhh sam5d2 不是atmel的嘛,我看了下都很不错啊
主要是好像支持sd3.0的片子不是很多,你说的这两个好像都没法支持sd3.0

出105入79汤圆

发表于 2019-2-4 02:06:07 | 显示全部楼层
找个usb3.0的SOC片子写u盘好了

出0入0汤圆

 楼主| 发表于 2019-2-6 14:16:35 | 显示全部楼层
测试下来稳定25MB/s 100分钟写入没有问题, 但是fmc读完再写会拖慢写入速度,现在在解决fmc的问题
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 05:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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