OpenEdv-开源电子网

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

SPI SD卡clock问题

[复制链接]

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
发表于 2013-3-21 15:47:44 | 显示全部楼层 |阅读模式
原子哥,请教一下,如果我使用SPI1 ,因为SPI1的clock是RCC_APB2Periph_SPI1,与SPI2不一样。
//SD卡初始化的时候,需要低速
void SD_SPI_SpeedLow(void)
{
  SPI1_SetSpeed(SPI_BaudRatePrescaler_256);//设置到低速模式 
}
//SD卡正常工作的时候,可以高速了
void SD_SPI_SpeedHigh(void)
{
  SPI1_SetSpeed(SPI_BaudRatePrescaler_2);//设置到高速模式 
}
这两个函数参数需要改么。

其他设置除了3个pin 还有 名字之外,有需要改动的参数么?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

54

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2012-2-27
在线时间
7 小时
 楼主| 发表于 2013-3-21 18:43:26 | 显示全部楼层
原子哥,关于r1,我看代码里
do
{
r1=SD_SendCmd(CMD0,0,0x95);//进入IDLE状态
}while((r1!=0X01) && retry--);
这时候返回r1 = 0x01是正确的

do
{
SD_SendCmd(CMD55,0,0X01); //发送CMD55
r1=SD_SendCmd(CMD41,0x40000000,0X01);//发送CMD41
}while(r1&&retry--);
这里r1返回应该是0x00
这个返回值什么时候是01什么时候是00是SD卡2.0协议里规定的么?
手册里RI响应格式里只说第0位是闲置
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-21 21:44:53 | 显示全部楼层
回复【楼主位】wwjdwy:
---------------------------------
SPI1的频率是其他的2倍,你把原来的设置/2即可。

回复【2楼】wwjdwy:
---------------------------------
SD卡2.0协议有详细描述,请参考相关资料。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-23 23:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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