OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2663|回复: 0

SD卡初始化时发送CMD8返回响应超时,怎么回事

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2020-3-10
在线时间
14 小时
发表于 2020-4-1 18:36:13 | 显示全部楼层 |阅读模式
复制别人代码,在SD卡初始化时发送CMD8返回响应超时,运行别人代码没问题,将代码的初始化部分复制后运行就对CMD8没响应,卡是4G的SDHC卡,请大神指点
/* CMD8: SEND_IF_COND
   * Send CMD8 to verify SD card interface operating condition
         *         
   * Argument: - [31:12]: Reserved (shall be set to '0')
   *           - [11:8] : Supply Voltage (VHS) 0x1 (Range: 2.7-3.6 V)
   *           - [7:0]  : Check Pattern (recommended 0xAA)
   * CMD Response: R7
         */
         /* 接收到命令sd会返回这个参数 */
  SDIO_CmdInitStructure.SDIO_Argument = SD_CHECK_PATTERN;
       
  SDIO_CmdInitStructure.SDIO_CmdIndex = SDIO_SEND_IF_COND;       
  SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_Short;         
  SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;                                                        
  SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;
  SDIO_SendCommand(&SDIO_CmdInitStructure);

  /*检查是否接收到命令*/
  errorstatus = CmdResp7Error();
       
        /* 有响应则card遵循sd协议2.0版本 */
  if (errorstatus == SD_OK)                 
  {
                /* SD Card 2.0 ,先把它定义会sdsc类型的卡 */
    CardType = SDIO_STD_CAPACITY_SD_CARD_V2_0;
               
                /* 这个变量用作ACMD41的参数,用来询问是sdsc卡还是sdhc卡 */
    SDType = SD_HIGH_CAPACITY;       
  }
        return errorstatus;


返回errorstatus是响应超时,读SDIO 命令响应寄存器和SDIO 响应 1..4 寄存器(SDIO_RESPx)都是空的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 11:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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