SPI硬件电路设计

1  SPI简介

2  SPI的特点和基本概念

2.1 SPI的特点

2.2 SPI的基本概念

3  SPI协议(摩托罗拉)

3.1 SPI控制器内部寄存器

3.2 时钟极性(CPOL)和时钟相位(CPHA)

3.3 SPI时序图

4  SPI原理图设计

4.1 W25Q256JV--SPI通信FLASH,华邦

4.2 SC18IS602B,IIC转SPI芯片--NXP

5  SPI资料及芯片选型推荐

SPI硬件电路设计

1  SPI简介

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行扩展接口,是一种高速、全双工、同步通信总线,所以可以在同一时间发送和接收数据。SPI没有定义速度限制,通常能达到10-100M/bps。

SPI有主、从两种模式,通常由一个主模块和一个或多个从模块组成(SPI不支持多主机),主模块选择一个从模块进行同步通信,从而完成数据的交换。提供时钟的为主设备(Master),接收时钟的设备为从设备(Slave),SPI接口的数据传输(对FLASH来说是读写操作)都是由主设备发起,当存在多个从设备时,通过各自的片选信号进行管理。

标准SPI通信接口包含以下四根线:

MISO(Master Input Slave Output):主设备数据输入,从设备数据输出;

MOSI(Master Output Slave Input):主设备数据输出,从设备数据输入;

SCLK(Serial Clock):时钟信号,由主设备产生;

CS/SS/NSS(Chip Select/Slave Select):从设备使能信号,由主设备控制,一主多从时,CS/SS是从芯片是否被主芯片选中的控制信号,只有片选信号为预先规定的使能信号时(高电平或低电平,查找从设备Datasheet),主芯片对此从芯片的操作才有效。

2  SPI的特点和基本概念

2.1 SPI的特点

(1)主模式和从模式

(2)高速、全双工、同步通信

(3)双向模式,3线SPI,Dual SPI,Qual SPI(QSPI)

(4)多从机时,从选择输出

(5)模式错误标志,多主时报错,CPU中断功能

(6)双向数据缓冲寄存器,移位寄存器

(7)可编程的时钟极性(CPOL/CKP)和时钟相位(CPHA/CKE)

(8)在等待模式下对SPI的控制,等待模式是一种可配置的低功率模式

2.2 SPI的基本概念

2.2.1 SPI总线术语

SS/CS:Slave Select

SCK:Serial Clock

MOSI:Master Output, Slave Input

MISO:Master Input, Slave Output

MOMI:Master Output, Master Input

SISO:Slave Input, Slave Output

2.2.2 SPI控制器内部结构框图

SPI的主要部分是状态、控制和数据寄存器、移位器逻辑、波特率发生器、主/从控制逻辑和端口控制逻辑。此结构为摩托罗拉协议的结构,每个主控制器内部SPI结构可能略有差异。

2.2.3 SPI总线的运行状态

SPI有三种模式,即运行、等待和停止。

运行模式:这是最基本的操作方式。

等待模式:等待模式下的SPI操作是一种可配置的低功率模式,由位于SPICR2寄存器中的SPISWAI位控制。在等待模式下,如果SPISWAI位被清除,SPI进入运行模式。如果设置了SPISWAI位,则SPI将进入功率保守状态,而SPI时钟生成将被关闭。如果SPI配置为主服务器,任何正在进行的传输都将停止,但在CPU进入运行模式后恢复。如果SPI配置为从服务器,则字节的接收和传输继续,以便从服务器与主服务器保持同步。

停止模式:SPI在停止模式下处于非活动状态,以降低功耗。如果SPI配置为主服务器,任何正在进行的传输都将停止,但在CPU进入运行模式后恢复。如果SPI配置为从服务器,则字节的接收和传输继续,以便从服务器与主服务器保持同步。

更为详细的描述见协议文档,只需大概了解即可。

2.2.4 标准SPI和3线SPI,Dual SPI和Qual SPI(6线)的区别

(1)标准SPI:标准SPI通常就称SPI,有4根引脚信号:clk , cs, mosi, miso。

(2)3线SPI:在SPI控制寄存器2中设置SPC0位时,选择双向模式。在此模式下,SPI只使用一个串行数据脚。MSTR位决定使用哪个引脚。MOSI引脚成为主模式的串行数据I/O(MOMI)引脚,而MISO引脚成为从属模式的串行数据I/O(SISO)引脚。SPI不使用主模式下的MISO引脚和从属模式下的MOSI引脚。因此三线SPI包含3跟信号线,CLK,CS,MOMI(SOSI)。摩托罗拉的3线SPI是有CS的,数据线变成双向。

TI的3线SPI是没有CS信号,使用CLK、MOSI、MISO,不能多从操作。并且说明了不支持2线单向操作,即只使用CLK和MOSI或MISO。

(3)Dual SPI(Dual serial peripheral interface)双线串行外设接口

Dual SPI一般是对SPI Flash而言,不是所有SPI外设都支持该模式。对于SPI Flash,全双工并不常用,因此扩展了mosi和miso的用法,让它们工作在半双工,用以加倍数据传输。也就是对于Dual SPI Flash,可以发送一个命令字节进入dual mode,这样mosi变成SIO0(serial io 0),miso变成SIO1(serial io 1),这样一个时钟周期内就能传输2个bit数据,加倍了数据传输。只能半双工工作。

