单片机学习小组
直播中

李明聪

8年用户 1233经验值
私信 关注

SD卡的spi配置过程是怎样的?

SD卡的spi配置过程是怎样的?

回帖(1)

宁兴琴

2022-2-17 11:13:53
SD卡操作分为SPI模式与SDIO模式,这里选择SPI模式,DSP为SPI主机,SD卡为从机,本文对SD卡SPI通信进行说明,关于SPI双机通信后续有时间也会特别写篇文章进行说明
SPI---串行外设接口,
优点:通信简单,支持全双工通信,数据传输速率快
缺点:没有指定的控制流,完全以时钟携带数据进行通信,没有应答机制,相对来说通信数据的可靠性上有一定缺陷(相对I2C总线协议)
特点:高速,同步,全双工,非差分,总线方式,主从机方式通信
通信时序:
主从方式通信,接线分为4根或3根(使用较少,用于单向传输)
简要概括:主机首先进行片选,选中从机,同时产生通讯时钟,每到来一个时钟周期,按照配置的SPI通信模式,主机移出一位数据发送到从机,同时从机发送一位数据到主机,完成一位数据交换,重复多次,即可完成一个字节数据,若此次传输完成,取消片选。(类似说明文件很多,此处仅作简要说明)
接线:SPISIMO        主收从发        
           SPISOMI        主发从收
           SPICLK           时钟线(主设备产生)
           SPICS             片选(主设备控制,一主多从时可控制选择从机)
配置步骤(使用SPIFIFO---16级FIFO,若不需要可舍去该部分配置):


  • 使spi保持复位模式,SPISWRESET=0;
  • 配置该机主从模式
  • 配置时钟相位 (0=without delay,1=with delay)
  • 使能传输通道
  • 配置时钟极性(0=rising,1=failing)(注:时钟相位与时钟极性共同确定数据传输模式)
  • 选择单个传输的数据位数
  • 配置spi波特率
  • 清除overrun_flag及int_flag
  • 使能spi 的FIFO模式
  • 使能 接收及发送FIFO的级数
  • 使能 接收及发送FIFO的中断
  • 复位接收及发送FIFO寄存器
  • 复位spi(spirst) (此步骤位置可移动,但不建议改变)
  • 完成SPI配置 ,SPISWRESET=1;

注:时钟极性CPOL及时钟相位CPHA说明----决定通信模式:        
上图为28377D芯片手册上对于SPI时钟相位及极性的说明,分为4种模式:
SPI在SPICLK的下降沿传输数据,在SPICLK的上升沿接收数据。
SPI在SPICLK信号下降沿前半个周期发送数据,在SPICLK信号下降沿接收数据。
SPI在SPICLK信号的上升沿传输数据,在SPICLK信号的下降沿接收数据。
SPI在SPICLK信号上升沿前半周传输数据,在SPICLK信号上升沿接收数据。
下图为4种模式传输数据图解:
极性与相位配置最好主从机保持一致,避免出现问题(测试过不一致的情况,数据也能正常传输)
由于SPI的主从机制,从机无法主动发送数据之主机,可选择主从机间进行连线,触发外部中断形式来使主机启动通信。
以上为SD卡spi模式之SPI配置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分