0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机SPI通信原理说明

要长高 来源:电工学习网 作者:电工学习网 2022-03-30 16:37 次阅读

单片机是一个可编程微控制器,和spi通信其实是两个独立的东西。

只不过我们用单片机可以去实现spi通信而已,但是实现spi通信不一定非要单片机。

我们人和人之间沟通,要靠说话,并且两个人语言要一样,比如说都用普通话。

芯片和芯片沟通,它们又不会说话,怎么传递信息呢?

就是通过通信总线,通信总线有很多种,比如IIC、SPI、USART、CAN,它们的区别就像普通话、英语、韩语、俄语,都是用来传递信息用的,只是传递方式不同。

但传递信息,有一个前提,就是语言要相同,也就是通信方式要相同。

所以说,spi是一种通信方式,是用来传递信息的。

不同的通信方式,传递信息的方式不同。

Spi是一种全双工、高速的、同步的通信总线。

简单来说,就是你们两个可以同时快速地说话,你能把你要说的告诉对方,同时也能听到对方说什么,这就是全双工。

还有一种叫半双工,就是你们同时只能有一个人说,另一个听,说完了,另外一个才能说。

很明显,全双工传递信息的效率更高吧。

同步的意思我给你们两个对话设定个条件,比如说我说开始你们才可以对话,我说停止就都不能说话。

我们人和人传递信息一般是靠耳朵和嘴巴对吧?

Spi通信传递信息是通过接口,来看下图:

pYYBAGJEFmmAFj9sAAA6KKElwYg614.png

SPI通信协议:单片机spi通信接口什么意思,spi接口干什么用的?

spi接口有4根线,分别是CS、SCLK、MOSI、MISO。

SCLK是同步信号,一般由主控来控制。

既然是通信,自然是需要有个”对象”,如上图A和B。

A是SPI Master,也就是主控,比如说单片机,一般就是主控的角色,主控来负责发送SCLK同步信号通知SPI Slave是否需要进行数据通信。

B是SPI Slave,也就是从机,比如说Flash芯片。

CS代表片选信号,为什么要用片选呢?

因为一个SPI Master可以跟不同的SPI Slave进行通信。

poYBAGJEFnCAeC7UAABcKbnMehk361.png

SPI Master就是通过CS来控制,具体跟哪个SPI Slave通讯,控制CS为低电平就代表选中该SPI Slave。

如果说只跟一个从设备通讯,也可以直接把CS串联电阻接地,省的每次都去控制它。

MOSI英文全称是Master Output Slave Input,这个一般接主控器件数据输出引脚,从机器件数据输入引脚。

MISO英文全称是Slave Input Master Output,这个一般接主控器件数据输入引脚,从机器件数据输出引脚。

除此以外,还有一种特殊的用法,就是只用SCLK和MOSI这两个引脚的SPI通信。

比如说我们无际单片机编程实战项目课程里有个OLED屏的应用。

pYYBAGJEFn2AfoYSAABFzuo1orc623.png

片选引脚CS我直接硬件接地了,因为只有一个从设备。

我们主要是控制OLED屏去显示内容,并不需要从OLED读取数据,所以MISO也不需要。

这种情况是可以只用2根线的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43978

    浏览量

    620864
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134405
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1615

    浏览量

    89602
收藏 人收藏

    评论

    相关推荐

    STM8L001J3单片机SPI通信数据异常怎么解决?

    最近在做一个项目,选择STM8L001J3外挂做数据处理,由于通信速度和准确性考虑,没有用STM8L001J3的I2C和USART接口,采用SPI做丛和主机进行通信,意法的
    发表于 04-24 07:55

    为什么使用51单片机与ADXL345 SPI通信时,需要自己对SDI,SDO,SCLK进行高低电平的设置?

    我想请教一下为什么使用51单片机与ADXL345的4线SPI通信时,需要自己对SDI,SDO,SCLK进行高低电平进行设置,为什么不直接用串口设置成SPI
    发表于 01-01 08:09

    单片机串口通信的接收与发送程序

    等功能。本文将详细介绍单片机串口通信的接收与发送程序。 二、串口通信基础 串口通信协议:串口通信通常采用RS-232、RS-485、
    的头像 发表于 12-19 13:57 991次阅读

    使用两款单片机模拟SPI协议与adtt7320通信遇到的疑问求解

    大家好:我在调试adtt7320号这个芯片。使用两款单片机模拟SPI协议与adtt7320通信,现在遇到了两个问题:一、标准32与adtt7320号都用3.3v供电时,系统可以正常通信
    发表于 12-19 06:34

    ad7779数据输出接口和单片机该怎样连接?采用哪种通信协议来接收数据?

    AD7779有两种不同接口:SPI和数据输出接口。问题1:数据输出接口和单片机该怎样连接,到底采用哪种通信协议来接收数据?I/O口?USART?SPI?或者说是并口协议。还是说主控芯片
    发表于 12-07 07:42

    单片机spi接口的使用方法有哪些(spi接口和串口的区别)

    如果单片机没有硬件SPI模块,或者需要额外的IO引脚来实现多个SPI设备的通信,可以使用软件SPI模拟。软件
    的头像 发表于 11-10 16:38 1664次阅读

    51单片机和stm32单片机如何串口通信呢,需要电平转换器吗?

    51单片机和stm32单片机如何串口通信呢,需要电平转换器吗?
    发表于 11-01 07:47

    基于MSP430单片机MCU与DSP的SPI通信设计

    电子发烧友网站提供《基于MSP430单片机MCU与DSP的SPI通信设计.pdf》资料免费下载
    发表于 10-30 10:14 4次下载
    基于MSP430<b class='flag-5'>单片机</b>MCU与DSP的<b class='flag-5'>SPI</b><b class='flag-5'>通信</b>设计

    PC单片机通信

    PC 单片机通信(RS232 协议)
    发表于 10-07 06:22

    单片机有哪些分类?

    一条指令,但目前还未普及。AVR单片机比51单片机多了USB通信模块、SPI通信模块、I2C通信
    发表于 09-07 14:54

    单片机汇编读写SPI FLASH的详细资料说明

    本文档的主要内容详细介绍的是单片机汇编读写SPI FLASH的详细资料说明
    发表于 08-14 10:45 18次下载

    通信(1)#单片机

    单片机通信
    未来加油dz
    发布于 :2023年08月08日 19:29:09

    SPI总线扩展实例(2)#单片机

    单片机通信
    未来加油dz
    发布于 :2023年08月08日 19:21:52

    SPI总线扩展实例(1)#单片机

    单片机通信
    未来加油dz
    发布于 :2023年08月08日 19:21:04

    单片机I2C和SPI通信的不同

     用I2C通信的芯片常用的就是EEPROM芯片,如Atmel的AT24CXX系列,此外,还有一些其它功能的芯片。用SPI通信的芯片有外置FLASH芯片,同样,还有其他功能的一些芯片。
    的头像 发表于 06-06 10:47 883次阅读
    <b class='flag-5'>单片机</b>I2C和<b class='flag-5'>SPI</b><b class='flag-5'>通信</b>的不同