SD NAND的SD模式与SPI模式的初始化
最近很多客户朋友在询问我们CS创世 SD NAND能不能使用SPI接口,两者使用起来有何区别,下面为大家详细解答。
SD MODE:
CS创世 SD NAND支持SD模式和SPI模式,SD NAND默认为SD模式,上电后,其初始化过程如下:
1.配置时钟,0-400KHZ,设置工作模式
2.发送CMD0,使卡进入idle状态,该指令没有反馈
3.发送CMD8,如果有反应,那就是CRC值与发送的相同,说明该卡兼容SD2.0协议,同时还是获取SD的工作电压
4.发送CMD55+ACMD41,判断SD卡的上电是否正确,短响应成功说明该卡为SD卡(短响应第31位为1,说明为HC卡),否则发送CM0,有反应说明为MMC卡
5.发送CMD2验证SD卡是否正确接入,长响应(CID)
6.发送CMD3,读取SD卡的RCA(地址),短响应
7.发送CMD9,获取CSD寄存器来获取卡的相关信息
8.发送CMD7,使能SD卡
9.配置高速时钟,准备数据传输,一般为20M-25M
SPI MODE:
1.设置SPI时钟为低速0~400khz-------------SD卡初始化只能在低速模式下进行
2.发送至少74个周期的时钟信号-------------建议适当多发送一些(怕有些电路有延时)
3.发送SD卡命令CMD0-------------------------使在SD卡收到复位命令时,CS为有效电平(低电平),则SD卡切换到SPI模式,进入IDLE状态
4.发送CMD8(SD2.0)--------针对SD2.0进行鉴别同时读取后续4个字节返回值,判断其是否支持工作电压(例如:2.7~3.6v支持则为0x01aa)
5.发送CMD55+ACMD41(SD2.0)-----检测初始化是否完成
6.发送CMD58------------------------对SD2.0版本进一步确认SD卡型号(SDHC为扇区块寻址,普通SD卡为字节寻址)
7.发送CMD55+ACMD41(SD1.0)----------------检测返回值进行判断为SD1.0或MMC卡
8.发送CMD55+ACMD41(SD1.0)----------------检测初始化是否完成
9.发送CMD1(MMC)--------------------------------针对MMC卡进行初始化
10.发送CMD16-------------------------------------设置SD卡扇区大小(默认为512字节)
设置SPI时钟为高速,最大为25Mhz,初始化完成
SD模式与SPI模式的区别:
1.SD NAND默认为SD MODE,而进入SPI MODE必须在第一次上电的时候就要点复位
2.SD MODE 默认为单线输出date0,但是在高速模式下可以走四线,date0~date3;在SD NAND下走的SPI MODE ,只能走单线模式,其通信只有CS(片选)、CLK(时钟)、DI(输入)、DO(输出)
3.很多客户由于板子上只有SPI接口,所以用SPI MODE 能让客户减少设计上的压力,不过SD NAND使用SPI MODE只能走单线,相比于SD MODE 四线来说传输速度会慢。
4.接口连接:
5.SD模式下的命令为16位,SPI模式下的命令为8位
以上为CS创世SD NAND 在SD MODE 和SPI MODE 使用时的初始化过程介绍, 目前CS创世 SD NAND在市面上广泛应用,在穿戴类的消费市场,以及航空航天、铁路交通、水利检测等工业领域都有应用,欢迎有兴趣的朋友来电咨询,我们竭诚为您服务。