SD卡的SPI模式的初始化顺序
来源:互联网 发布:手机上网域名被劫持 编辑:程序博客网 时间:2024/05/16 10:59
电路:我用的SD卡的电路其实很简单,参考SD卡的官方资料中的电路链接就可以的。
供电问题:由于SD卡的电压是3.3V,所以你的CPU必须支持3.3V的IO端口输出。
再来说一说鸡毛蒜皮的细节:
1.为了使SD卡初始化进入SPI模式,我们需要使用的命令有3个:CMD0,ACMD41,CMD55(使用ACMD类的指令前应先发CMD55,CMD55起到一个切换到ACMD类命令的作用)。
2.为什么在使用CMD0以后不使用CMD1?CMD1是MMC卡使用的指令,虽然本文并不想讨论MMC卡的问题,但是我还是要说:为了实现兼容性,上电或者发送CMD0后,应该首先发送CMD55+ACMD41确认是否有回应,如果有回应则为SD卡,如果等回应超时,则可能是MMC卡,再发CMD1确认。
3.正确的回应内容应该是:
4.在所有的指令中,唯独CMD0特殊,在向SD卡发送以前需要向SD卡发送74+个时钟。那么为什么要74个CLK呢?因为在上电初期,电压的上升过程据SD卡组织的计算约合64个CLK周期才能到达SD卡的正常工作电压他们管这个叫做Supplyramp uptime,其后的10个CLK是为了与SD卡同步,之后开始CMD0的操作,严格按照此项操作,一定没有问题。
5.关于SD卡的SPI总线,在读入数据时SD卡的SPI是CLK的上升沿输入锁存,输出数据也是在上升沿。
6.向SD卡写入一个CMD或者ACMD指令的过程是这样的:
首先使CS为低电平,SD卡使能;其次在SD卡的Din写入指令;写入指令后还要附加8个填充时钟,是SD卡完成内部操作;之后在SD卡的Dout上接受回应;回应接受完毕使CS为低电平,再附加8个填充时钟。
7.在SD卡的Din没有数据写入时,应使Din保持高电平。
SD卡要点及心得:
SD卡读一个块:
- SD卡的SPI模式的初始化顺序
- SD卡的SPI模式的调试
- 浅谈SD/MMC卡的SD模式和SPI模式
- 基于SPI模式的SD卡驱动
- spi模式sd卡的linux设备驱动移植
- SD卡对应SD模式和SPI模式的引脚定义
- MSP430的SPI通信例程(SD卡初始化-理论解说)
- SPI方式驱动SD卡的方法
- SD卡的 SPI Mode介绍
- SD卡的初始化流程
- SD卡的初始化流程
- SD卡的初始化操作
- SD卡的初始化流程
- sd卡tf卡进入spi模式
- SD卡 SPI模式读写要点
- SD卡底层驱动 SPI模式
- [FatFs 学习] SD卡总结-SPI模式
- 一个比较高效的SPI方式SD卡的驱动
- Altium Designer画图心得2014
- IAR编译常见错误 【转】
- 430仿真调试
- SPI知识
- SPI概述
- SD卡的SPI模式的初始化顺序
- 深入理解typedef
- 深入理解指针函数
- 文件分配表(FAT)
- FAT32中文版分析+补充(1)
- FAT32中文版分析+补充(2)
- FAT32中文版分析+补充(3)
- FAT32中文版分析+补充(4)
- FAT32中文版分析+补充(5)