硬汉嵌入式论坛

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

[FatFs] 128MB SD卡初始化失败

[复制链接]

11

主题

135

回帖

168

积分

初级会员

积分
168
发表于 2023-3-16 17:53:25 | 显示全部楼层 |阅读模式
static uint32_t SD_PowerON(SD_HandleTypeDef *hsd)
{
  __IO uint32_t count = 0;
  uint32_t response = 0, validvoltage = 0;
  uint32_t errorstate = HAL_SD_ERROR_NONE;

  /* CMD0: GO_IDLE_STATE */
  errorstate = SDMMC_CmdGoIdleState(hsd->Instance);
  if(errorstate != HAL_SD_ERROR_NONE)
  {
    return errorstate;
  }

  /* CMD8: SEND_IF_COND: Command available only on V2.0 cards */
  errorstate = SDMMC_CmdOperCond(hsd->Instance);
       
       
       
       
  if(errorstate != HAL_SD_ERROR_NONE)
  {
    hsd->SdCard.CardVersion = CARD_V1_X;

                errorstate = SDMMC_CmdAppCommand(hsd->Instance, 0);  // 这是什么操作
               
                errorstate = SDMMC_CmdAppCommand(hsd->Instance, 0);

    /* Send ACMD41 SD_APP_OP_COND with Argument 0x80100000 */
    while(validvoltage == 0)
    {
      if(count++ == SDMMC_MAX_VOLT_TRIAL)
      {
        return HAL_SD_ERROR_INVALID_VOLTRANGE;
      }
。。。

这是初始化SD卡的时候,SD_PowerON 函数,是ST的库文件, errorstate = SDMMC_CmdAppCommand(hsd->Instance, 0);  没有后填上的这句,命令就超时。


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2023-3-17 11:21:06 | 显示全部楼层
这个是HAL还是标准库。

如果是HAL库,我测试过H7核F4的,128G和256G都没问题。
回复

使用道具 举报

11

主题

135

回帖

168

积分

初级会员

积分
168
 楼主| 发表于 2023-3-17 16:04:08 | 显示全部楼层
eric2013 发表于 2023-3-17 11:21
这个是HAL还是标准库。

如果是HAL库,我测试过H7核F4的,128G和256G都没问题。

HAL库,我用的128MB的小卡
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2023-3-18 10:18:55 | 显示全部楼层
exp_exp 发表于 2023-3-17 16:04
HAL库,我用的128MB的小卡

低于8GB的,建议不要研究了,就测试JD上卖的主流SD卡。符合市场需求
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 11:50 , Processed in 0.155186 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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