SPI系列文章主要介绍SPI接口的一些基础知识,并用DAC芯片81416的配置为例来具体说明SPI接口的具体FPGA实现。

一、SPI的基础

SPI的全称是Serial Peripheral Interface,直译过来就是串行外围接口。一般情况下,FPGA连接各种DAC和ADC,都是用的SPI接口。

SPI分为3线型和4线型。用得最多的是4线型,4线型的信号包括SCLK(同步时钟),MOSI(Master输出Slave输入),MISO(Master输入Slave输出)、SS(Slave Select,一般也叫做CS,Chip Select,片选信号),信号传输方向如图1所示。3线型就是把MISO和MOSI合并成一根线MISO/MOSI,合并后的这根线信号可以双向传输信号,Mater和Slave分时驱动这根线,一样可以通信。因此,可以看出4线型的SPI是全双工的,3线型的SPI是半双工的。

因为3线型和4线型在原理上并没有区别,所以本文仅介绍4线型,对于3线型注意在写Verilog代码时声明MISO/MOSI为inout类型信号,并且保证在FPGA不驱动它的时间它赋一个高阻值就行了。

下面两图是一般情况下我们会使用到的SPI连接方式。此外,还有一种菊花链的一对多连接方式,不太常用,有兴趣的读者可以阅读另一个博主的文章,点这里。

图1 SPI一对一连接

图2 SPI一对多连接

二、SPI的时序图

SPI的时序图是很简单的,一般情况下根据CPOL(Clock Polarity,时钟极性)和CPHA(Clock Phase,时钟相位)来规定4种传输模式,也就是说CPOL规定了SCK时钟信号空闲时的电平(CPOL=0表示低电平),CPHA规定了当片选信号SS有效时,接收数据端是按SCK的上升沿还是下降沿采样(CPHA=0表示上升沿采样)。本人根据自己接触到的AD/DA,发现一般情况下,CPHA=1,CPOL=0,下面以DAC81416的datasheet中的波形图为例进行时序说明。

图3 DAC81416读写波形

从上面的波形图上,我们可以看到片选信号CS低电平有效,DAC芯片下降沿采样SDI(也就是MOSI),主机端也是下降沿采样SDO(也就是MISO),无论SDI还是SDO,数据传输都是高位在前,低位在后。至于CS为高电平时SCLK处于什么电平都无所谓的,只是一般我们还是将它设置成低电平。下一篇文章我会结合具体datasheet继续分析上面的时序图。

本文图2来源于博主碎碎思的一篇博客。

SPI接口的FPGA实现(一)——SPI接口的相关基础知识相关推荐

  1. UART接口的FPGA实现(一)——UART接口的相关基础知识

    UART系列文章先介绍UART的基础知识,然后自己动手写Verilog代码实现这个接口并进行测试,最后介绍Xilinx的AXI-uartlite IP核.本系列文章编写时参考了乔庐峰老师编写的Veri ...

  2. 基于labview的温湿度数据采集_【零偏原创】基于FPGA的多路SPI接口并行数据采集系统...

    摘 要:本文简述了SPI协议,建立了基于FPGA的SPI接口电路模型,并说明其输入输出端口和数据发送和接收过程,仿真验证了在主状态机控制下10个SPI接口并行采集数据,并在FPGA开发板上进行验证. ...

  3. FPGA实现的SPI协议(二)----基于SPI接口的FLASH芯片M25P16的使用

    写在前面 SPI协议系列文章: FPGA实现的SPI协议(一)----SPI驱动 FPGA实现的SPI协议(二)----基于SPI接口的FLASH芯片M25P16的使用 在上篇文章,简要介绍了SPI协 ...

  4. (92)低速接口UART、IIC、SPI介绍,面试必问(十六)(第19天)

    (92)低速接口UART.IIC.SPI介绍,面试必问(十六)(第19天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)低速接口UART.IIC.SPI介绍,面 ...

  5. SPI接口通信协议详解:SPI时序、2线、3线、4线SPI及4种常用工作模式

    简介 SPI通信原理比I2C要简单,它主要是主从方式通信.这种模式通常只有一个主机和一个或者多个从机,标准的SPI是4根线,分别是SSEL(片选,也写作 SCS).SCLK(时钟,也写作SCK).MO ...

  6. 串行外设接口(Serial Peripheral Interface, SPI)逻辑设计部分 - spi_slave

    目录 1. (csn == 1'b1) 时 1.1. spi_slave 完成 Master读写握手 的最短时间 1.2. spi_slave 完成 Slave读写握手 的最短时间 2. (csn = ...

  7. 手机屏和大屏LCD显示面板接口(和处理器连接的接口类似12864等单片机处理器和屏接口的8086,SPI等并口串口屏以及RGB屏接口)LVDS接口常见于液晶电视中。eDP,LVDS,MIPI,HDMI

    mipi是手机液晶屏最常见的接口了 现在普遍的16:9或者16:10的宽屏,LCD接口大部分都是LVDS,也有RSDS接口,不过比较少.接口一般都是30PIN,不过由于尺寸不同,分辨率的不同,所用到的 ...

  8. FPGA实现低高速接口更新说明

    1 基于FPGA实现高/低速接口(更新说明) 01.基于FPGA实现IIC接口:已实现. 02.基于FPGA实现SPI接口:已实现. 03.基于FPGA实现UART接口:已实现. 04.基于FPGA实 ...

  9. FPGA实现的SPI协议(一)----SPI驱动

    写在前面 SPI协议系列文章: FPGA实现的SPI协议(一)----SPI驱动 FPGA实现的SPI协议(二)----基于SPI接口的FLASH芯片M25P16的使用 1.什么是SPI协议 SPI( ...

最新文章

  1. 我酸了!又是别人家公司!百度新年发 U 奖金鼓励员工
  2. python中的语言特性_python自测——语言特性
  3. kafka streams_Kafka REST Proxy MapR Streams入门
  4. [导入]相片: 53787515.jpg
  5. 重学java基础第二十一课:编译型和解释型
  6. 使用正则表达式,取得点击次数,函数抽离
  7. 跳蚤 BZOJ 4310
  8. python中使用什么关键字创建自定义函数_python自定义函数有哪些写法及用法
  9. ScrollView嵌套Gridview或者listview滚动问题
  10. JSON编码MySQL结果
  11. Java扫雷游戏的设计与实现毕业设计论文
  12. 计算机网络 以太网 和令牌环网
  13. android云控开源,Android EasyClient 云台控制开源流媒体摄像机EasyCamera
  14. 运行不同版本libc
  15. AlphaGo论文的译文,用深度神经网络和树搜索征服围棋:Mastering the game of Go with deep neural networks and tree search
  16. 对决:腾讯对360摊牌
  17. jul177链接_「jul177小早川中文」无删减版高清天天影音第89集
  18. 【Python实战项目】做一个 刮刮乐 案例,一不小心....着实惊艳到我了。
  19. educoder_python:6-1-对象第1关:TOM猫原型 类
  20. 【vs】 试图加载格式不正确的程序

热门文章

  1. 教务管理系统(python课程设计)
  2. optimizer.zero_grad()和loss.backward()
  3. FFMPEG-FLV格式探测
  4. 将python文件打包成exe文件(带附属txt文件)
  5. 走进Web开发(1)--什么是Web开发
  6. 【计蒜客17293】【学校联考】CQYZ_Vijos_P3754 抢气球
  7. 从零开始学Java哇哇哇-Day2
  8. 通信协议篇——I2C通信
  9. 百度定位API使用方法
  10. icpc 2017北京 J题 Pangu and Stones 区间DP