• 沒有找到結果。

第 7 章 块设备驱动程序

7.2 块设备驱动开发实例

7.2.3 SDI 相关的寄存器

接下来讲述编程时需要用到的 SDI 寄存器,关于 SDI 寄存器的相关信息需要查阅

S3C2410 芯片的用户手册获得。

7.2.3.1 SDI 控制(SDICON)寄存器

寄存器 地址 R/W 描述 复位值

SDICON 0x5A000000 R/W SDI控制寄存器 0x0

SDICON 描述 初始状态

ByteOrder

[4]

确定字节顺序类型当读(写)数据从(到)SD主机FIFO的 字边界时

0=类型A 1=类型B

0

RcvIOInt [3] 确定是否SD主机接收到来自卡的SDIO中断

0=忽略 1=接收SDIO中断 0

RWaitEn [2]

当SD主机等待下一个块在多个块读模式时确定读等待请求 信号产生。这个位需要延迟下一个被传输的块。

0=禁止(不产生) 1=读等待启动(使用SDIO)

0

FRST [1] 复位FIFO值,这个位自动被清除。

0=正常模式 1=FIFO复位 ENCLK [0] 确定是否SDCLK输出被启动

0=禁止 1=时钟被启动 0

注意: 字节顺序类型

类型A:D [7:0] -> D [15:8] -> D [23:16] -> D [31:24]

类型B:D [31:24] -> D [23:16] -> D [15:8] -> D [7:0]

7.2.3.2 SDI 波特率预定标(SDIPRE)寄存器

寄存器 地址 R/W 描述 复位值

SDIPRE 0x5A000004 R/W SDI波特率预定标寄存器 0x0

SDIPRE 描述 初始状态

Prescaler

Value [7:0] 确定SDI时钟频率

波特率=PCLK/2/(预定标值+1) 0

7.2.3.3 SDI 命令参数(SDICARG)寄存器

寄存器 地址 R/W 描述 复位值

SDICARG 0x5A000008 R/W SDI命令参数寄存器 0x0

SDIPRE 描述 初始状态

CmdArg [31:0] 命令参数 0x00000000

7.2.3.4 SDI 命令控制(SDICCON)寄存器

寄存器 地址 R/W 描述 复位值

SDICCON 0x5A00000C R/W SDI命令控制寄存器 0x0

SDICCON 描述 初始状态

AbortCmd [12] 确定命令类型是否是异常中止(用于SDIO)

0=正常命令 1=异常中止(CMD12,CMD52) 0 WithData [11] 确定命令类型是否包含数据(用于SDIO)

0=不包含数据 1=包含数据 0 LongRsp [10] 确定主机是否接收一个136位的长响应。

0=短响应 1=长响应 0

WaitRsp [9] 确定主机是否等待一个响应。

0=没有响应 1=等等响应 CMST [8] 确定是否命令操作开始

0=命令就绪 1=命令开始 0

CmdIndex [7:0] 命令索引从2位开始(8位) 0x00

7.2.3.5 SDI 命令状态(SDICSTA)寄存器

寄存器 地址 R/W 描述 复位值

SDICSTA 0x5A000010 R/W SDI命令状态寄存器 0x0

SDICSTA 描述 初始状态

RspCrc [12] 当命令响应接收时,CRC检测失败

0=没有探测到 1=CRC失败 0 CmdSent [11] 发送命令(不关心响应)

0=没有探测到 1=命令结束 0 CmdTout [10] 命令响应时间到。

0=没有探测到 1=时间到 0 RspFin [9] 命令响应接收。

0=没有探测到 1=响应结束 CmdOn [8] 命令传输过程中

0=没有探测到 1=命令传输中 0

RspIndex [7:0] 响应索引从2位开始(8位) 0x00

7.2.3.6 SDI 响应(SDIRSP)寄存器

寄存器 地址 R/W 描述 复位值

SDIRSP0 0x5A000014 R SDI响应寄存器0 0x0

SDIRSP0 描述 初始状态 Response0 [31:0] 卡状态[31:0](短响应),卡状态[127:96]长响应 0x00000000

寄存器 地址 R/W 描述 复位值

SDIRSP1 0x5A000018 R SDI响应寄存器1 0x0

SDIRSP1 描述 初始状态

RCRC7 [31:24] CRC7(包含结束位,短响应),卡状态[95:88](长响应) 0x00 Response0 [23:0] 没有使用(短响应),卡状态[87:64]长响应 0x00000000

寄存器 地址 R/W 描述 复位值

SDIRSP2 0x5A00001C R SDI响应寄存器2 0xy0

SDIRSP2 描述 初始状态

Response2 [31:0] 没有使用(短响应),卡状态[63:32]长响应 0x00000000

寄存器 地址 R/W 描述 复位值

SDIRSP3 0x5A000020 R SDI响应寄存器3 0x0y

SDIRSP3 描述 初始状态

Response3 [31:0] 没有使用(短响应),卡状态[31:0]长响应 0x00000000

7.2.3.7 SDI 数据/占用定时器(SDIDTIMER)寄存器

寄存器 地址 R/W 描述 复位值

SDIDTIMER 0x5A000024 R/W SDI数据/占用定时器寄存器 0x2000

SDIDTIMER 描述 初始状态

DataTimer [15:0] 数据/占用时间中止周期(0~65535周期) 0x2000

7.2.3.8 SDI 块大小(SDIBSIZE)寄存器

寄存器 地址 R/W 描述 复位值

SDIBSIZE 0x5A000028 R/W SDI块大小寄存器 0x0

SDIBSIZE 描述 初始状态

BlkSize [11:0] 块大小值(0~4095字节) 0x000 注意:如果是多个块,BlkSize 必须组成 4 字节大小。

与 SDI 相关的寄存器还有许多,如果想了解更多寄存器的信息请参考 S3C2410 芯片用 户手册,这里就不再一一介绍。