s5pv210开发与学习:1.15之SD卡启动详解

1.原理图

2.资料查阅

章节8-连通性/存储-----》7.SD/MMC 控制器

本章介绍了S5PV210 RISC微处理器支持的安全数字(SD / SDIO),多媒体卡(MMC),CE-ATA主机控制器和相关寄存器

2.1.SD / MMC控制器概述

SD / MMC主机控制器是安全数字卡和MultiMediaCard的组合主机。 该主机控制器是基于SD协会(SDA)主机标准规范。
SD / MMC主机控制器是系统和SD / MMC之间的接口。 该主机的性能非常好功能强大,时钟频率为52MHz,可同时访问8位数据引脚。

2.2.SD / MMC控制器的主要功能

高速MMC控制器支持:
•SD标准主机规范版本2.0标准
•SD存储卡规范版本2.0 /高速MMC规范版本4.3标准
•SDIO卡规范版本1.0标准
•用于数据Tx / Rx的512字节FIFO
•CPU接口和DMA数据传输模式
•1位/ 4位/ 8位模式切换
•8位2通道或4位4通道
•自动CMD12
•暂停/恢复
•读取等待操作
•卡中断
•CE-ATA模式

2.3.SD / MMC控制器的框图

2.4.操作顺序

本节定义了分为几个子序列的基本操作流程图。 “等待中断”用于流程图。 这意味着主机驱动程序将等待直到声明了指定的中断为止。 如果已经断言,则遵循流程图中的下一步。 超时检查仅在不产生中断时可用。 它是流程图中未描述。

2.4.1 SD卡检测序列

检测SD卡的流程图如图7-2所示。检测SD卡的步骤:
1.要启用用于卡检测的中断,请在以下位写入1:
正常中断状态启用寄存器中的卡插入状态启用(ENSTACARDNS)
正常中断信号使能寄存器中的卡插入信号使能(ENSIGCARDNS)
正常中断状态启用寄存器中的卡移除状态启用(ENSTACARDREM)
正常中断信号使能寄存器中的卡移除信号使能(ENSIGCARDREM)
2.如果主机驱动程序检测到卡的插入或取出,它将清除中断状态。如果产生卡插入中断(STACARDINS),则在“标准中断状态”寄存器中向卡插入写入1。如果产生了卡移除中断(STACARDREM),则在“标准中断状态”寄存器中向卡移除写入1。
3.检查插入到当前状态寄存器中的卡。如果插入的卡(INSCARD)为1,则主机驱动程序为SD卡供电和提供时钟。如果“插入的卡”为0,则它​​将停止主机驱动程序的执行过程。

2.4.2 SD时钟供应序列

将SD时钟设置为SD卡的顺序如图7-3所示。 时钟在以下任一时间之前启用以下动作:
− a)发出SD命令
− b)在4位模式下检测来自SD卡的中断。
将SD Clock设置为SD卡的步骤:
1.通过读取基本时钟频率,计算除数以确定SD时钟的SD时钟频率。请参考时钟控制寄存器(9.15)。
2.在“时钟控制”寄存器中设置内部时钟使能(ENINTCLK)和SDCLK频率选择。根据步骤(1)的计算结果。
3.检查时钟控制寄存器中的内部时钟稳定(STBLINTCLK)。 重复此步骤,直到Clock Stable为1。
4.将时钟控制寄存器中的SD时钟使能(ENSDCLK)设置为1。设置ENSDCLK后,主机控制器将启动SD时钟。

2.4.3 SD时钟停止序列

停止SD时钟的流程图如图7-4所示。如果SD事务在SD总线上发生,即命令禁止(DAT)或命令禁止(CMD),则主机驱动程序不会停止SD时钟。 当前状态寄存器中的设置为1。
1.将时钟控制寄存器中的SD时钟使能(ENSDCLK)设置为0。设置ENSDCLK后,主机控制器停止SD时钟。

2.4.4 SD时钟频率更改序列

更改SD时钟频率的顺序如图7-5所示。 如果SD Clock仍然关闭,请跳过步骤(1)。
更改SD Clock频率的步骤:
1.执行SD时钟停止序列。 请参阅7.4.2 SD时钟供应序列。
2.执行SD时钟供应序列。 请参阅7.4.3 SD时钟停止序列。

2.4.5 SD总线电源控制序列

