SD卡初始化顺序
- 格式:docx
- 大小:176.20 KB
- 文档页数:4
SD卡设计基础指南目录1、概述 (3)2、SD卡硬件设计规范指导 (3)2.1 SD卡接口总线分类 (3)2.1.1 SD总线拓扑 (4)2.1.2 SPI总线拓扑 (4)2.2 SD卡接口定义 (5)2.3 SD卡工作原理以及总线协议 (7)2.4 SD卡典型应用电路图 (8)2.7 SD卡PCB布局与走线规范 (10)3、SD卡规格总览 (13)3.1 SD卡种类 (13)3.2总线速 (13)3.3 智能型SDIO(iSDIO,无线局域网络SD) (15)4、SD卡的测试 (16)5、参考文献 (16)1、概述SD卡全名:Secure Digital Memory Card,它是由日本松下、东芝及美国SanDisk 公司于1999年8月共同开发研制,具有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
SD存储卡是特别为符合新出现的音频和视频消费电子设备的安全性、容量、性能和环境要求而设计的一种存储卡,它有比较高的数据传送速度,而且不断更新标准。
SD卡系统是一个新的大容量存储系统,基于半导体技术的变革。
它的出现,提供了一个便宜的、结实的卡片式的存储媒介,为了消费多媒体应用。
SD卡可以设计出便宜的播放器和驱动器而没有可移动的部分。
一个低耗电和广供电电压的可以满足移动电话、电池应用比如音乐播放器、个人管理器、掌上电脑、电子书、电子百科全书、电子词典等等。
它使用非常有效的数据压缩比如MPEG,SD 卡可以提供足够的容量来应付多媒体数据。
SD卡在24mm*32mm*2.1mm的体积内结合了快闪记忆卡控制与MLC技术和东芝的NAND技术,通过9针的接口与专门的驱动器相连接,不需要额外的电源来保持其上的记忆信息。
无论是听音乐、摄影、拍照、存档、或使用智能型手机,SD规格让制造商每天用效能更高的产品,传递更美好的日常使用经验给上百万个消费者。
作为一种产业通用技术标准,SD提供移动储存产业一个多元化的市场区隔应用,包括:移动电话、数码相机、MP3播放器、个人计算机个人电脑、平板计算机平板电脑、列表机打印机、汽车导航系统、电子书、以及更多消费性电子设备。
爱国者SD存储卡使用指南·第一次使用新卡时a.在使用卡前,必须先格式化。
·sd卡的维护a.卡被插入或取出时请关闭电源。
b.长期重复使用卡将导致其性能降低,此时你需要购买新卡,以备使用。
爱国者公司不保证卡的老化和破损。
c.卡是精密电子器件。
不要折断或以任何重力冲击。
d.请勿将卡存放在强电和强磁场中,例如:在扬声器或电视接收机旁边。
e.请勿在主高温,高湿,高腐蚀的地方使用和保存此卡。
f.请勿将卡接触灰尘,如已沾染灰尘,使用软布清除。
g.当不使用卡时,请将卡保存在盒中。
h.长期拍摄或播放时,您可能发现卡发热,这是正常现象。
·保存sd卡数据(1).如果sd卡出现下列任何情况,记录数据可能陂破坏:a.使用sd卡的方式不正确。
b.初始化,播放资料,记录资料时关闭电源或取出sd卡。
(2).建议将重要资料复制保管在其它媒体作为备份,例如:软盘、硬盘、cd等。
(3).对于不正常使用SD卡造成的记录资料丢失,爱国者公司不负任何责任,敬请谅解。
aigo SD CARD Quick Guide·How to use the SD CARD:SD CARD is easy to use, the instructions on how to use SD CARD with Windows 2000/XP/Vista on computer/camera are shown below:1. 1) Turn on your computer.1. 2) Plug the SD CARD into the SD MMC MS of the computer. The SD CARD symbol should appearunder the”My Computer”file. Under Windows 2000/XP, an icon will appear in the taskbar.1. 3) Plug the SD CARD into the SD MMC MS of the camera. The SD CARD symbol should appear ,andthe camera will have the memory space of the SD CARD.· Technical parameter-Capacity: 2~32GB-Erase cycles > 5,000times-Data Transfer Rate: up to 480Mbps-Connectivity: USB Port Type A。
1.1初始化概述1.2预初始化1.3通过ROM代码初始化设备1.4 HLOS支持服务1.1初始化概述本章概述了从开机到操作系统(OS)和应用程序执行的设备初始化要求、整个初始化过程(包括硬件和软件相关步骤)、一般ROM代码操作要求和行为预期。
1.1.1术语•Bootstrap:在内存引导阶段由ROM代码启动的初始软件•配置头(CH):初始软件之前的可选结构,允许重新定义ROM代码默认设置•下载软件:在外围设备启动阶段,通过ROM代码将初始软件下载到内部静态RAM(SRAM)•eFuse:通常在工厂设置的一次性可编程存储器位置•闪存加载程序:在预闪存阶段由ROM代码启动的下载软件。
它还可以在外部存储器中编程图像。
•初始软件:由任何ROM代码机制执行的软件(内存启动或外围启动)。
初始软件是引导和下载软件的通用术语。
•内存引导:ROM代码机制,包括从外部内存执行初始软件•主CPU:ARM®Cortex®-A15 MPCore™CPU-ID为0的CPU。
它配置多核平台并启动ROM代码,以确保设备从大容量存储器(存储器引导)或外围接口(外围设备引导)引导。
•外围启动:ROM代码机制,包括轮询选定的接口、下载和执行内部RAM中的初始软件(在本例中,是下载的软件)•永久引导设备:默认情况下,包含引导序列中要执行的映像的内存设备。
它是默认的内存引导设备。
如果没有对软件引导配置进行编程,则在热复位后使用永久引导设备。
•预闪存:外设启动的一种特殊情况,使用ROM代码机制对外部闪存进行编程•ROM代码:设备ROM中实现引导的片上软件•ROM代码控制启动阶段:该阶段涵盖从平台释放重置到第一个用户或客户拥有的软件开始执行的顺序操作。
此阶段完全由设备ROM代码控制。
•保存和恢复(SAR)RAM内存:在热复位或从低功耗模式唤醒后未清除的片上RAM内存•从CPU:ARM Cortex-A15 MPCore CPU,CPU-ID为1。
sd卡的初始化过程SD卡的初始化过程SD卡(Secure Digital Card)是一种便携式存储媒体,常用于存储数码相机、手机、平板电脑等设备的数据。
在使用SD卡之前,需要对其进行初始化,以确保其正常工作。
下面将详细介绍SD卡的初始化过程。
第一步:检查设备兼容性在初始化SD卡之前,需要确保设备支持SD卡。
一般来说,设备上会标有SD卡的图标或者标识,可以通过查看设备的说明书或者咨询厂家来确定设备是否支持SD卡。
第二步:插入SD卡将SD卡插入设备的SD卡槽中。
SD卡槽通常位于设备的侧面或底部,可以根据设备的说明书来确定SD卡的插入方向。
插入SD卡时要注意不要使用过大的力气,以免损坏SD卡或设备。
第三步:打开设备打开设备的电源开关,等待设备启动完成。
在设备启动过程中,系统会自动检测SD卡的插入,并进行初始化。
第四步:访问SD卡一旦设备启动完成,就可以通过设备的操作界面来访问SD卡。
不同设备的操作界面可能会有所不同,但一般会提供文件管理器或者存储设置等功能,用于管理和操作SD卡上的文件和数据。
第五步:格式化SD卡在初次使用SD卡之前,需要对其进行格式化。
格式化SD卡可以清除SD卡上的所有数据,并建立文件系统以便于数据的读写。
格式化SD卡的操作通常可以在设备的操作界面中找到,一般会有格式化选项供用户选择。
第六步:等待格式化完成在进行格式化操作时,设备会对SD卡进行一系列的处理,包括分区、建立文件系统等。
这个过程可能需要一定的时间,具体时间长短取决于SD卡的容量和设备的处理能力。
在格式化过程中,不要拔出SD卡或关闭设备,以免造成数据丢失或SD卡损坏。
第七步:完成初始化当格式化完成后,设备会提示SD卡初始化成功。
此时,SD卡已经可以正常使用了。
可以通过在设备上存储文件、复制文件、删除文件等操作来验证SD卡的正常工作。
总结SD卡的初始化过程包括检查设备兼容性、插入SD卡、打开设备、访问SD卡、格式化SD卡、等待格式化完成和完成初始化。
sd卡数据读写流程一、概述SD卡是一种常用的存储设备,应用广泛。
在进行SD卡数据读写操作时,需要了解其基本流程及相关细节。
本文将详细介绍SD卡数据读写流程。
二、准备工作1. 确认SD卡类型:根据需求选择合适的SD卡类型,如标准SD卡、Mini SD卡、Micro SD卡等。
2. 准备读写设备:需要使用支持SD卡的读写设备,如读卡器、手机、相机等。
3. 系统环境:根据不同操作系统选择相应的驱动程序和开发工具。
三、初始化SD卡1. 电源接口:将SD卡插入读写设备中,并接通电源。
2. 查找CMD线:通过CMD线查找到SD卡,并发送复位命令。
3. 发送初始化命令:发送初始化命令后,等待SD卡响应并返回状态码。
四、读取CID和CSD寄存器信息1. 发送CMD10命令:通过CMD10命令可以获取CID寄存器信息。
2. 发送CMD9命令:通过CMD9命令可以获取CSD寄存器信息。
五、设置Block长度1. 发送CMD16命令:通过CMD16命令设置Block长度,即每次读取或写入的字节数。
六、数据传输1. 读取数据:发送CMD17命令,指定读取的起始地址和读取的Block数量,等待SD卡响应并返回数据。
2. 写入数据:发送CMD24命令,指定写入的起始地址和写入的Block数量,等待SD卡响应并写入数据。
七、结束操作1. 发送CMD12命令:结束操作前需要发送CMD12命令,以停止多块传输。
2. 断开电源:操作完成后需要断开SD卡电源。
八、注意事项1. SD卡在进行读写操作时需要保持稳定的电压和供电。
2. 操作过程中需要注意各种状态码及其含义。
3. 合理选择Block长度可以提高读写速度。
以上就是SD卡数据读写流程的详细介绍。
在实际应用中,还需要根据具体情况进行合理调整和优化。
内存卡未初始化的原因
内存卡未初始化的原因可能有以下几种:
1. 内存卡可能因为长时间使用或者受到损坏等原因,出现了硬件故障。
这种情况下,进行初始化还是其他操作,内存卡都可能无法正常工作。
2. 内存卡读卡器可能存在问题,比如存在故障或接触不良。
内存卡读卡器是将内存卡与电脑连接的重要设备,如果读卡器存在故障,就可能导致内存卡初始化失败。
3. 内存卡上的数据可能存在异常,比如病毒感染、数据损坏等。
如果内存卡上的数据出现了异常,如病毒感染、数据损坏等,就可能导致内存卡初始化失败。
4. 接触不良也是一个可能的原因。
内存卡与手机接触不良,如松动或有灰尘等,都可能导致初始化失败。
5. 手机系统故障也可能导致内存卡无法正常初始化。
以上信息仅供参考,如果您遇到相关问题,建议寻求专业人员的帮助。
1SD /MMC HOST CONTROLER1.1SD中断检测时序SD中断检测时序主要是配置好正常中断状态使能寄存器和正常中断信号使能寄存器相关的bit 位。
主要是卡插入状态使能(ENSTACARDNS),卡插入信号使能(ENSIGCARDNS),卡移除状态使能(ENSTACARDREM),卡移除信号使能(ENSIGCARDREM)1.2SD时钟提供时序SD时钟提供按下面的操作进行:A:发送一个SD命令B:检测在4bit模式下SD卡产生的中断。
对于停止SD时钟的提供,只要设置SD时钟使能位为0,该寄存器位在时钟控制寄存器1.2.1时钟改变的函数逻辑SD时钟的改变时通过sdhci_s3c_change_clock()函数来处理,其中主要对时钟控制寄存器和超时控制寄存器进行配置,最后通过sdhci_change_clock()函数来处理SD时钟设置,其中包括分频值的计算,以及时钟控制寄存器的配置等。
1.3SD总线电压控制时序1.4改变总线宽度时序1:设置卡中断状态使能位为0,屏蔽不正确的中断,当改变总线宽度时2:如果是SD内存卡,执行第4部,如果是其他的卡,执行第3步3:设置CCCR中的IENM为0,通过CMD52命令4:改变SD卡的位模式。
改变SD内存卡总线的宽度(ACMD6),SDIO卡的总线宽度设置通过CCCR设置5:如果你想改变成4位传输模式,设置数据传输宽度(WIDE4)到Host Control 寄存器为1,其他方式下,设置为0.6:如果是SD内存卡,结束操作,如果是其他卡,继续第7步7:设置IENM(CCCR)位1,通过CMD52命令8:设置卡中断状态使能位为11.5数据线超时设置为了检测数据线的超时错误,HOST Driver应该执行下面两个步骤1:计算一个检测超时分频值,把值写超时控制寄存器2:设置超时数据值到超时控制寄存器1.6SD 数据交换执行这节主要描述产生时序和控制各种SD数据交换。
SD卡的工作原理想了解SD卡的工作原理,首先需要了解的就是SD卡协议了,这个在网上可以轻松的下载到。
在了解协议后,就可以看看下面的一些开发思路了。
首先看下脱离操作系统如何在S3C2410上实现SD卡的读写。
过程可以分为3个大的步骤:初始化sd卡、写sd卡、读sd卡;下面的过程是我通过realview-MDK环境测试过的。
一、初始化sd卡二、写sd卡写sd卡可以分为3种方式:POLL、中断、DMA (1)POLL写三、读sd卡读sd卡也可分为3中方式:POLL、中断、DMA (1)POLL读SD卡linux驱动工作原理,说了下脱离操作系统如何在S3C2410上实现SD卡的读写。
了解了脱离操作系统的工作原理后,现在可以思考linux是如何管理管理SD卡的了。
Linux中SD驱动可以分为3层:块设备层(mmc_block.c ,mmc_sysfs.c,mmc_queue.c)、mmc协议层(mmc.c)、sd驱动层(s3c2410_sdi.c)。
下面从以下几个方面理解驱动:1、s3c2410_sdi.c代码初始化过程;2、SD卡块设备注册过程;3、request及数据传输的实现。
下面介绍的过程参考的代码是内核版本是2.6.8,其它版本过程类似。
一、s3c2410_sdi.c代码初始化过程二、SD卡块设备注册过程三、request及数据传输的实现SD卡调试关键点:1. 上电时要延时足够长的时间给SD卡一个准备过程,在我的程序里是5秒,根据不同的卡设置不同的延时时间。
SD 卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。
2. SD卡发送复位命令CMD0后,要发送版本查询命令CMD8,返回状态一般分两种,若返回0x01表示此SD卡接受CMD8,也就是说此SD卡支持版本2;若返回0x05则表示此SD卡支持版本1。
因为不同版本的SD卡操作要求有不一样的地方,所以务必查询SD卡的版本号,否则也会出现SD卡无法正常工作的问题。
1.1 SD卡模式选择
SD卡上电后进入SD模式,如果SD卡在接收CMD0命令时CS为0则SD卡进入SPI模式并且应答为R1应答,SD卡处于idle状态,回到SD模式的唯一方法就是重新上电。
1.2 SD卡SPI模式下初始化
1、Clock:上电后主机应发送至少74个时钟,在这期间应保持CS为高电平,然后SD卡进入idle模式。
2、进入SPI模式:如果在接受CMD0命令时CS为低电平,则SD卡进入SPI模式,CMD0命令没有参数。
CMD0的应答R1格式,R1应答的内容定义为:
3、CMD8:初始化发送CMD0后,SD卡并不知道当前的电压是否合适,为了验证电压Physical LayerSpecification Version 2.00定义了CMD8命令;初始化发送完CMD0后,在发送ACMD41
之前需发送CMD8,以便初始化High Capacity SD卡,如果SD卡不能在该电压下工作,则SD卡不作应答,并处于idle状态,否则SD卡将作出应答并echo出命令中设置的电压范围和check pattern。
CMD8命令格式:
VHS: 0000b、Others Not Defined
0001b 2.7-3.6V
0010b Reserved for Low Voltage Range
0100b、1000b Reserved
Check Pattern:可为任意8位的数,推荐使用0xaa。
CMD8应答:
4、发送ACMD41:ACMD命令是在发送需要的命令之前发送一个CMD55命令组成的,ACMD41命令由CMD55和CMD41组成,CMD55命令没有参数,应答为R1应答,HCS=1表明主机支持High Capacity SD卡,HCS=0表明不支持。
发送CMD41命令,判断应答是否表明表明SD卡仍然处于初始化阶段;R1应答的bit0为1表明处于idle状态,SD卡还在初始化阶段。
5、初始化完成:当发送ACMD41命令的应答为0x00时表明SD卡已完成ACMD41发起的初始化过程。
这里为大家总结了一下编写该程序所需要的知识:
1.SD卡的官方资料(我承认这个资料很垃圾,比起民间的技术总结它的内容
可谓又臭又长,但是作为基础也要了解一下,SD协议不用看)
2.清晰明了的MMC卡时序图(虽然这个是MMC卡的,但是在初始化的时候
CMD0的时序是一样的)
电路:我用的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.正确的回应内容应该是:
CMD0——0x01(SD卡处于in-idle-state)
CMD55——0x01(SD卡处于in-idle-state)
ACMD41——0x00(SD卡跳出in-idle-state,完成初始化准备接受下一条指令)
这里要说的是如果最后的回应内容还是0x01的话,可以循环发送CMD55+ACMD41,直到回应的内容0x00。
4.在所有的指令中,唯独CMD0特殊,在向SD卡发送以前需要向SD卡发送
74+个时钟。
那么为什么要74个CLK呢?因为在上电初期,电压的上升过程据SD卡组织的计算约合64个CLK周期才能到达SD卡的正常工作电压他们管这个叫做Supply ramp up time,其后的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保持高电平。