硬汉嵌入式论坛

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

[SD/SDIO] SD卡初始化问题

[复制链接]

18

主题

324

回帖

378

积分

高级会员

积分
378
发表于 2019-4-18 17:27:03 | 显示全部楼层 |阅读模式
SD开在初始化的时候进行了如下设置
  1.   uSdHandle.Instance = SDMMC1;

  2.   uSdHandle.Init.ClockDiv            = 2;
  3.   uSdHandle.Init.ClockPowerSave      = SDMMC_CLOCK_POWER_SAVE_DISABLE;
  4.   uSdHandle.Init.ClockEdge           = SDMMC_CLOCK_EDGE_RISING;
  5.   uSdHandle.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;
  6.   uSdHandle.Init.BusWide             = SDMMC_BUS_WIDE_4B;
复制代码
然后调用了
  1. if(HAL_SD_Init(&uSdHandle) != HAL_OK)
复制代码
继续调用
  1.   /* Initialize the Card parameters */
  2.   if (HAL_SD_InitCard(hsd) != HAL_OK)
复制代码
在HAL_SD_InitCard中对最前面的结构体成员又进行了一次赋值
  1. HAL_StatusTypeDef HAL_SD_InitCard(SD_HandleTypeDef *hsd)
  2. {
  3.   uint32_t errorstate;
  4.   HAL_StatusTypeDef status;
  5.   SD_InitTypeDef Init;

  6.   /* Default SDMMC peripheral configuration for SD card initialization */
  7.   Init.ClockEdge           = SDMMC_CLOCK_EDGE_RISING;
  8.   Init.ClockPowerSave      = SDMMC_CLOCK_POWER_SAVE_DISABLE;
  9.   Init.BusWide             = SDMMC_BUS_WIDE_1B;
  10.   Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;
  11.   Init.ClockDiv            = SDMMC_INIT_CLK_DIV;
复制代码



请问这里如何理解。
回复

使用道具 举报

18

主题

324

回帖

378

积分

高级会员

积分
378
 楼主| 发表于 2019-4-18 17:40:36 | 显示全部楼层
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2019-4-18 17:46:04 | 显示全部楼层
第一步其实仅配置一个uSdHandle.Instance = SDMMC1就行,

但是函数HAL_SD_Init里面的开头部分有断言检测参数是否有效,开断言的话会通不过。

而后面的操作是初始阶段的SDIO配置,工作在400KHz,后面才升级到高时钟频率下工作。
回复

使用道具 举报

18

主题

324

回帖

378

积分

高级会员

积分
378
 楼主| 发表于 2019-4-18 22:40:06 | 显示全部楼层
eric2013 发表于 2019-4-18 17:46
第一步其实仅配置一个uSdHandle.Instance = SDMMC1就行,

但是函数HAL_SD_Init里面的开头部分有断言检测 ...

请问后面是在哪里把时钟频率改高的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2019-4-18 22:42:32 | 显示全部楼层
王海靖 发表于 2019-4-18 22:40
请问后面是在哪里把时钟频率改高的

全工程检索“SDMMC_BUS_WIDE_4B”就找到了,还有一个配置4bit带宽的地方
回复

使用道具 举报

18

主题

324

回帖

378

积分

高级会员

积分
378
 楼主| 发表于 2019-4-19 10:05:54 | 显示全部楼层
eric2013 发表于 2019-4-18 22:42
全工程检索“SDMMC_BUS_WIDE_4B”就找到了,还有一个配置4bit带宽的地方

谢谢回复
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-1 06:56 , Processed in 0.360928 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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