前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过ST的HAL库看EMMC初始化驱动

通过ST的HAL库看EMMC初始化驱动

作者头像
用户9736681
发布2023-12-21 15:45:19
1920
发布2023-12-21 15:45:19
举报
文章被收录于专栏:嵌入式随笔嵌入式随笔

如果是把SD卡,emmc卡的驱动合并到一起那会有一些识别卡的步骤。看起来不太好理解。单看emmc的驱动就比较好理解。

整体分两步。第一步,初始化外设控制器获取参数 HAL_MMC_Init。第二步,根据需求配置emmc时钟速率, 总线位宽等 HAL_MMC_ConfigWideBusOperation。

整体流程图如下:

1 初始化外设控制器获取参数 HAL_MMC_Init

1.1 初始化GPIO(HAL_MMC_MspInit)

对外设控制器进行初始化,包括gpio,控制器参数,要使用的dma的配置。

1.2 初始化卡(HAL_MMC_InitCard)

  • 1.2.1 初始化总线位宽、时钟(1bit线、速度400k以下)(SDMMC_Init)
  • 1.2.2 卡时钟输出禁止(__HAL_MMC_DISABLE)
  • 1.2.3 卡控制器电源使能(SDMMC_PowerState_ON)
  • 1.2.4 卡时钟输出使能(__HAL_MMC_ENABLE)
  • 1.2.5 等3ms(HAL_Delay(2))
  • 1.2.6 初始化卡电压(MMC_PowerON)
    • 1.2.6.1 发送CMD0(SDMMC_CmdGoIdleState)
    • 1.2.6.2 发送CMD1(设置访问方式,获取电压、容量范围)(SDMMC_CmdOpCondition)
  • 1.2.7 初始化卡(MMC_InitCard)
    • 1.2.7.1 检查上电状态(SDMMC_GetPowerState)
    • 1.2.7.2 发送CMD2(获取CID寄存器)(SDMMC_CmdSendCID)
    • 1.2.7.3 发送CMD3(设置RCA)(SDMMC_CmdSetRelAddMmc)
    • 1.2.7.4 发送CMD9(获取CSD寄存器内容,容量、时钟等)(SDMMC_CmdSendCSD)
    • 1.2.7.5 发送CMD7(切换状态)(SDMMC_CmdSelDesel)
    • 1.2.7.6 解析CSD寄存器(HAL_MMC_GetCardCSD)
    • 1.2.7.7 发送CMD13(获取状态)(SDMMC_CmdSendStatus)
    • 1.2.7.8 读取EXT_CSD(HAL_MMC_GetCardExtCSD)
    • 1.2.7.9 发送CMD13(获取状态)(SDMMC_CmdSendStatus)
    • 1.2.7.10 初始化总线位宽、时钟(1bit线、速度400k以下)(SDMMC_Init)

2 配置emmc时钟速率, 总线位宽等 HAL_MMC_ConfigWideBusOperation

2.1 操作功率配置 MMC_PwrClassUpdate

  • 2.1.1 获取功率,读取EXT_CSD的187(MMC_ReadExtCSD)
  • 2.1.2 与EXT_CSD的201:203比较
  • 2.1.3 根据需要设置EXT_CSD的187位功率

2.2 配置总线位宽

  • 发送CMD6(SDMMC_CmdSwitch)

2.3 初始化总线位宽、时钟(8bit线、最大速度)(SDMMC_Init)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 初始化GPIO(HAL_MMC_MspInit)
  • 1.2 初始化卡(HAL_MMC_InitCard)
  • 2 配置emmc时钟速率, 总线位宽等 HAL_MMC_ConfigWideBusOperation
    • 2.1 操作功率配置 MMC_PwrClassUpdate
      • 2.2 配置总线位宽
        • 2.3 初始化总线位宽、时钟(8bit线、最大速度)(SDMMC_Init)
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档