ADSP SC58x SC584 SC587 SC589 读写EMMC简易教程

一、下载官方SDK

官方SDK并没有提供EMMC读写教程,但是提供了SD卡读写教程,由于SD卡和EMMC底层使用的API是相同的,可参考。SD卡例程地址
https://www.analog.com/cn/design-center/evaluation-hardware-and-software/software/adswp-ucfs.html#software-overview

二、 EMMC外设

SC58x用于EMMC读写的外设是MSI,翻看参考手册,只支持EMMC4.5版本,主频最大为52M,支持8线读写
在这里插入图片描述

三、 加载MSI组件(RSI组件)

在这里插入图片描述

四、初始化EMMC相关配置

1、初始化MSI引脚

在这里插入图片描述

2、EMMC初始化

A、复位EMMC
B、配置EMMC时钟为400Khz,输出时钟,然后至少74个CLK
C、使用CMD0 CMD1 CMD2 CMD3等命令开始配置EMMC,然后继续配置寄存器,例如BLOCK长度、设置 EMMC数据线为8线、EMMC速度等级等等
D、提高CLK到45M,这里我选择OCLK_0/2作为MSI外设时钟,而OCLK时钟,是由450M主频分频得来,这里配置5倍分频,所以得到OCLK=90M,CDU_CLK09=45M。

3、EMMC写

A、设置BLOCK个数
B、设置BLOCK长度512个字节,写buffer地址
C、1个BLOCK使用CMD24命令;多个BLOCK使用CMD25命令;设置超时时间,开始写数据
D、使用CMD13不断查询写完成

4、EMMC读

A、设置BLOCK个数
B、设置BLOCK长度512个字节,读buffer地址
C、1个BLOCK使用CMD17命令;多个BLOCK使用CMD18命令;设置超时时间,开始读数据
D、使用CMD13不断查询读完成

初始化的寄存器相对较为多,本人比较偷懒,直接扒了NXP官方库的EMMC代码,把对应的底层函数替换成ADI对应函数,直接上马。

欢迎技术交流QQ 736009573

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值