1. SPI通信拓扑

1.1 单个设备

SPI主设备与一个从设备通信, 使用以下拓扑结构:

1.2 多从设备通信

系统架构设计中,当单片机需要和多个片外芯片进行SPI通信时,可采用两种方式,即多从机方式,或者菊花链方式。

1.2.1 普通模式

SPI 主设备与多个SPI从设备通信,

  • SCLK

SCLK, SPI主设备与多个从设备共享一个通道。

  • 数据通路

SPI主设备通过MOSI/MISO与每个从设备构成通信通道。

  • CS

主设备通过使能不同的片选信号,选择与SPI主设备通信的从设备。

1.2.2 菊花链模式

菊花链模式,简而言之,主设备与多个从设备的通信通道采用串联方式,主设备将数据传送给第一个从设备,从设备依次往下传递数据,有多少个从设备,就传送多少次。最后一个从设备将接收到的数据传送给主设备。

  • SCLK

SCLK通道, SPI主设备与多个从设备共享一个通道。

  • 数据通路

SPI主设备通过MOSI与第一个从设备(SDI)通信,第一个从设备(SDI)与第二个从设备(SDO)相连接,最后一个从设备SDO与主设备MISO相连。

  • CS

主设备使用同一个CS管脚,与SPI从设备通信。

SPI通信拓扑如何选择?相关推荐

  1. android spi串口调试,PIC入门3,SPI通信和串口调试实验

    原标题:PIC入门3,SPI通信和串口调试实验 MSSP模块工作于SPI主控方式,这个可以直接在实验板上执行. 程序: //适合3EPIC实验板,配置PIC的MSSP模块工作于SPI主控方式下, // ...

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

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

  3. ADI官方解释在SPI通信期间,数据的发送(串行移出到MOSI/SDO总线上)和接收(采样或读入总线(MISO/SDI)上的数据)

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

  4. CC3200 与 CC2530的SPI通信

    目的:实现CC2530作为master,CC3200作为slave的SPI 通信 连接图如下 /*--------------------------– Master Slave ----- ---- ...

  5. 通信协议整理之 SPI 通信

    通信协议整理之 SPI 通信 文章目录 通信协议整理之 SPI 通信 简介 工作原理 通信连接方式 补充 硬件 SPI 和模拟 SPI 简介 SPI是串行外设接口(Serial Peripheral ...

  6. STM32 OLED显示屏--SPI通信知识汇总

    备注:在OLED显示屏部分,单片机是通过SPI和OLED进行通信的. 文章目录 目录 文章目录 一.SPI时序通信 二.SPI通信的分类 1.硬件SPI 2.软件SPI 三.硬件SPI SPI特性 硬 ...

  7. 嵌入式开发笔记——CPLD与MCU模拟SPI通信

    作者:zzssdd2 E-mail:zzssdd2@foxmail.com 一.需求描述 MCU需要接收来自CPLD的升级固件数据 CPLD对MCU只进行发送数据,不接收MCU的数据 CPLD无法告知 ...

  8. 学习笔记(1)stm32h743和ADXL355的SPI通信,基于cubeMX和keil5MDK平台,采用HAL库编程,代码已模块化处理

    今天是一个特别的日子,为什么呢?哈哈,因为从大四做毕业设计的时候,接触CSDN,到现在一整年了,终于创作了我的第一篇博客,内心难念有些激动! 首先声明,我不是嵌入式领域的技术大牛,只是普通的研一新生, ...

  9. Arduino(3) Mega2560和外部设备SPI通信

    前言 这篇文章主要讲Arduino串行通信里的SPI通信.SPI(Serial Peripheral Interface,串行外设接口)高速通信接口一般用在于对于数据量要求比较大的设备或者场景里,例如 ...

最新文章

  1. springboot 头像上传 文件流保存 文件流返回浏览器查看 区分操作系统 windows 7 or linux...
  2. oracle杀死进程时权限不足_当集群和数据库软件目录都被chown -R时,如何快速修复...
  3. Centos7 安装 Elasticsearch7.10(不错可以试试)
  4. openfire消息通知推送_微信小游戏内测「订阅消息」能力,这是召回用户的「大杀器」吗?...
  5. pycharm中python的默认安装路径_mac PyCharm添加Python解释器及添加package路径的方法...
  6. noip复赛批量移动文件夹下的文件
  7. SpringMVC当中的 @Transactional(readOnly = true) 的作用
  8. 集 Python、C、R、Ruby 之所长,动态编程语言 Julia 1.0 正式发布
  9. (转)[数据库基础]——编码标准之命名
  10. vs2008的预编译命令
  11. Android 在button 上添加imageview不显示
  12. JAVA调起clearcase_Rational ClearCase和Rational ClearQuest对Java API的支持
  13. 作为技术人员,写博客对我们到底有什么好处?为什么要写博客?
  14. Python 列表转为字典
  15. 实习每日总结_20161222
  16. LTD营销SaaS-官微云代理商加盟服务
  17. 【软件入门】Keil:从AC5到AC6
  18. 运动无线耳机哪款不容易掉、最不容易脱落的蓝牙耳机推荐
  19. SOJ4480 Easy Problem IV (并查集)
  20. 学习之初 、约定、 认识Linux、安装虚拟机 、安装centos7

热门文章

  1. SpringBoot+JWT实现登陆token验证并存储用户信息
  2. 电子书《程序原本》小述
  3. Matlab常用技巧
  4. svn 创建分支、切换分支 及 合并分支 操作
  5. Python爬取张家界风景美图
  6. php网页采集 修改版
  7. GB 9706.1-2020和GB9706.1-2007对照表
  8. 如何依靠副业赚钱,应对人到中年的职场危机
  9. 命令行批量删除带某关键字的文件
  10. 2021.3.2版本idea配置maven出现org.codehaus.plexus.component.repository.exception.ComponentLookupException