微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 工程师STM32单片机学习基础手记(4):用PWM实现荧火虫灯(三)

工程师STM32单片机学习基础手记(4):用PWM实现荧火虫灯(三)

时间:05-11 来源:互联网 点击:

  

  SDIO_CMD在SDIO_CK的上升沿进行同步。

  回应:

  回应是由被寻址的卡发出的一个标记(或是在MMC V3.31及以前标准中,所有连接在适配器上的卡同步发送),此标记由卡发给主机,是对刚刚接收到的命令的回答。回应是在CMD信号线上串行传输的。

  SDIO支持两种回应类型,都是进行CRC校验的:

  48位的短回应(short response)

  136位的长回应(long response)

  注意:如果回应不包含CRC校验信息(如CMD1的回应),设备驱动就必须忽略CRC错误的状态。

  下面两张表是两种回应的格式:

  


  前面讲到,SDIO适配器包含两个大块儿,详见本帖开头,这里只拿出图来:

  


 其中,与AHB接口相连的有两个块儿,就是上图中左侧阴影部分,Adapter registers 和FIFO,即适配器寄存器组和数据FIFO。前者包含了适配器所有的寄存器,用于配置相应时序,产生相应的信号。

  这里面,用于控制命令通道产生命令时序的就有两个寄存器,名为SDIO_ARG和SDIO_CMD,SDIO_ARG的三十二位全部用来存储命令参数,也就没什么好讲的了。SDIO_CMD则不同,它有六个位,用来识别不同的命令,总共可以区别64个,但实际上SD卡的命令集没有那么多。 SDIO_CMD还有一些位,用来表示些命令时否有回应,是长回应还是短回应,命令的类型是什么等等。适配器最终根据这些,加上CRC组合成一个48位的命令。

  另外,我们还提到过命令发送之后,如果这是一个没有回应的命令,那么就很简单,命令通道直接置位CMDSENT标志,或进入空闲状态。如果是有回应的,则要等待回应,并设定相关的标志位。命令通道的相关标志位如下:

  


  CRC 产生器计算的是CRC码前面的所有位的校验和。这包括开始位,传输位,命令索引(command index)和命令参数(和卡状态)。对长回应格式来说,CRC校验和计算的是CID或CSD的前120位。这里不包括开始位,传输位和六个保留位。 CRC是一个7位的值,其计算方法如下:

  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top