sdio/mmc/sd笔记
[SDIO] SD card 初始化及常用命令解析 https://blog.csdn.net/u010443710/article/details/107014873
cmd0命令,是单向命令,host->device。不能保证硬件连接。
cmd8命令,是双向命令,能接收到ack,说明硬件通信是ok的。
MMC/SD/SDIO介绍
http://www.wowotech.net/basic_tech/mmc_sd_sdio_intro.html
了解一个功能模块,硬件接口是一个入门点。
mmc、sd,sdio。 有1根clk,1根cmd,8根data(可以选择1根或者4根)。
artosyn 驱动芯片,
sdhci对应emmc驱动,
dw_mmc,对应sd驱动。
emmc,sd,sdio 3个都是复用的接口
mmc工作异常,主要可以如下分析
1、驱动是否加载了。
2. pin share是否配置正确了,
3.dts是否配置ok,参数比较多,https://blog.csdn.net/sunny_hu92/article/details/78542757
4. clock 是否开启了。
对于热插拔的设备,设备枚举方式:
1.中断
2.轮询,
3.手动触发枚举。
sdio设备枚举,命令
https://document.chipintelli.com/软件开发/SDK/CI110X芯片SDK/driver/ci110x_driver/sdio/
CMD0 | 复位总线命令 |
---|---|
CMD5 | sdio卡电压识别 |
CMD3 | 请求从机RCA |
CMD7 | 选中从机 |
CMD52 | 寄存器fn读写 |
CMD53 | 数据读写 |
emmc 芯片分区,分别boot,主要用于启动操作系统
https://linux.codingbelief.com/zh/storage/flash_memory/emmc/emmc_partitions.html
5.卡识别不到问题分析:
A.是不是电压切换导致的
将电压调整删除掉
sd-uhs-sdr12;
sd-uhs-sdr25;
sd-uhs-sdr50;
sd-uhs-sdr104;
未删除sdr104 报错如下,cmd11是电压切换功能
[ 2.963507] dwmmc_rockchip ff0c0000.dwmmc: Unexpected CMD11 timeout
[ 2.993507] dwmmc_rockchip ff0c0000.dwmmc: Busy; trying anyway
[ 2.993513] mmc_host mmc0: Timeout sending command (cmd 0x202000 arg 0x0 status 0x0)
————————————————
B.卡概率识别问题,
mmc1: new high speed SD card at address b368
mmcblk1: mmc1:b368 SMI 486 MiB
[mmc1] Data transmission error !!!! MINTSTS: [0x00002000]
dwmmc_rockchip ff0c0000.rksdmmc: data FIFO error (status=00002000)
mmcblk1: error ‐110 sending status command, retrying
need_retune:0,brq‐>retune_retry_done:0.
降频和增加卡检测延时增强电源稳定性,如果降频OK的话,请检查硬件layout;
&sdmmc {
card‐detect‐delay = <1200>;
}
具体请参考:https://blog.csdn.net/h_8410435/article/details/105427238
最新文章
- 关于在linux中使用图形界面的网络管理工具
- java mkdir()和mkdirs()的区别
- Entity Framework 实体框架的形成之旅--界面操作的几个典型的处理(8)
- mysql转换引擎的方法
- HDU 1560 DNA sequence A* 难度:1
- CSS3 圆形时钟式网页进度条
- 【转】QTP书写程序技巧
- bzoj 3110: [Zjoi2013]K大数查询 树状数组套线段树
- 适配器模式及C++实现
- angular之$watch、$watchGroup、$watchCollection
- zabbix java api
- SSM框架开发web项目系列(二) MyBatis真正的力量
- 14_Python字符串操作方法总结
- c# excel print 打印 将所有列调整为一页
- 转载:消息队列MQ
- C++ 智能指针一
- javascript常用积累
- Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)
- e793. 监听JSpinner数据变化
- .windows安装使用这些偏底层的Python扩展太