首页 > 其他分享 >接口协议(2) - SPI

接口协议(2) - SPI

时间:2022-09-04 21:45:07浏览次数:77  
标签:MISO 接口协议 MOSI 模式 SPI CS 设备

SPI(Serial Peripheral Interface)是一种可以全双工/半双工/单工通信的接口协议,由2(单工)/3(双工)条信号线和1+条(每个从设备1条)片选信号线组成。支持MSB/LSB传输模式,支持4/8/16/32 bit数据长度(大部分SPI设备一般支持8/16 bit,其它bit一般需要硬件指定支持)。

1. 通信速率

速率没有硬性规定,一般3KHz~100MHz。

2. SPI接口

(1) MISO – Master Input Slave Output,主设备数据输入,从设备数据输出;
(2) MOSI – Master Output Slave Input,主设备数据输出,从设备数据输入;
(3) SCLK – Serial Clock,时钟信号,由主设备产生;
(4) CS – Chip Select,从设备使能信号,由主设备控制,每个从设备一条CS线,低电平被有效选中,相当于从设备地址。

3. 数据有效性

条件1:CS低电平有效.

对应从设备的CS信号线低电平时,从设备被选中,通信数据有效。

条件2:模式选择.

SPI Mode CPOL CPHA 空闲时SCK时钟 采样时刻
0 0 0 低电平 奇数边沿
1 0 1 低电平 偶数边沿
2 1 0 高电平 奇数边沿
3 1 1 高电平 偶数边沿

CPOL时钟极性,CPHA时钟相位,根据寄存器中这两者的不同配置,会有不同采样电平和边沿。

 

 

4. 起始信号

对应从设备的CS信号线电平由高变低,和对应从设备通信开始。

5. 结束信号

对应从设备的CS信号线电平由低变高,和对应从设备通信结束。

6. SPI模式

2-wire模式

单工模式,

(1) CLK + MOSI,只写模式。

(2) CLK + MISO,只读模式。

3-wire模式

CLK + MOSI + MISO布局,

(1) 半双工,读/写不可同时进行,一般通过改变寄存器对应配置寄存器来实现,读完写,写完读。

(2) 全双工,读/写可同时进行。

2倍读/写模式

CLK + MOSI + MISO布局,并非所有器件都支持这种模式,需要厂商的控制器支持,

(1) 2倍读模式,MOSI和MISO均做为MISO使用。

(2) 2倍写模式,MOSI和MISO均做为MOSI使用。

4倍读/写模式

CLK + MOSI + MISO + (WP#) + (HOLD#)布局,并非所有器件都支持这种模式,需要厂商的控制器支持,

在四倍输入/四倍输出SPI中,命令、地址和虚拟字节通过SPI_MOSI线以串行方式以1 bit为单位输出。只有数据字节是通过SPI_MOSI、SPI_MISO、SPI_WP#和SPI_HOLD#以4 bit为单位的输出(写)和输入(读)。

标签:MISO,接口协议,MOSI,模式,SPI,CS,设备
From: https://www.cnblogs.com/phoebus-ma/p/16656201.html

相关文章

  • PHY配置_MDIO接口协议设计
    一.基本知识千兆以太网通过MAC和PHY芯片通信,MAC端可由FPGA实现,而PHY是物理芯片,只需要配置其工作模式,速率等等参数,便可正常运行。在前面的千兆以太网收发模块中我们并......
  • 自旋锁(spin)与互斥量(mutex)
    自旋锁程序在多处理器上运行会因为,多个线程同时进行,而导致丧失语句的原子性。例如读和写的操作是分开的,不能保证同时完成。所以软件不够用硬件来凑,通过硬件实现一条指......
  • delphi 【数字微调编辑框组件TcxSpinEdit】
      此控件仅支持数字数.默认情况下不支持小数点,但支持负数输入.1.设置控件支持小数点输入.properties---valueType:=vtFloat2.隐藏边框右边的微调按钮.pr......
  • 2022牛客暑假多校01B[Spirit Circle Observation]
    2022牛客暑假多校01B[SpiritCircleObservation]大致题意给出一个长度为\(n\)的字符串\(s\),求有多少个子串对\((A,B)\),满足\(1.|A|=|B|\)\(2.\overline{A}+1=......
  • Spire.Cloud 私有化部署教程(三) - Windows 系统
    本教程主要介绍如何在Windows系统上实现Spire.Cloud私有化部署。详细步骤如下:一、安装依赖我们的私有部署的依赖有Nodejs、MySQL、Redis和RabbitMQ。请确认服务......
  • SPI协议的数据读写实现(spi_slave)
    SPI协议的数据读写实现(spi_slave)  ......
  • spi的工作方式
    DMA MODE3 SPI四种模式区别-百度文库(baidu.com) ......
  • spi通信
    【原创】详细解析FPGA与STM32的SPI通信 SPIperipheral......
  • Java SPI与SpringBoot 自动配置
    JavaSPI设计思想1、使用约定的配置文件2、谁提供jar包,也要负责提供配置文件3、使用ClassLoader的getResource和getResources方法,来读取classpath中的配置文件 Sprin......
  • Spirng MVC
    dispatcherServlet:前置控制器,在spring项目启动时生成,初始化其中的handlermapper,handlderadapter,viewresponse。作为http请求的入口,dispatcherServlet会先通过handl......