OpenEdv-开源电子网

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

关于向sd卡驱动的问题

[复制链接]

2

主题

4

帖子

0

精华

新手入门

积分
33
金钱
33
注册时间
2015-1-4
在线时间
3 小时
发表于 2016-7-9 08:31:53 | 显示全部楼层 |阅读模式
1金钱
向sd卡时钟端口发送时钟信号的问题

我在做sd卡的驱动,遇到了下面的问题,希望能够得到大家的帮助:
首先看看读取命令回应的时钟在什么时刻发送
理解1:不用向sd卡的时钟端口发时钟,用轮询的方法检测sd卡cmd端的信号:
因为回应信息含有起始位信息,所以在发送时钟获得回应信息之前,首先需要捕捉起始位信号0,在没有获得起始位0之前,因为cmd命令线是连接在上拉电阻上的,所以,他的信号一般都是高电平的1,我们可以巡查,不停地检测cmd命令线上的信号,一旦发现了信号0的出现,就表示可以开始向sd卡的时钟信号端发送读取回应的sd卡时钟了,然后在sd卡时钟的驱动下,做读取回应信息的个数计数等读取操作。在此之前是不能向sd卡的时钟端口发送读取回应信息的sd卡时钟的。
理解2:不断的向sd卡的时钟端口发送sd卡时钟,直到获得了sd卡cmd端的信号0,再开始在sd卡时钟的驱动下,做读取回应信息的个数计数等读取操作,
以上两种理解那个是正确的?
向sd卡发送命令的sd卡时钟的理解又该怎样正确理解呢?
我在网上查了很多资料,都没有对这个问题的详细说明,麻烦能够给以指导,谢谢!

真的很佩服你的!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-7-9 21:13:17 | 显示全部楼层
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
33
金钱
33
注册时间
2015-1-4
在线时间
3 小时
 楼主| 发表于 2016-7-22 16:47:10 | 显示全部楼层
       简单的说吧:我是在做一个SD卡的控制器,因此就需要了解如何向SD卡发送命令和从SD卡读取命令的回应;因为目前的资料都没有详细的介绍的SD卡控制器的原理,所以我也就不能详细的了解关于SD卡的命令时序和回应时序。
       先说一下向SD卡发送命令吧,我们先把要发送的命令以及命令参数准备好,然后就是向SD卡按照从高位到低位的顺序,将准备好的48个命令数据流,逐位的送到SD卡的cmd管脚,然后向SD卡的时钟管脚发送一个SD卡的时钟高电平,这个高电平将通知SD卡来接收我们送出到cmd管脚的命令数据,当SD卡时钟完成一个高电平的传送之后,就会转入低电平,在SD卡时钟的低电平区间,我们将再次准备将下一位要传送的命令数据位的值送到SD卡的cmd管脚上,然后再向SD卡的时钟管脚发送一个SD卡的时钟高电平,这个SD卡的时钟高电平将再次通知SD卡来接收我们送出到cmd管脚的命令数据,如此反复直到48位命令数据流全部发送完毕。
       问题:1、命令的长度是48位,起始位的值为0,结束位的值为1,实际有效的位数就是46位,我们应该向SD卡发送48个SD卡时钟还是46个SD卡时钟?
                2、在发送第一个SD卡时钟前,需要做那些基本的判断后才能向SD卡时钟管脚发出高电平的时钟信号
       问题的理解:我用我的理解时序描述如下:
       848843.png
       以上的这个时序图是命令发送和回应接收的通用时序,我对问题1的理解是:我们应该向SD卡发送48个SD卡时钟,不知我的理解正确否?
       关键是时序图中的那句“那些基本判断后才可发出SD卡时钟”来发送命令信息
      
       其次就是从SD卡读取命令的回应前,需要“那些基本判断后才可发出SD卡时钟”来读取命令的回应信息
       我的问题也就是这个问题!不知我的描述您能否理解?
真的很佩服你的!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 21:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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