OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2882|回复: 1

SDIO研究的一些疑问,请大神赐教

[复制链接]

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2019-9-25
在线时间
16 小时
发表于 2019-9-26 16:08:09 | 显示全部楼层 |阅读模式
最近在研究正点原子的SDIO部分程序,有一些疑问困扰很久,请大神赐教

1、SD_Error SD_PowerON(void)函数中“for(i=0;i<74;i++)//多次发送,直到进入空闲状态”语句循环次数是74,有何依据?
2、SD_Error SD_PowerON(void)函数中ACMD41指令的参数为SD_VOLTAGE_WINDOW_SD | SDType,其值为0X80100000。ACMD41命令参数说明如下,由表格知,位31为保留位,但参数里位31设置为1,是何原因?位30代表主机是否支持大容量卡,若支持则设置为1,但参数里位30设置为0,,是何原因?另外,该参数中SDType的值为0,与该值或运算是出于什么考虑?该值是否可以直接设置为0X40100000(即支持大容量,电压范围为3.2-3.3)?
无标题.png
3、SD_Error CmdResp1Error(u8 cmd)函数中,在返回卡响应之前有“SDIO->ICR=0X5FF;//清除标记”语句,即把位0-位8、位10清零,除此之外其他位(如位9、位22、位23)未清零,有选择的将某些位清零,原因是什么?其中ICR寄存器定义如下:
无标题1.png
4、SD_Error CmdResp7Error(void)函数中,定义了timeout值,即该值减至0时,依然没有收到卡的响应,则返回响应超时错误。但该程序中同时会判断SDIO状态寄存器的位2(命令响应超时)。两种判断超时的方法同时存在,这样做是否冗余?还是存在其他必要性?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4306
金钱
4306
注册时间
2018-6-30
在线时间
808 小时
发表于 2019-9-27 11:41:47 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 18:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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