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

article/2025/8/23 5:51:57

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来源于博主碎碎思的一篇博客。


http://chatgpt.dhexx.cn/article/jaUAhBCA.shtml

相关文章

SPI接口原理与时序

SPI接口原理与时序 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的串行通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB…

SPI接口的FPGA实现(三)——Verilog代码实现SPI接口

上一篇文章我们介绍了DAC81416的配置过程,这一篇我们就用Verilog代码具体实现这个过程,这一篇的代码具有普遍性,以后所有DA/AD的配置代码都可以在本文所展示的代码上进行修改获得。这里先给出源代码链接和一个通用fifo(作为子模块…

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

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

SPI接口总结

一、SPI协议【SerialPeripheral Interface】 串行外围设备接口,是一种高速全双工的通信总线。在ADC/LCD等与MCU间通信。 1、SPI信号线 SPI 包含 4 条总线,SPI 总线包含 4 条总线,分别为SS 、SCK、MOSI、MISO。 (1)SS…

SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)

SPI接口扫盲 douqinglgmail.com 为何要写这篇文档? 百度上找出来的SPI接口中文描述都说的太过简略,没有一篇文档能够详尽的将SPI介绍清楚的。wikipedia英文版[注释1]中,SPI接口介绍的很好,但是毕竟是英文版,读起来终究…

SPI接口通信原理

SPI接口通信 一、基础概念 SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master。时钟由主设备控制,在时钟移位脉冲下&…

SPI接口屏幕

在小分辨率(不高于qvga(320*240))的设备中,使用的是spi接口的屏幕,比如gc9306和st7789等。有两种类型的屏幕: 3线屏(3线1data或3线2data) 3线9bit I型 SCL/CSX/SDA 3…

STM32-SPI接口

一、SPI协议【SerialPeripheral Interface】 串行外围设备接口,是一种高速全双工的通信总线。在ADC/LCD等与MCU间通信。 1、SPI信号线 SPI 包含 4 条总线,SPI 总线包含 4 条总线,分别为SS 、SCK、MOSI、MISO。 (1)SS…

SPI接口原理与配置

SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线&#xff0…

SPI 接口配置

SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,是一种高速的,全双工,同步的通信总线,在很多器件中被广泛应用。 SPI相关缩写 SS: Slave Select&…

D2--FPGA SPI接口通信2022-08-03

1.SPI简介 SPI是串行外设接口(Serial Peripheral Interface)的缩写,通常说SPI接口或SPI协议都是指SPI这一种串行外设接口规范。相对于串口,SPI是一种高速的(可达10Mb\s以上),全双工&#xff0c…

[SPI]SPI接口简介

SPI接口简介 前言:串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用较广泛的接口之一。本文先简要说明SPI接口,然后介绍ADI公司支持SPI的模拟开关与多路转换器,以及它们如何帮助…

计算机串口接spi,SPI串口模块-SPI接口详细介绍

SPI串口模块-SPI接口详细介绍 1. SPI串口模块-概述 SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。现在越来越多的芯片集成了这种通信协议,常见的有EEPROM、FLASH、AD转换…

SPI接口介绍

SPI接口的全称是”Serial Peripheral Interface”,即串行外围接口。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉…

SPI接口协议的学习1

SPI接口是一种同步串行总线(Serial Peripheral Interface)。 四线SPI接口连线图: CS为片选脚,用于选中从机。 SCLK为时钟脚,用于数据传输时提供时钟信号。 MOSI为主output,从input,即主机发送…

SPI接口详细介绍

概述 SPI Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。现在越来越多的芯片集成了这种通信协议,常…

软件模拟SPI接口程序代码

目录 SPI协议简介 SPI接口介绍 SPI接口连接图 SPI数据传输方向 SPI传输模式 模拟SPI程序 SPI协议简介 SPI的通信原理很简单,一般主从方式工作,这种模式通常有一个主设备和一个或者多个从设备,通常采用的是4根线,它们是MISO&…

SPI接口及驱动

1. 简介 SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构。支持多slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输&#xf…

SPI 接口

SPI 接口的全称是“Serial Peripheral Interface”意为串行外围接口,是 Motorola 首先在其 MC68HCxx 系列处理器上定义的。SPI 接口主要应用于 EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。 SPI 接口是在 CPU 和外围低…

ESP32 SPI 接口的应用

总体介绍 1. ESP32 共有 4 个 SPI 控制器 SPI0、SPI1、SPI2、SPI3,用于连接支持 SPI 协议的设备。 SPI0 控制器作为 cache 访问外部存储单元接口使用;SPI1 作为主机使用;SPI2 和 SPI3 控制器既可作为主机使用又可作为从机使用。作主机使用时,每个 SPI 控…