控制SD总线电源的顺序如图7-6所示。控制SD总线电源的步骤:
1.要获得主机控制器的支持电压,请阅读功能寄存器。
2.使用主机控制器支持的最大电压在外部电源调节器(可选)中设置SD总线电压选择。
3.将电源控制寄存器中的SD总线电源(PWRON)设置为1。
4.获取SD卡内部所有功能的OCR值。
5.判断是否必须更改SD总线电压。如果必须更改SD总线电压,请继续步骤(6)。如果不想更改SD总线电压,请转到“结束”。
6.将电源控制寄存器中的SD总线电源设置为0,以清除该位。该卡需要从0伏升起的电压才能正确检测到它。主机驱动程序设置SD总线电压选择以在更改电压之前清除SD总线电源。
7.在电源控制寄存器中设置SD总线电压选择(SELPWRLVL)。
8.将电源控制寄存器中的SD总线电源(PWRON)设置为1。
注意:步骤(2)和步骤(3)可以同时执行。而且,步骤(7)和步骤(8)可以同时执行。

2.4.6更改总线宽度顺序

SD总线上更改位模式的顺序如图7-7所示。更改SD总线上位模式的步骤:
1.为了掩盖在更改总线宽度时可能发生的错误中断,请将“正常中断状态启用”寄存器中的卡中断状态启用(STACARDINT)设置为0。
2.如果使用了SD存储卡,请转到步骤(4)。如果是其他卡,请转到步骤(3)。
3.使用CMD52将SDIO或SD组合卡中CCCR的“ IENM”设置为0。
4.更改SD卡的位模式。要通过ACMD6(设置总线宽度)和SDIO卡总线宽度更改SD存储卡总线宽度,请在CCCR中设置总线接口控制寄存器的总线宽度。
5.如果要更改为4位模式,请在主机控制寄存器中将数据传输宽度(WIDE4)设置为1。在另一种情况下(1位模式),将此位设置为0。
6.如果使用了SD存储卡,请转到“结束”。如果是其他卡,请转到步骤(7)。
7.通过CMD52将SDIO或SD组合卡中CCCR的“ IENM”设置为1。
8.在正常中断状态启用寄存器中将卡中断状态启用设置为1。

2.4.7 DAT行的超时设置

