赞
踩
官方SDK并没有提供EMMC读写教程,但是提供了SD卡读写教程,由于SD卡和EMMC底层使用的API是相同的,可参考。SD卡例程地址
https://www.analog.com/cn/design-center/evaluation-hardware-and-software/software/adswp-ucfs.html#software-overview
SC58x用于EMMC读写的外设是MSI,翻看参考手册,只支持EMMC4.5版本,主频最大为52M,支持8线读写。
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。
A、设置BLOCK个数
B、设置BLOCK长度512个字节,写buffer地址
C、1个BLOCK使用CMD24命令;多个BLOCK使用CMD25命令;设置超时时间,开始写数据
D、使用CMD13不断查询写完成
A、设置BLOCK个数
B、设置BLOCK长度512个字节,读buffer地址
C、1个BLOCK使用CMD17命令;多个BLOCK使用CMD18命令;设置超时时间,开始读数据
D、使用CMD13不断查询读完成
初始化的寄存器相对较为多,本人比较偷懒,直接扒了NXP官方库的EMMC代码,把对应的底层函数替换成ADI对应函数,直接上马。
欢迎技术交流QQ 736009573
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。