SPI接口驱动电路设计的资料概述

电子说

1.2w人已加入

描述

SPI 协议简介

SPI是单master多slave的总线协议,全双工通信。如下图所示,一个master可以控制多个slave,通过ss信号选择需要控制的slave,ss低电平有效。

数据传输要遵循如下时序要求(下图是以收发数据位数为8作为示例)。其中SCK为SCLK,由master发出,SS为Slave片选信号。其中CPOL,CPHA为模式选择。master与slave的模式需要一致。MISO(单bit)为slave的输出数据线,master的输入数据线(未选中的slave的MISO为高阻态);MOSI(单bit)为master的输出数据线,slave的输入数据线。数据都是先发低位。

仿真

当CPOL=0,CPHA=0时:空闲时,SCLK为低电平;master和slave,在SCLK上升沿采集数据,下降沿发出数据。并在第一个SCLK上升沿之前,数据的第一bit必须送上数据线。

当CPOL=0,CPHA=1时:空闲时,SCLK为低电平;master和slave,在SCLK上升沿发出数据,下降沿采集数据。

当CPOL=1,CPHA=0时:空闲时,SCLK为高电平;master和slave,在SCLK上升沿发出数据,下降沿采集数据。并在第一个SCLK下降沿之前,数据的第一bit必须送上数据线。

当CPOL=1,CPHA=1时:空闲时,SCLK为高电平;master和slave,在SCLK上升沿采集数据,下降沿发出数据。

设计概述

本次提供了一个master接口与slave接口的参考设计。并且要求clk的时钟频率最好为SCLK时钟频率的三倍以上。当SCLK为clk的奇数倍分频时需要考虑误差积累问题。

SPI_master_if(SPI master接口驱动)的信号端口说明如下表:

仿真

SPI_slave_if(SPI slave接口驱动)的信号端口说明如下表:

仿真

并且还提供了一个简单的TB(SPI_tb.sv)。大家可以跑跑仿真。

目前此设计只是做了功能仿真,并未上板与其他SPI设备进行实测,如有问题,希望大家给予反馈。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分