SDHC部分寄存器介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11.3.2 K60的SD模块存储器映像与寄存器定义
K60的SDHC模块主要使用到表11-6中寄存器,其他寄存器详细信息可参见网络光盘中的本章阅读材料。
表11-6 SDHC模块部分寄存器列表
1.块属性寄存器(Block Attributes Register,SDHC_BLKATTR)
这个寄存器是用来配置数据块数和每块的字节数。
图52-4 SDHC_BLKATTR
D31~D16—BLKCNT位,当前传输的块数。当XFERTYP[BCEN]被置1时,该寄存器有用,仅用于多块间传输。主驱动应设定该寄存器为从1到最大块数(最大为65535块)之间的一个值,每块传输并停止后,该域自减1,直到块数为0。设定块数为0将导致没有数据块传输。当XFERTYP [MSBDEL]位被清零时,只能单块传输,BLKCNT的读值总为1。当为0时,表示停止计数;为1时,表示1块;为0xFFFF时,表示65535块。
D15~D13—保留。
D12~D0—BLKSIZE位,传输块的大小。该寄存器为块数据传输时,每块数据大小,其值可被设定为1字节到最大缓冲值(最大为4096字节)之间的数。该域在SDHC空闲时,修改才有效。传输期间的读操作可能发回一个无效值,且修改无效。当为0时,表示无数据传输;为1时,表示1字节;为0x1000时,表示4096块。
2.命令参数寄存器(Command Argument Register,SDHC_CMDARG)
该寄存器用于写入SD/MMC操作命令参数。
D31~D0—CMDARG位,命令内容。在SD或MMC的协议中,SD/MMC命令内容被
指定在命令格式的39-8位。当PRSSTAT[CDIGBO]为1,该寄存器被写保护。
3.传输类型寄存器(Transfer Type Register,SDHC_XFERTYP)
D31~D30—保留。
D29~D24—CMDINX位,命令索引。在SD储存卡物理层协议和SDIO卡协议中,这些位的命令应设为命令格式的45-40位。
D23~D22—CMDTYP位,命令类型。一共可以设置四种命令类型,执行普通命令时,该域为0。3种特殊类型命令:暂停,重新开始,和中止命令。暂停命令:如果暂停命令成功,SDHC模块认为总线已经释放,并有可能使用DAT通道发出下一个命令;重新开始命令:主驱动通过在发送暂停命令之前,恢复寄存器储存值重新开始数据传输,并发送重新开始命令;中止命令:如果当执行读传输时发送该命令,SDHC将停止读入缓冲。如果当执行写传输时发送该命令,SDHC将停止DAT通道。终止命令发放后,主机驱动器发送一个软件复位命令。
D21—DPSEL位,传输时的数据选择。当该域为1时,表明数据需要发送并且通过DAT 通道传输。当该域为0时,表明命令仅通过CMD通道或没有数据传输的命令,但使用繁忙信号通道DAT[0]。
D20—CICEN位,命令索引检测使能。如果该位置1,SDHC将检测响应值是否与命令索引相等。如果不等,将报告命令索引错误;如果该位置0,则不检测响应。
D19—CCCEN位,命令CRC检测使能。如果该位置1,SDHC将检测响应的CRC字段。如果检测到错误则报告命令CRC错误。如果该位置0,不检测CRC段,这些位由CRC 字段值根据响应长度的变化检测。
D18—保留。
D17~D16—RSPTYP位,响应类型。00b:无响应;01b:响应长度136;10b:响应长度48;11b:响应长度48,响应后检测忙碌状态。
D15~D6—保留。
D5—MSBSEL位,多/单块选择。该位控制多块DAT通道数据传输,对其他命令,该位应置为0。如果该位为1,就不必设定块计数寄存器。
D4—DTDSEL位,数据传输方向选择。该位定义了DAT通道数据发送的方向。当主驱动从SD卡发送数据到SDHC时该位置1,其他命令时则置0。
D3—保留。
D2—AC12EN位,自动CMD12使能。存储器的多块传输需要CMD12停止事务。当该位为1,在最后块传输完成后,SDHC将自动发出一个CMD12。主驱动发出的命令不需
要CMD12停止多块数据传输时,主驱动不会设置该位。特别注意的是,定义在文件安全协议中的安全命令不需要CMD12。单块传输时,不管该位是否设定,SDHC将忽略该位。
D1—BCEN位,块计数寄存器。该位用来允许块计数寄存器,该寄存器与多块传输有关。当该位为0时,在多传输有用的内部计数器不工作。
D0—DMAEN位,DMA使能。该位允许DMA功能。如果置为1,当主驱动设定寄存器的DPSEL位,一个DMA操作将开始执行。简单DMA还是高级DMA处于运行状态取决于PROCTL[DMAS]位。
4.缓冲数据端口寄存器(Buffer Data Port Register,SDHC_DATPORT)
D31~D0—DATCONT位,数据内容。缓冲数据端口的是供CPU或外部DMA使用的32位数据,当内部DMA使能时,写入到寄存器的数据将被忽略,而读该寄存器值总为0。
5.当前状态寄存器(Present State Register,SDHC_PRSSTAT)
D31~D2—DLSL,DAT通道信号等级。该域用来检测DAT通道,从错误中恢复并除错,这使的通过DAT[0]通道检测忙碌信号尤其有用。其复位值受外部上拉/下拉电阻器影响,当DAT[3]通道不开放,而其他通道开放时,复位后该位段的系统默认值为11110111。每位表示1路数据通道等级,例如DAT[0]表示数据0通道信号等级,其他以此类推。
D23—CLSL,CMD通道信号等级。该段用来检测CMD通道,从错误中恢复并除去错误,其复位值受外部上拉/下拉电阻器影响,当命令通道开放时,复位后该位段的系统默认值为1b。
D22~D17—保留。
D16—CINS,插入标志位。该位表面卡是否已插入,SDHC识别此信号,而主驱动不需要等到它稳定。由0到1的变化产生一个中断状态寄存器中的插卡中断,由1到0的变化则产生一个出卡中断。写入强制事件寄存器不会影响该位。SYSCTL[RSTA]不影响该位,软件复位也不影响该位。