硬汉嵌入式论坛

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

[FatFs] FATFS支持16G SD卡的问题?

[复制链接]

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
发表于 2018-5-22 11:04:16 | 显示全部楼层 |阅读模式
请知道的朋友指教一下,我现在用的是FATFS0.9B版本,目前只支持4G的存储卡,当前4G的卡不好买,想换成16G的卡,不知道是升级一下FATFS还是需要修改底层驱动?谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-5-22 14:00:18 | 显示全部楼层
是官方的驱动问题,ST官方早期的那个SD卡驱动里面该用64位变量的地方,弄了个32位变量,直接限制住了。

你可以下载我这个freertos例程里面带fatfs的V6板子,把里面的bsp_sd_sdio.c文件拿出来。

http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
 楼主| 发表于 2018-5-22 15:52:45 | 显示全部楼层
eric2013 发表于 2018-5-22 14:00
是官方的驱动问题,ST官方早期的那个SD卡驱动里面该用64位变量的地方,弄了个32位变量,直接限制住了。

...

SD_Error SD_SelectDeselect(uint64_t addr);
SD_Error SD_ReadBlock(uint8_t *readbuff, uint64_t ReadAddr, uint16_t BlockSize);
SD_Error SD_ReadMultiBlocks(uint8_t *readbuff, uint64_t ReadAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);
SD_Error SD_WriteBlock(uint8_t *writebuff, uint64_t WriteAddr, uint16_t BlockSize);
SD_Error SD_WriteMultiBlocks(uint8_t *writebuff, uint64_t WriteAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);

SD_Error SD_Erase(uint64_t startaddr, uint64_t endaddr);
以上在SD卡驱动里,在我的程序上都把地址改为64位,并且调用以上函数的地方也强制类型转换了,如下:
Status = SD_ReadBlock(buff, (uint64_t)sector << 9 , SECTOR_SIZE); //
但当卡容量大于4G时在电脑上还是打不开,提示需要格式化,小于4G时就可以上打开。我的程序是用SD卡模拟U盘功能。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-5-22 16:05:23 | 显示全部楼层
fanyanxi 发表于 2018-5-22 15:52
SD_Error SD_SelectDeselect(uint64_t addr);
SD_Error SD_ReadBlock(uint8_t *readbuff, uint64_t Read ...

直接使用我们的那个驱动文件,试试。
回复

使用道具 举报

35

主题

73

回帖

343

积分

高级会员

超越昨天

积分
343
QQ
 楼主| 发表于 2018-5-23 09:36:23 | 显示全部楼层
eric2013 发表于 2018-5-22 16:05
直接使用我们的那个驱动文件,试试。

谢谢,问题解决了,替换文件后读大容量的卡正常了,我再问一下,我现在是CLASS10的卡如果换成CLASS4的卡,是不是要把SDIO_TRANSFER_CLK_DIV提高点,现在是0X00。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-5-23 09:55:20 | 显示全部楼层
fanyanxi 发表于 2018-5-23 09:36
谢谢,问题解决了,替换文件后读大容量的卡正常了,我再问一下,我现在是CLASS10的卡如果换成CLASS4的卡 ...

这个好像不用管它。我没设置过,我一直用的Class4.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 00:29 , Processed in 0.164007 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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