原创 SPI传输协议配置

2009-8-12 19:11 1373 8 8 分类: MCU/ 嵌入式

来源 CEPARK网站http://www.cepark.com/Index.html  作者: hnrain


SPI总线四种工作方式 SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果 CPOL="0",串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设备时钟相位和极性应该一致。电子园51单片机学习网SH ]S#{%{
电子园51单片机学习网Y"u+`V~


H5H3V.O)eE9i^45629SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI接口时序如图3、图4所示。电子园51单片机学习网fOe,tF$|1^
电子园51单片机学习网:A!I|4DZsGD4]^


  补充:电子园51单片机学习网1x4Wv/R8Y't

  上文中最后一句话:SPI主模块和与之通信的外设备时钟相位和极性应该一致。个人理解这句话有2层意思:其一,主设备SPI时钟和极性的配置应该由外设来决定;其二,二者的配置应该保持一致,即主设备的SDO同从设备的SDO配置一致,主设备的SDI同从设备的SDI配置一致。因为主从设备是在SCLK的控制下,同时发送和接收数据,并通过2个双向移位寄存器来交换数据。工作原理演示如下图:
6F(G8S8W&d,^a#q.R45629

1Y1c A3dE6{$C|w45629  上升沿主机SDO发送数据1,同时从设备SDO发送数据0;紧接着在SCLK的下降沿的时候从设备的SDI接收到了主机发送过来的数据1,同时主机也接收到了从设备发送过来的数据0.电子园51单片机学习网T%j#L-\ \%Ai2]~(x*{Q

电子园51单片机学习网`G"y T[)T[

SPI接口时钟配置心得:电子园51单片机学习网 d9rmD-Fv0a!j u#mh!^ m

8R1O%A&Y"Rs0M'_f45629

[2rTZ5F$l{ aw0V S45629  在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。但要注意的是,由于主设备的SDO连接从设备的SDI,从设备的SDO连接主设备的SDI,从设备SDI接收的数据是主设备的SDO发送过来的,主设备SDI接收的数据是从设备SDO发送过来的,所以主设备这边SPI时钟极性的配置(即SDO的配置)跟从设备的SDI接收数据的极性是相反的,跟从设备SDO发送数据的极性是相同的。下面这段话是Sychip Wlan8100 Module Spec上说的,充分说明了时钟极性是如何配置的:电子园51单片机学习网2|0D V tI`7Ur
电子园51单片机学习网^ R#HA T!H0Aa


电子园51单片机学习网 eRM]l%H7[

  The 81xx module will always input data bits at the rising edge of the clock, and the host will always output data bits on the falling edge of the clock.电子园51单片机学习网(L]-H_*P&^7`

)\$ZM*}bQ45629

:G,i-Dh2lX3y9U45629  意思是:主设备在时钟的下降沿发送数据,从设备在时钟的上升沿接收数据。因此主设备这边SPI时钟极性应该配置为下降沿有效。电子园51单片机学习网^|S*v A2^G#ZJ"M
电子园51单片机学习网$h5{#\ c@ _!`


电子园51单片机学习网lUNp^gW4gW2G#A

  又如,下面这段话是摘自LCD Driver IC SSD1289:电子园51单片机学习网R2\&hNc|0\]s
电子园51单片机学习网&]2E#c^G%y.]



,I/X'KP%l$H.W'y(d9ir+e45629  SDI is shifted into 8-bit shift register on every rising edge of SCK in the order of data bit 7, data bit 6 …… data bit 0.
WS`0q ^+[h T45629电子园51单片机学习网0R+^f#z`6pIoE


电子园51单片机学习网&LL(q%su JI3B

  意思是:从设备SSD1289在时钟的上升沿接收数据,而且是按照从高位到地位的顺序接收数据的。因此主设备的SPI时钟极性同样应该配置为下降沿有效。电子园51单片机学习网GK5\B{,p6g k
电子园51单片机学习网 D@9U)D(p%f.AJq


电子园51单片机学习网 t2T Oj8bk

  时钟极性和相位配置正确后,数据才能够被准确的发送和接收。因此应该对照从设备的SPI接口时序或者Spec文档说明来正确配置主设备的时钟。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条