(4)Qual SPI(Quad serial peripheral interface)4跟数据线

与Dual SPI类似,也是对SPI Flash而言,Qual SPI Flash增加了两根I/O线(SIO2(WP),SIO3(HOLD)),目的是一个时钟内传输4个bit。

所以对于SPI Flash,有标准spi flash,dual spi , qual spi 三种工作模式。可以用3-wire, 4-wire, 6-wire工作,在相同clock下,线数越多,传输速率越高。

注:更多内容欢迎关注B站:硬件工程师老刘,视频讲解相关电路知识,协议学习。

SPI硬件电路设计,SPI协议相关推荐

  1. SPI硬件设计、协议、速率全解析

    SPI硬件电路 SPI(Serial Peripheral Interface)是一种嵌入式产品常用的板级高速.全双工通信总线. 它采用1主多从的方式进行通信. 整个通信的物理层通常需要(3+N)根线 ...

  2. 【SPI】SPI学习之SPI硬件相关

    关联内容: [SPI]SPI学习之SPI硬件相关 [SPI]SPI学习之SPI驱动相关 [SPI]SPI学习之SPI调试相关 目录 SPI硬件知识 SPI相关的缩写或说法 SPI外部信号描述 SPI硬 ...

  3. TLE5012B ESP32驱动程序、硬件电路设计、4线SPI通信,驱动完美兼容4线SPI不用改MOSI开漏推挽输出

    一.TLE5012B 简介 TLE5012B 是一种款高分辨率旋转位置传感器,用于在整个 360 度范围内进行角度测量. 它通过使用单片集成 巨磁阻 (iGMR) 元件,来测量正弦和余弦角分量,这些原 ...

  4. AS5047P磁编码器ESP32驱动程序、硬件电路设计、SPI通信时序、逻辑波形分析、注意事项

    1.AS5047P硬件设计 1.1 简介.性能参数 AS5047P 是一种款高分辨率旋转位置传感器,用于在整个 360 度范围内进行高速(高达 28krpm)角度测量.这种新型位置传感器配备了革命性的 ...

  5. SPI与I2C总线协议

    目录: 一.SPI总线协议 1.什么是SPI 2.技术性能 3.接口定义与硬件连接 4.内部结构 5.传输时序 6.高速SPI 1)硬件电路   2)1MHz SPI传输问题 二.I2C总线协议 1. ...

  6. 17. STM32——SPI硬件

    STM32--SPI SPI协议 SPI接口 SPI接口框图 SPI工作原理 时钟信号的相位和极性 CPHA = 0 CPHA = 1 SPI中断 状态标志 发送缓存器空闲标志(TXE) 接收缓冲器非 ...

  7. SPI总线-串行协议解码

    目录 SPI总线-串行协议解码 接线 发信号 SPI总线-串行协议解码 SPI(串行外围接口)总线最初是由摩托罗拉开发的,用于其微控制器.由于总线的简单性,其他制造商采用了它,并且它已广泛用于嵌入式系 ...

  8. ESP32系列:三线SPI硬件设计及程序驱动设计(SPI FLASH为例)

    (1)三线SPI硬件设计 首先,ESP32是支持三线制和四线制的,三线制为半双工通信,四线制为全双工通信.如果你们用的芯片不支持三线制,就不要再折腾了,支不支持三线制,看芯片的datasheet.如图 ...

  9. 硬件电路设计原理图设计

    叶倾城-硬件原创的个人空间_哔哩哔哩_Bilibili 硬件电路设计原理图设计第二季-1-40课已更新完成啦!!! 第三季硬件电路设计原理图设计敬请期待!感谢大家的支持! 第01课------硬件实战 ...

最新文章

  1. Android四大组之ContentProvider
  2. java输入键盘_java键盘输入
  3. mysql 回滚失败_Mysql非事务表回滚失败的现象
  4. 微信悄悄更新:朋友圈不喜欢的评论可以删除了
  5. odoo 中实现多列搜索
  6. 2021新版外卖CPS 外卖侠CPS小程序
  7. winhex的内存搜索法
  8. linux安装字体库(simSun为例)
  9. 手把手教你一个321MB的视频,如何压缩到300MB以内?
  10. shark恒破解笔记3-EAX决定胜负
  11. 港口信息化、智能化、自动化产品设计想法---5
  12. 【自动驾驶控制算法】 第一讲 绪论
  13. 餐饮行业如何精准轻松获客,短期内使营业额倍增
  14. entity framework migration
  15. php composer.phar install,解决composer.phar安装问题
  16. poscms统计数据调用
  17. gnuplot下载地址
  18. java当前时间减一年_Java获取时间,将当前时间减一年,减一天,减一个月
  19. C语言之strtok函数
  20. 感受山猫之力 Ubuntu 10.04 LTS试用手记

热门文章

  1. [基因遗传算法]进阶之五:实践VRPTW
  2. Arduino 的串口通信seria.print() serial.write()
  3. 券商公司如何搭建港美股交易系统软件
  4. LightTools 模拟不同折射率介质间光学界面的反射率和透射率问题
  5. python并发下载
  6. 重塑互联网最好的方式:以内容为中心的网络
  7. 央视揭秘:自嘲脸盲的刘强东 这样从农村少年走向成功
  8. Python简单爬虫第六蛋!(完结撒花)
  9. C# 特性详解(Attribute)
  10. Nginx 深入浅出