[STM32F1] FATFS SDIO 读写SD卡 速度超过2MBPS写失败

[复制链接]
3512|17
 楼主| eydj2008 发表于 2018-11-2 08:59 | 显示全部楼层 |阅读模式
我用的FATFS   SDIO 读写SD卡 发现SDIO低于2M的时钟 比较可靠, 一但高于 写入SD卡就很容易失败
有人碰到这种情况吧,
我怀疑过硬件,但是硬件不知道怎么调整.  是不断加电阻来调整振铃吗?
huzi2099 发表于 2018-11-2 10:02 | 显示全部楼层
不应该呀,10几M都没有问题的,你怎么弄的?没想法

评论

@eydj2008 :你能不能调试一下看看具体出的是什么错误,如果频率太高或信号受干扰及可能出CRC校验错误.另外也可能是卡的问题.  发表于 2018-11-2 15:40
我现在时钟 72M/64分频 弄一个16分频 我测试发现 ,过不了一会儿 写入就会失败 我是一直向SD卡里面写 数据, 我查一下 SD CLASS 4 写入读取速度是4MB/S  发表于 2018-11-2 13:49
fclmyl2 发表于 2018-11-2 19:42 | 显示全部楼层
STM32时钟还有 SPI时间是不是低了
 楼主| eydj2008 发表于 2018-11-4 07:38 | 显示全部楼层
huzi2099 发表于 2018-11-2 10:02
不应该呀,10几M都没有问题的,你怎么弄的?没想法

开始写几K数据正常,  然后就写入失败  FSFAT 报硬件错误. 或是磁盘错误
huzi2099 发表于 2018-11-5 08:04 | 显示全部楼层
eydj2008 发表于 2018-11-4 07:38
开始写几K数据正常,  然后就写入失败  FSFAT 报硬件错误. 或是磁盘错误

你截一下sdio报告的错误类型
 楼主| eydj2008 发表于 2018-11-6 10:12 | 显示全部楼层
huzi2099 发表于 2018-11-5 08:04
你截一下sdio报告的错误类型

--->f_read fileIndex=1
===>i=1 BAT Status=1 V= 4061==100!
---> f_open Pen_001.pen
!!打开太多文件。   FR_TOO_MANY_OPEN_FILES
--->OpenFilePageFunc f_open rst=18
--->CloseFilePageFunc f_close rst=9
!!无效的文件或路径。               FR_INVALID_NAME

typedef enum {
        FR_OK = 0,                                /* (0) Succeeded */
        FR_DISK_ERR,                        /* (1) A hard error occurred in the low level disk I/O layer */
        FR_INT_ERR,                                /* (2) Assertion failed */
        FR_NOT_READY,                        /* (3) The physical drive cannot work */
        FR_NO_FILE,                                /* (4) Could not find the file */
        FR_NO_PATH,                                /* (5) Could not find the path */
        FR_INVALID_NAME,                /* (6) The path name format is invalid */
        FR_DENIED,                                /* (7) Access denied due to prohibited access or directory full */
        FR_EXIST,                                /* (8) Access denied due to prohibited access */
        FR_INVALID_OBJECT,                /* (9) The file/directory object is invalid */
        FR_WRITE_PROTECTED,                /* (10) The physical drive is write protected */
        FR_INVALID_DRIVE,                /* (11) The logical drive number is invalid */
        FR_NOT_ENABLED,                        /* (12) The volume has no work area */
        FR_NO_FILESYSTEM,                /* (13) There is no valid FAT volume */
        FR_MKFS_ABORTED,                /* (14) The f_mkfs() aborted due to any parameter error */
        FR_TIMEOUT,                                /* (15) Could not get a grant to access the volume within defined period */
        FR_LOCKED,                                /* (16) The operation is rejected according to the file sharing policy */
        FR_NOT_ENOUGH_CORE,                /* (17) LFN working buffer could not be allocated */
        FR_TOO_MANY_OPEN_FILES,        /* (18) Number of open files > _FS_SHARE */
        FR_INVALID_PARAMETER        /* (19) Given parameter is invalid */
} FRESULT;
小灵通2018 发表于 2018-11-6 11:03 | 显示全部楼层
F1能到这么快?应该时钟不行吧
 楼主| eydj2008 发表于 2018-11-6 11:07 | 显示全部楼层
小灵通2018 发表于 2018-11-6 11:03
F1能到这么快?应该时钟不行吧

我发现 是有时 硬件出错,  我只好出错后 重新关掉此文件 再打开
keaibukelian 发表于 2018-11-6 13:07 | 显示全部楼层
是否地线处理的不好有干扰呀
 楼主| eydj2008 发表于 2018-11-8 13:48 | 显示全部楼层
keaibukelian 发表于 2018-11-6 13:07
是否地线处理的不好有干扰呀

我这个板 就只有通讯,  SDIO一路 SPI 二路 串口二路
SDIO是给SD卡, SPI 有一路字库 和 WIFI  二串口 波特率115200
不好排查啊  
我现在写入错误, 我就重新打开此文件,   可是这样就丢数据了 .  频率特别高.  很是郁闷
keaibukelian 发表于 2018-11-8 14:15 | 显示全部楼层
先把波特率降下来试试

评论

降到1M 时钟 明显 不那么容易出错了  发表于 2018-11-8 15:27
 楼主| eydj2008 发表于 2018-11-9 16:56 | 显示全部楼层
另外 还发现一个问题   f_lseek()     有时花很长的时间 才执行完  要40ms之久  
 楼主| eydj2008 发表于 2020-12-20 14:09 | 显示全部楼层
问题点是  写入和 读取 必须单 独进行  
li880wert 发表于 2020-12-21 15:32 | 显示全部楼层
2年时间跨度,我用的那个贴片式的SD卡芯片还行啊,没遇到问题
嵌入小菜菜 发表于 2020-12-22 14:47 | 显示全部楼层
200K差不多,你的速度太快了吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

3203

帖子

17

粉丝
快速回复 在线客服 返回列表 返回顶部