第 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 芯片用 户手册,这里就不再一一介绍。