为了检测DAT线上的超时错误,主机驱动程序在执行任何SD事务之前执行以下两个步骤。
1.要计算检测超时的除数,请参考超时控制寄存器(9.16)。
2.(根据步骤(1)的值,在超时控制寄存器中设置数据超时计数器值(TIMEOUTCON)。

2.4.8 SD事务生成

本节描述了生成和控制各种SD事务的顺序。 SD交易分为三种情况:
1.不使用DAT线的交易。
2.使用DAT线路处理忙音的事务。
3.使用DAT线传输数据的事务。
在本说明书中,第一种和第二种情况的交易被分类为“不使用DAT线路进行数据传输的交易控制”,第三种情况的交易被分类为“使用DAT线路进行数据传输的交易控制”。
有关SD命令本身的详细规格,请参阅以下规格:
•SD存储卡规范第1部分
物理层规范1.01版
•SD卡规格PART E1
安全数字输入/输出(SDIO)规范版本1.00

2.4.9 SD命令发行序列

设置超时的步骤:
1.检查当前状态寄存器中的命令禁止(CMD)。 重复此步骤,直到命令禁止(CMD)为0。如果命令禁止(CMD)为1,则主机驱动程序不会发出SD命令。
2.如果主机驱动程序发出带有繁忙信号的SD命令,请转到步骤(3)。 如果没有忙音,请转到步骤(5)。
3.如果主机驱动程序发出中止命令,请转到步骤(5)。 如果没有发出中止命令,请转到步骤(4)。
4.检查当前状态寄存器中的命令禁止(DAT)。 重复此步骤,直到命令禁止(DAT)为0。
5.在参数寄存器中设置与发出的命令相对应的值。
6.在命令寄存器中设置与发出的命令相对应的值。
注意:如果将高字节写入命令寄存器,则会发出SD命令。
7.执行命令完成序列

2.4.10命令完整序列

完成SD命令的顺序如图7-7,图7-8,图7-9和图7-10所示。在此序列期间可能发生以下错误:命令索引/结束位/ CRC /超时错误。
完成SD命令的步骤:
1.等待命令完成中断。如果发生命令完成中断,请转到步骤(2)。
2.将1写入正常中断状态寄存器中的命令完成(STACMDCMPLT),以清除该位。
3.读取响应寄存器,并根据发出的命令获取必要的信息。
4.判断命令是否使用传输完成中断。如果使用传输完成,
继续执行步骤(5)。如果不是,请转到步骤(7)。
5.等待传输完成中断。如果发生传输完成中断,请转到步骤(6)。
6.写1到正常中断状态寄存器中的传输完成(STATRANCMPLT)以清除该位。
7.检查响应数据中的错误。如果没有错误,请继续执行步骤(8)。如果有错误,请转到步骤(9)。
8.返回状态“无错误”。
9.返回状态“响应内容错误”。
注意:
1.在等待传输完成中断时,主机驱动程序发出不使用忙信号的命令。
2.主机驱动程序监视传输完成,以判断自动CMD12(停止命令)是否完成。
3.如果使用存储器多块读取命令(CMD18)读取了未保护区域的最后一块,则即使顺序正确,也可能发生OUT_OF_RANGE错误。主机驱动程序必须忽略此错误。此错误出现在Auto CMD12的响应中或在下一个存储命令的响应中

2.4.11使用DAT线进行数据传输的交易控制

根据是否使用DMA(可选),有两种执行方法。 图7-11显示了不使用DMA的顺序,图7-12显示了使用DMA的顺序。
此外,SD传输的序列基本上根据块数的多少进行分类
指定。 三种分类如下:
1.单块传输:
传输前已将块数指定给主机控制器。 指定的块数始终为1。
2.多块传输:
传输前已将块数指定给主机控制器。 指定的块数为一个或多个。
3.无限块传输:
传输前未向主机控制器指定块数。 继续进行此传输,直到执行中止事务为止。 对于SD存储卡,此中止事务由CMD12(停止命令)执行;对于SDIO卡,则由CMD52(IO_RW_DIRECT)执行。

2.4.12不使用DMA的序列

1.将与一个块的已执行数据字节长度相对应的值设置到块大小寄存器。
2.将与已执行的数据块计数相对应的值设置到块计数寄存器。
3.将与发出的命令相对应的值设置到参数寄存器。
4.将值设置为“ Multi / Single Block Select”和“ Block Count Enable”。此时,将与发出的命令相对应的值设置为“数据传输方向”,“自动CMD12使能”和“ DMA使能”。
5.将与发出的命令相对应的值设置到命令寄存器。
注意:如果将高位字节写入命令寄存器,则会发出SD命令
6.等待命令完成中断。
7.将1写入正常中断状态寄存器中的命令完成(STACMDCMPLT)以清除该位。
8.读取响应寄存器,并根据发出的命令获取必要的信息。
9.如果此序列用于写入卡,请继续执行步骤(10-W)。如果从卡中读取,请转到步骤(10-R)。
10.(10-W)等待缓冲区写就绪中断。
11.(11-W)将1写入正常中断状态寄存器中的缓冲区写就绪(STABUFWTRDY),以清除该位。
12.(12-W)将块数据(根据在步骤(1)中指定的字节数)写入缓冲区数据端口寄存器。
13.(13-W)重复进行,直到发送完所有块,然后转到步骤(14)。
14.(10-R)等待缓冲区就绪中断。
15.(11-R)将1写入正常中断状态寄存器中的缓冲器就绪(STABUFRDRDY)以清除该位。
16.(12-R)从缓冲区数据端口寄存器中读取块数据(根据在步骤(1)中指定的字节数)。
17.(13-R)重复直到接收到所有块,然后继续执行步骤(14)。
18.(14)如果此序列用于单块传输或多块传输,请继续执行步骤(15)。如果是无限块传输,请转到步骤(17)。
19.(15)等待传输完成中断。
20.(16)将1写入正常中断状态寄存器中的传输完成(STATRANCMPLT),以清除该位。
21.(17)执行中止交易的顺序。
注意:步骤(1)和步骤(2)可以同时执行。步骤(4)和步骤(5)可以同时执行

2.4.13使用DMA的序列

1.在系统地址寄存器中设置DMA的系统地址。
2.在块大小寄存器中设置与一个块的已执行数据字节长度相对应的值。
3.在“块计数”寄存器(BLKCNT)中设置与已执行的数据块计数相对应的值。
4.在自变量寄存器(ARGUMENT)中设置与发出的命令相对应的值。
5.设置“多个/单个块选择”和“块计数启用”的值。
此时,设置与数据传输方向,自动CMD12使能和DMA使能的命令对应的值。
6.在命令寄存器(CMDREG)中设置与发出的命令相对应的值。
注意:如果将高位字节写入命令寄存器,则会发出SD命令并操作DMA。

7.等待命令完成中断。
8.将1写入正常中断状态寄存器中的命令完成(STACMDCMPLT)以清除该位。
9.读取响应寄存器,并根据发出的命令获取必要的信息。
10.等待传输完成中断和DMA中断。
11.如果将传输完成(STATRANCMPLT)设置为1,则转到步骤(14),否则,如果DMA中断设置为1,则转到步骤14。 进行步骤(12)。 传输完成的优先级高于DMA中断。
12.向正常中断状态寄存器中的DMA中断写入1以清除该位。
13.将下一个数据位置的下一个系统地址设置到系统地址寄存器,然后转到步骤(10)。
14.将1写入正常中断状态寄存器中的传输完成和DMA中断以清除该位。
注意:步骤(2)和步骤(3)可以同时执行。 步骤(5)和步骤(6)也可以同时执行。

2.5中止交易

要执行中止事务,请为SD内存发出CMD12(停止命令),并为SDIO卡发出CMD52。
在两种情况下,主机驱动程序需要发出中止交易。 第一种情况是主机驱动程序停止无限块传输。 第二种情况是在执行多块传输时主机驱动程序是否停止传输。
发出中止命令有两种方法,即异步中止和同步中止。
在异步中止序列中,除非当前状态寄存器中的命令禁止(CMD)设置为1,否则主机驱动程序会随时发出中止命令。
在同步中止中,主机驱动程序使用“块间隙控制”寄存器中的“块间隙请求停止”在数据传输停止后发出“中止命令”。

2.6 DMA交易

DMA允许外设读取和写入内存,而无需CPU的干预。 DMA执行一次SD命令事务。支持DMA的主机控制器支持单块传输和多块传输。
系统地址寄存器指向第一个数据地址,然后从该地址顺序访问数据。在DMA传输期间,主机控制器寄存器仍可访问以发出非DAT线路命令。不管系统总线事务处理方法如何,DMA传输的结果都是相同的。 DMA不支持无限传输。
使用块间隙控制寄存器中的控制位停止并重新启动DMA传输。如果设置了“在块间隙停止”请求,则DMA传输将被挂起。如果设置了“继续请求”或发出了“恢复命令”,则DMA继续执行传输。有关详细信息,请参见块间隙控制寄存器。如果发生SD总线错误,则会停止SD总线传输和DMA传输。在软件复位寄存器中设置DAT线路的软件复位会中止DMA传输。

2.7 ADMA(高级DMA)

在SD主机控制器标准规范版本2.00中,定义了称为ADMA(高级DMA)的新DMA传输算法。 SD主机控制器标准规范版本1.00中定义的DMA算法称为SDMA(单操作DMA)。 SDMA的缺点是,在每个页面边界生成的DMA中断会干扰CPU重新编程新的系统地址。通过在每个页面边界处中断,此SDMA算法形成了性能瓶颈。 ADMA采用分散收集DMA算法,因此可以提高数据传输速度。主机驱动程序可以在执行ADMA之前,对系统内存和SD卡之间到描述符表的数据传输列表进行编程。它使ADMA可以在不中断主机驱动程序的情况下运行。此外,ADMA不仅可以支持32位系统存储器寻址,还可以支持64位系统存储器寻址。 32位系统存储器寻址使用64位地址寄存器的低32位字段。
对于主机控制器,对SDMA和ADMA的支持是可选的。 ADMA改善了限制,因此可以在系统内存中传输任何位置和大小的数据。描述符表的格式在它们之间是不同的。主机控制器规范Ver2.00将ADMA定义为标准ADMA。

2.7.1 ADMA框图

图7-13给出了ADMA的框图。 描述符表由主机驱动程序在系统内存中创建。
32位地址描述符表用于具有32位寻址的系统,而64位地址描述符表用于具有64位寻址的系统。 每条描述符行(一个可执行单元)由地址,长度和属性字段组成。 该属性指定描述符行的操作。 ADMA包括SDMA,状态机和寄存器电路。 ADMA不使用32位SDMA系统地址寄存器(偏移0),而是使用64位高级DMA系统地址寄存器(偏移058h)作为描述符指针。 写入命令寄存器会触发ADMA传输。 ADMA提取一条描述符行并执行。 重复此过程,直到找到描述符的末尾(属性中的End = 1)。

2.7.2 ADMA编程示例

图7-14显示了典型的ADMA描述符程序。 数据区域以各种长度进行切片,每个切片都放置在系统内存中的某个位置。 主机驱动程序用地址,长度和属性集描述描述符表。 每个切片的数据按照描述符中的说明依次传输。

2.7.3数据地址和数据长度要求

程序描述符有3个要求。地址的最小单位是4byte。
每条描述符行的最大数据长度小于64KB。
总长度=长度1 +长度2 +长度3 + ... +长度n
=块大小的倍数如果描述符的总长度不是块大小的倍数,则ADMA传输可能不会终止。在这种情况下,传输应因数据超时而中止。块计数寄存器定义为16位寄存器,它限制了最多65535个块传输。如果ADMA操作小于或等于65535块传输,则可以使用块计数寄存器。在这种情况下,描述符表的总长度应等于块大小和块数的乘积。如果ADMA操作超过65535个块传输,则应通过将传输模式寄存器中的块计数启用设置为0来禁用块计数寄存器。在这种情况下,数据传输的长度不是由块计数指定的,而是由描述符表指定的。因此,检测SD总线上最后一个块的时序可能会有所不同,并且会影响对当前状态寄存器中的读传输激活,写传输激活和DAT线激活的控制。在读取操作的情况下,几个块的读取可能会超出要求。如果读取操作是针对存储区的最后一块,则主机驱动程序应忽略超出范围的错误。

2.7.4 描述符表

图7-15显示了32位地址描述符表的定义。 一条描述符行占用64位(8字节)的存储空间。 属性用于控制描述符。 指定了3个动作符号。 “ Nop”操作跳过当前描述符行并获取下一个描述符行。 “传送”操作传送由地址和长度字段指定的数据。 “链接”操作用于连接分开的两个描述符。 链接的地址字段指向下一个描述符表。 保留Act2 = 0和Act1 = 1的组合,并定义与Nop相同的操作。 控制器的未来版本可能会使用此字段并重新定义新操作。 32位地址存储在64位地址寄存器的低32位中。 对于32位地址描述符表,地址字段应设置在32位边界(低2位始终设置为0)上。 表7-1显示了描述符表中长度字段的定义。

2.7.5 ADMA状态

ADMA的状态图如图7-16所示。 定义了四个状态,即,获取描述符状态,更改地址状态,传输数据状态和停止ADMA状态。 表7-2说明了每种状态的操作。

Table 7-2 ADMA States

State Name Operation
ST_FDS
(Fetch Descriptor)
ADMA fetches a descriptor line and set parameters in internal registers. Next
go to ST_CADR state.
ST_CADR
(Change Address)
Link operation loads another Descriptor address to ADMA System Address
register. In other operations, ADMA System Address register is incremented to
point next descriptor line. If End=0, go to ST_TFR state. ADMA shall not be
stopped at this state even if some errors occur.
ST_TFR
(Transfer Data)
Data transfer of one descriptor line is executed between system memory and
SD card. If data transfer continues (End=0) go to ST_FDS state. If data
transfer completes, go to ST_STOP state.
ST_STOP
(Stop DMA)
ADMA stays in this state in following cases: (1) After Power on reset or
software reset. (2) All descriptor data transfers are completed If a new ADMA
operation is started by writing Command register, go to ST_FDS state.

ADMA不支持暂停/继续功能,但可以使用停止和继续。在ADMA操作过程中,如果在块间隙控制寄存器中设置了“在块间隙停止”请求,则在将ADMA停止在块间隙时会生成“块间隙事件中断”。主机控制器应通过使用读取等待或停止SD时钟来停止ADMA读取操作。停止ADMA时,无法发出SD命令。 (在主机控制器版本为1.00的情况下,仅当卡支持读取等待时才能设置“在块间隙停止请求”。)
在ADMA传输过程中发生错误会停止ADMA操作并生成ADMA错误中断。 ADMA错误状态寄存器中的ADMA错误状态字段保持ADMA停止状态。主机驱动程序可以通过以下方法识别错误描述符的位置。
如果ADMA停止在ST_FDS状态,则ADMA系统地址寄存器指向错误描述符行。如果ADMA停止在ST_TFR或ST_STOP状态,则ADMA系统地址寄存器指向错误描述符行的下一个位置。因此,ADMA2不应在ST_CADR状态下停止。

2.8 IO描述

SD_0_CLK OUTPUT Clock for SDMMC0 Xmmc0CLK muxed
SD_0_CMD IN/OUT Command for SDMMC0 Xmmc0CMD muxed
SD_0_DATA[0] IN/OUT Data for SDMMC0 Xmmc0DATA[0] muxed
SD_0_DATA[1] IN/OUT Data for SDMMC0 Xmmc0DATA[1] muxed
SD_0_DATA[2] IN/OUT Data for SDMMC0 Xmmc0DATA[2] muxed
SD_0_DATA[3] IN/OUT Data for SDMMC0 Xmmc0DATA[3] muxed
SD_0_DATA[4] IN/OUT Data for SDMMC0 Xmmc1DATA[0] muxed
SD_0_DATA[5] IN/OUT Data for SDMMC0 Xmmc1DATA[1] muxed
SD_0_DATA[6] IN/OUT Data for SDMMC0 Xmmc1DATA[2] muxed
SD_0_DATA[7] IN/OUT Data for SDMMC0 Xmmc1DATA[3] muxed
SD_0_CDn INPUT Card Detect for SDMMC0 Xmmc0CDn muxed
SD_1_CLK OUTPUT Clock for SDMMC1 Xmmc1CLK muxed
SD_1_CMD IN/OUT Command for SDMMC1 Xmmc1CMD muxed
SD_1_DATA[0] IN/OUT Data for SDMMC1 Xmmc1DATA[0] muxed
SD_1_DATA[1] IN/OUT Data for SDMMC1 Xmmc1DATA[1] muxed
SD_1_DATA[2] IN/OUT Data for SDMMC1 Xmmc1DATA[2] muxed
SD_1_DATA[3] IN/OUT Data for SDMMC1 Xmmc1DATA[3] muxed
SD_1_CDn INPUT Card Detect for SDMMC1 Xmmc1CDn muxed
SD_2_CLK OUTPUT Clock for SDMMC2 Xmmc2CLK muxed
SD_2_CMD IN/OUT Command for SDMMC2 Xmmc2CMD muxed
SD_2_DATA[0] IN/OUT Data for SDMMC2 Xmmc2DATA[0] muxed
SD_2_DATA[1] IN/OUT Data for SDMMC2 Xmmc2DATA[1] muxed
SD_2_DATA[2] IN/OUT Data for SDMMC2 Xmmc2DATA[2] muxed
SD_2_DATA[3] IN/OUT Data for SDMMC2 Xmmc2DATA[3] muxed
SD_2_DATA[4] IN/OUT Data for SDMMC2 Xmmc3DATA[0] muxed
SD_2_DATA[5] IN/OUT Data for SDMMC2 Xmmc3DATA[1] muxed
SD_2_DATA[6] IN/OUT Data for SDMMC2 Xmmc3DATA[2] muxed
SD_2_DATA[7] IN/OUT Data for SDMMC2 Xmmc3DATA[3] muxed
SD_2_CDn INPUT Card Detect for SDMMC2 Xmmc2CDn muxed
SD_3_CLK OUTPUT Clock for SDMMC3 Xmmc3CLK muxed
SD_3_CMD IN/OUT Command for SDMMC3 Xmmc3CMD muxed
SD_3_DATA[0] IN/OUT Data for SDMMC3 Xmmc3DATA[0] muxed
SD_3_DATA[1] IN/OUT Data for SDMMC3 Xmmc3DATA[1] muxed
SD_3_DATA[2] IN/OUT Data for SDMMC3 Xmmc3DATA[2] muxed
SD_3_DATA[3] IN/OUT Data for SDMMC3 Xmmc3DATA[3] muxed
SD_3_CDn INPUT Card Detect for SDMMC3 Xmmc3CDn muxed

注意:SDMMC外部焊盘与CAMIF或SPI共享。 为了将这些焊盘用于SDMMC,请设置GPIO
在SDMMC启动之前。 有关正确的GPIO设置,请参见GPIO章节。

2.9 寄存器描述

 2.9.1 寄存器参照表

 2.9.2 SDMA系统地址寄存器

 2.9.3 块大小寄存器

 2.9.4 块数目寄存器

 2.9.5 参数寄存器

 2.9.6 传输模式寄存器

 2.9.7 命令寄存器

2.10 响应寄存器


3.相关代码

4.拓展

1.SD卡百度百科

发布了56 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/I_feige/article/details/104805144
今日推荐