CMD253C3
100000
-/-
现货库存,如实报货,价格优势,一站式配套服务
CMD253C3
10000
/23+
-
CMD25
12500
QFN/2025+
全新原装,一级代理价格优势,可长期订货
CMD25
80000
-/23+
原装现货
CMD25
80000
-/23+
原装现货
CMD25
8750
SOP8/2024+
原厂原装现货库存支持当天发货
CMD25
3588
-/-
原装 部分现货量大期货
CMD250005A
10000
QFN16/22+
终端可以免费供样,支持BOM配单
CMD250005A
3588
-/-
原装 部分现货量大期货
CMD251C3
200
QFN/22+
原装进口订货7-10天
CMD251C3
12100
-/23+
Qorvo专营,原装现货
CMD252-0000
2501
SOP16/0347+
全新原装有现货鑫盛金诚信经营
CMD252-0000
1100
SOP16/2025+
一级代理,原装假一罚十价格优势长期供货
CMD252-0000
35922
SOP16/-
一手渠道 假一罚十 原包装常备现货林R Q2280193667
CMD252-0000
12500
SOP16/24+
100%原装深圳现货
CMD252-0000
2501
SOP16/0347+
全新原装有现货鑫盛金诚信经营
CMD252C4
1956
-/2313
原厂原装现货射频混合器,优势库存
CMD252C4
23
-/22+
找IC 上CIC电子交易网 网址WWW.CIC.NET.CN
CMD253
5000
-/25+
海外原装 发货7-10天
CMD253C3
10000
/23+
-
模式的等待状态,这是数据传输模式的初始状态。此时通过卡选择命令cmd7就进入传输状态,可以进行数据的写入与读出了。 3. 2 sd写操作 sd卡的读写是以数据块为基本单位的。数据块的大小因卡而异,通常块大小为512字节(byte)到2048字节。特定卡的数据块的大小在卡的特性寄存器(csd)中有定义。特殊情况下,部分卡支持小块(最小可以字节为单位)读写。但推荐以块为单位进行读写。 sd卡支持单块写入和多块写入。单块写入使用命令cmd24,多块写入使用命令cmd25。当有多个数据块要写入时,使用多块写入要比多次执行单块写入能获得更高的效率。 由于sd卡内部具有缓存区,上述过程sd卡处于接收数据状态,接收到的数据并未真正写入到sd卡的记忆体(memo2ry)内,而是存放在sd卡的缓存区内。当接收数据完成后, sd卡自动进入数据编程状态,这才真正地把数据写入sd卡的记忆体内。 3. 3 sd读操作 与写操作对应, sd卡支持单块读取和多块读取。单块读取使用命令cmd17,多块读取使用命令cmd18。当有多个数据块要读取
d(sd_init,0); //发送初始化命令retry++;if(retry==100) //重试100次{sd_disable(); //关片选return(init_cmd1_error); //如果重试100次失败返回错误号}}while(temp!=0);sd_disable(); //关片选return(true); //返回成功}数据块的读写 完成sd卡的初始化之后即可进行它的读写操作。sd卡的读写操作都是通过发送sd卡命令完成的。spi总线模式支持单块(cmd24)和多块(cmd25)写操作,多块操作是指从指定位置开始写下去,直到sd卡收到一个停止命令cmd12才停止。单块写操作的数据块长度只能是512字节。单块写入时,命令为cmd24,当应答为0时说明可以写入数据,大小为512字节。sd卡对每个发送给自己的数据块都通过一个应答命令确认,它为1个字节长,当低5位为00101时,表明数据块被正确写入sd卡。 在需要读取sd卡中数据的时候,读sd卡的命令字为cmd17,接收正确的第一个响应命令字节为0xfe,随后是512个字节的用户数据块,最后为2个字节的crc验证码。
接收数据,并通过txdata 发送数据。主要的数据传输方式有两种:比特流数据传输和多块数据传输,另外,该控制器还支持无响应包数据传输。为确保传输的正确,包含了crc16 校验的子模块。 2.2 cmd控制模块的设计 由于sd/mmc 卡的操作命令不一致,在模块中并没有对命令作译码,而是通过软件来设置命令的类型。单块(signalblock data)读数据命令(cmd17),写数据命令(cmd24);多块(multi-block data)读数据命令(cmd18),写数据命令(cmd25)等需要控制模块根据sd_cmd_index 寄存器的内容来发布相应的命令,并作不同的状态转换。cmd 控制模块的状态转换图如图2 所示。 图2 cmd 控制模块的状态转换 2.3 data控制模块的设计 本模块主要功能是向卡发送数据和从卡读取数据,另外,针对sd 卡该模块可以通过data[3] 检测卡是否插入,通过data[2]发送读等待信号,通过data[1]接收卡送来的中断信号以及通过data[0]来检测卡是否处于忙状态。 apb 总线上还有其他一些功能模块,如sp
输入输出。 以下是本系统软件模拟spi时序的部分c语言代码: (2)sd卡的初始化。 sd卡的初始化流程图,如图10所示。sd卡上电延时74个时钟周期后,单片机向sd卡发送复位命令cmd0使sd卡进入spi模式,之后循环发送激活sd卡指令cmd1直到接收到sd卡响应的第0位为"0". 图10 sd卡初始化流程 (3)sd卡数据块的读写。 完成sd卡的初始化后,就可以对sd卡进行读写操作。读写操作都是通过指令来完成的:单块写命令cmd24,多块写命令cmd25;单块读命令cmd17,多块读命令cmd18.单块读写时,数据块的长度为512字节,多块读写时sd卡收到一个停止命令cmd12后停止读写。图11和图12分别是sd卡单块读、写的spi时序图,图13和图14分别是单块读、写sd卡的软件流程图。 图11 单块读时序图 图12 单块写时序图 图13 读sd卡流程图 图14 fat16文件读写流程图 4. fat16 文件读写 按照fat16 文件系统的文件组织规范,编写读文件函数和写文件函数。fat16 文件读写
retry==100) //重试100次 {sd_disable(); //关片选 return(init_cmd1_error); //如果重试100次失败返回错误号 } }while(temp!=0); sd_disable(); //关片选 return(true); //返回成功 } 数据块的读写 完成sd卡的初始化之后即可进行它的读写操作。sd卡的读写操作都是通过发送sd卡命令完成的。spi总线模式支持单块(cmd24)和多块(cmd25)写操作,多块操作是指从指定位置开始写下去,直到sd卡收到一个停止命令cmd12才停止。单块写操作的数据块长度只能是512字节。单块写入时,命令为cmd24,当应答为0时说明可以写入数据,大小为512字节。sd卡对每个发送给自己的数据块都通过一个应答命令确认,它为1个字节长,当低5位为00101时,表明数据块被正确写入sd卡。 在需要读取sd卡中数据的时候,读sd卡的命令字为cmd17,接收正确的第一个响应命令字节为0xfe,随后是512个字节的用户数据块,最后为2个字节的crc验证码。