微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 串行外围设备接口应用及设计详解

串行外围设备接口应用及设计详解

时间:09-16 来源:硬件十万个为什么 点击:

e = latch = read = sample,都是表示数据采样,数据有效的时刻。相位,对应着数据采样是在第几个边沿(edge),是第一个边沿还是第二个边沿,0对应着第一个边沿,1对应着第二个边沿。对于:CPHA=0,表示第一个边沿:对于CPOL=0,idle时候的是低电平,第一个边沿就是从低变到高,所以是上升沿;对于CPOL=1,idle时候的是高电平,第一个边沿就是从高变到低,所以是下降沿;CPHA=1,表示第二个边沿:对于CPOL=0,idle时候的是低电平,第二个边沿就是从高变到低,所以是下降沿;对于CPOL=1,idle时候的是高电平,第一个边沿就是从低变到高,所以是上升沿;还是上图大家更容易看懂

3.2.5 软件中如何设置SPI的极性和相位

SPI分主设备和从设备,两者通过SPI协议通讯。而设置SPI的模式,是从设备的模式,决定了主设备的模式。所以要先去搞懂从设备的SPI是何种模式,然后再将主设备的SPI的模式,设置和从设备相同的模式,即可正常通讯。对于从设备的SPI是什么模式,有两种:

3.2.5.1固定的,有SPI从设备硬件决定的

SPI从设备,具体是什么模式,相关的datasheet中会有描述,需要自己去datasheet中找到相关的描述,即:关于SPI从设备,在空闲的时候,是高电平还是低电平,即决定了CPOL是0还是1;然后再找到关于设备是在上升沿还是下降沿去采样数据,这样就是,在定了CPOL的值的前提下,对应着可以推算出CPHA是0还是1了。

3.2.5.2 可配置的,由软件自己设定

从设备也是一个SPI控制器,4种模式都支持,此时只要自己设置为某种模式即可。然后知道了从设备的模式后,再去将SPI主设备的模式,设置为和从设备模式一样,即可。对于如何配置SPI的CPOL和CPHA的话,不多细说,多数都是直接去写对应的SPI控制器中对应寄存器中的CPOL和CPHA那两位,写0或写1即可。3.3 SSPSR

3.4 SSPBUF

3.5 Controller

4. SPI举例

上面说了那么多,在这里我来举一个例子帮助大家理解。SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。那么第一个上升沿来的时候 数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在 8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。举例:假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据情况演示一遍:假设上升沿发送数据

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

网站地图

Top