MSP430 SD卡SPI读写操作(2) —— SD卡SPI操作流程
来源:互联网 发布:淘宝标题营销词位置 编辑:程序博客网 时间:2024/06/10 09:26
转载自 http://www.xinkuokuo.top/lab/17.html
本节介绍SD卡SPI模式基本操作流程,包括初始化、读和写的相关命令和操作流程。
相关命令和响应的描述请见第一节:MSP430 SD卡SPI读写操作(1) —— SD卡命令
一、SPI模式
二、RESET(SD卡复位)
三、SD卡初始化
四、SD卡读单块
五、SD卡读多块
六、SD卡写单块
七、SD卡写多块
一、SPI模式
SD卡SPI模式需要SD卡作为从机,MCU作为主机进行通信。可以采用三线SPI(SCLK,MISO,MOSI)外加一个片选信号线CS来进行控制和通信。需要注意一下几点:1、SD卡的初始化速度不能大于400KHz,即复位和初始化过程SPI的速率要限制在400KHz以下,在实际测试过程中,即使速率小于400KHz,也会出现一定几率的初始化失败,最后在多次尝试后将速率设置在125KHz后比较稳定,不知道是不是和电路有关系。
2、SPI的极性 = 1 相位 = 0
3、向SD卡写入命令的过程为
(1) 拉低CS
(2) 向SD卡写入指令,然后附加发送8个时钟,使SD卡完成此次操作
(3) 接收SD卡响应
(4) 拉高CS,然后附加发送8个时钟
4、发送 ACMD 指令时,需要首先发送 CMD55 告诉SD卡下一条指令为应用程序特定指令( ACMD 指令)。
二、RESET(SD卡复位)
SD卡在上电后是处于SD模式,RESET命令使其进入SPI模式。具体流程为:1、拉高CS,发送至少74个时钟周期使SD卡稳定
2、拉低CS,发送CMD0
3、由第一节知CMD0返回R1,需要收到回应0x01表示 in idle state
4、拉高CS,附加发送8个时钟
后面的操作因为CS的操作没有特殊情况,因此不列出了。
三、SD卡初始化
SD卡初始化可以使用CMD1 和 ACMD41 两种方式。官方文档不推荐CMD1方式,原因有两个:一是对于1.4mm厚的标准尺寸SD卡,CMD1是非法的指令;二是因为ACMD41可以很容易的区分SD卡和MMC卡。在这里只介绍ACMD41初始化方式。1、发送CMD55,收到0x01表示 in idle state
2、发送ACMD41,返回R1,在这里R1的in idle state用来表示SD卡是否处于初始化状态,因此需要循环读取直到0x00
四、SD卡读单块
1、发送CMD17,收到0x00表示发送成功2、连续读取知道读到0xFE
3、读一个block (通常为512字节)
4、读两个CRC字节
五、SD卡读多块
1、发送CMD18,收到0x00表示发送成功2、连续读直到读到0xFE
3、读一个block (通常为512字节)
4、读两个CRC字节
5、如果要读取下一个block,重复步骤2-4
6、发送CMD12来停止读多块操作
六、SD卡写单块
1、发送CMD24,收到0x00表示发送成功2、发送若干时钟
3、发送写开始标志0xFE
4、发送一个block (通常为512字节)
5、发送两个CRC字节
6、连续读直到读到二进制 xxx00101表示数据写入成功
7、连续读忙检测,直到读到0xFF表示操作完成
七、SD卡写多块
1、发送CMD25,收到0x00表示发送成功2、发送若干时钟
3、发送写开始标志0xFC
4、发送一个block (通常为512字节)
5、发送两个CRC字节
6、连续读直到读到二进制 xxx00101表示数据写入成功
7、如果想写下一个block,则重复步骤2 - 6
8、发送写停止标志 0xFD 来停止写操作
7、连续读忙检测,直到读到0xFF表示操作完成
0 0
- MSP430 SD卡SPI读写操作(2) —— SD卡SPI操作流程
- MSP430 SD卡SPI读写操作(1) —— SD卡命令
- MSP430 SD卡SPI读写操作(3) —— SD卡读写实现(以MSP430F5438A为例)
- MSP430 SD卡SPI读写操作(4) —— FatFs文件系统实现(以MSP430F5438A为例)
- STM32 SPI读写SD卡
- STM32F051 SPI操作SD卡注意事项
- SD卡 SPI模式读写要点
- STM32 SPI方式读写SD卡
- sd卡---spi协议
- sd卡---spi协议
- SD卡之SPI
- sd卡---spi协议
- sd卡读写操作
- 单片机spi驱动SD卡
- stm32f4基于spi用fatfs读写SD卡的实现
- stm32f4基于spi用fatfs读写SD卡的实现
- Android SD卡读写操作
- MSP430的SPI通信例程(SD卡初始化-理论解说)
- iOS9适配 之 关于info.plist 第三方登录 添加URL Schemes白名单
- test
- struct结构体初始化
- 数据库5 索引 动态哈希(Dynamic Hashing)
- Android L纳入蓝牙4.1物联又近一步
- MSP430 SD卡SPI读写操作(2) —— SD卡SPI操作流程
- Java发送http的get、post、put请求
- NSString转换成NSNumber
- Java编程开发设计模式之工厂模式Fatory Method
- 1003 Problem C
- 作为一个程序员我最大的遗憾
- 顾客端我的订单开发心得与体会
- Service Activity三种交互方式
- android:exported 属性详解