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

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

3天内不再提示

如何在树莓派上启用SPI / I2C

454398 来源:网络整理 作者:网络整理 2019-12-02 10:14 次阅读

Raspberry Pi几乎可以用于任何用途。从家庭媒体中心到自定义的复古游戏设置,可以肯定地说Pi和类似的单板计算机正变得无处不在。

当您开始尝试在Raspberry Pi上使用GPIO引脚时,事情将会变得更多。有趣。我们已经介绍了所有这些引脚的功能,所以现在让我们看看如何在Pi上启用SPI和I2C协议,以及为什么要这么做。

Raspberry Pi上的SPI是什么?

在深入研究之前,让我们简要介绍一下这两种协议的作用。

SPI (或串行外围接口)允许Pi等微控制器与一次可容纳100个外围组件。微控制器充当所有“从属”组件的“主”,并可以与它们进行高速通信。此图概述了一个简单的SPI连接:

《图id =“ attachment_760970” aria- describeby =“ caption-attachment-760970” class =“ wp-caption aligncenter”》

如何在树莓派上启用SPI / I2C

图片来源:Cburnett/wikipedia.org

如果这是您第一次阅读有关SPI看起来似乎很吓人,但要坚持下去! SCLK 是主机设置的时钟速度,它确定设备之间共享信息的速度。

在时钟的每个周期(或“滴答”),两个主机从站发送和接收一位信息。这就是 MOSI (主输出从动输入)和 MISO (主输入从动输出)引脚的作用。

SS 或从选择引脚(在Pi上标记为CE0或CE1)用于告诉从设备在任何给定时间与主设备进行通信(或不与之通信)。在大多数情况下,每个从设备都需要自己的SS引脚,但可以共享SCLK,MOSI和MISO引脚。

某些设备可以通过“菊花链式”共享一个SS引脚,从而保持使用的总引脚数减少到四个,再加上两个用于电源和地。 SPI以极快的速度而闻名,通常用于移位寄存器ADC模拟到数字转换器)以在设备之间传递数据。

增强型初创公司YouTube频道具有易于遵循的SPI入门知识,可以解释协议进一步:

如何在Raspberry Pi上启用SPI

要在Raspberry Pi上启用SPI,请在终端上输入以下内容打开 raspi-config :

sudo raspi-config

导航至接口选项,然后在以下菜单上选择 P4 SPI启用/禁用SPI内核模块的自动加载 。在窗口提示符下选择是。现已启用SPI!

或者,您可以从/boot/config.txt 文件启用SPI。打开终端窗口,然后输入:

sudo nano /boot/config.txt

查找读为#dtparam = spi = on 的行,并删除#符号。不管您以哪种方式启用SPI,都将重新启动Pi并启用SPI。

在Raspberry Pi上使用SPI可以做什么?

尽管有数百个使用许多不同SPI的不同项目,外设,一个不错的入门项目是对自己的RFID读取器进行编程

我们在带ArduinoDIY智能锁和RFID教程中使用了MFRC-522读取器。要获得Raspberry Pi风味的RFID简介,请查看piddlerintheroot的深入的Instructable。

这种设置也不仅仅适用于爱好电子产品。在我们最好的Raspberry Pi项目集合中,我们采用了使用Raspberry Pi和RFID运行的全尺寸MES系统,作为欧洲大规模工厂运营的一部分。

Raspberry Pi上的I2C是什么?

I2C是菲利普斯电子公司(Phillips Electronics)创建的通信协议,该协议在基于微控制器的爱好项目中已得到广泛使用。原因很明显-它仅使用两根线,而不是SPI的最少四根线。用户制作的库也很好地支持它。 Raspberry Pi上有许多旨在与I2C一起使用的组件。虽然它比SPI慢,但对于大多数日常使用而言仍然可以足够快地工作。

与SPI一样,该协议具有 master 设备,例如Pi和从设备设备,例如屏幕,移位寄存器或电机驱动器

设备之间的第一个连接是 SCL (串行时钟)由主机设置以同步数据传输。第二行是 SDA (串行数据),它在I2C总线上的所有设备之间来回传输数据。

主设备开始与 start通信位和一个7位十六进制地址。这必须与从属设备匹配,以便它们进行通信。这就是用两根导线可以使用的设备数量。

然后,主设备在接收之前指定它是要读取还是写入( R/W )从设备确认或 ACK 。

YouTuber增强型初创企业再次提供了易于理解的I2C深入了解:

如何启用Raspberry Pi上的I2C

还可以通过 raspi-config 菜单在Pi上启用I2C。打开终端并输入:

sudo raspi-config

使用箭头键选择接口选项,然后选择 P5 I2C启用/禁用自动加载I2C内核模块。确认要启用该协议,然后会看到一个确认屏幕。

与SPI一样,您也可以通过修改配置来启用I2C。 txt文件。打开终端并输入:

sudo nano /boot/config.txt

修改# dtparam = i2c_arm = on ,删除#符号。

重新启动您的Pi,I2C即可使用!

您可以在Raspberry Pi上使用I2C做什么?

I2C非常适合需要大量输出的任何项目。 LCD屏幕的典型用途是使用,最多需要16个引脚。 I2C将其减少到只有两个用于通讯,两个用于电源和地。

许多LCD屏幕都附带一个 I2C“背包” ,这使它们的安装更加简单,

TheRaspberryPiGuy上有详细的YouTube教程,介绍如何在Raspberry Pi上通过I2C设置和使用LCD屏幕。

使用SPI和I2C节省引脚!

Raspberry Pi上的SPI和I2C肯定不是完整的业余电子产品初学者,但也没什么可担心的。

在开始潜水之前,它会遵循我们的Raspberry Pi入门指南学习基础知识是一个好主意。

责任编辑:wv

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

    关注

    17

    文章

    1688

    浏览量

    91159
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1473

    浏览量

    122978
  • 树莓派
    +关注

    关注

    116

    文章

    1686

    浏览量

    105439
收藏 人收藏

    评论

    相关推荐

    详解I2C总线与SPI总线的区别

    I2C(Inter-Integrated Circuit)表示集成电路互连,是一种用于线路板内部芯片之间通信的总线。
    的头像 发表于 10-16 15:16 1239次阅读
    详解<b class='flag-5'>I2C</b>总线与<b class='flag-5'>SPI</b>总线的区别

    通过I2C进行TPS65987和TPS65988 SPI闪存固件更新

    电子发烧友网站提供《通过I2C进行TPS65987和TPS65988 SPI闪存固件更新.pdf》资料免费下载
    发表于 09-29 10:31 0次下载
    通过<b class='flag-5'>I2C</b>进行TPS65987和TPS65988 <b class='flag-5'>SPI</b>闪存固件更新

    何在显示器设计中使用TPS6598x I2C控制TUSB564

    电子发烧友网站提供《如何在显示器设计中使用TPS6598x I2C控制TUSB564.pdf》资料免费下载
    发表于 09-12 09:54 0次下载
    如<b class='flag-5'>何在</b>显示器设计中使用TPS6598x <b class='flag-5'>I2C</b>控制TUSB564

    I2C基本指南

    电子发烧友网站提供《I2C基本指南.pdf》资料免费下载
    发表于 09-10 09:40 0次下载
    <b class='flag-5'>I2C</b>基本指南

    DHT11用的是SPI还是I2C

    DHT11并不使用SPII2C通信协议,而是采用单总线(1-Wire)协议进行通信 。单总线协议是由美国DALLAS达尔斯公司推出的外围串行扩展总线,具有简洁的线路连接和较低的功耗特性。 在单总线
    的头像 发表于 09-04 09:11 670次阅读

    SPII2C通信协议:应用与区别

    本文深入解析了SPII2C这两种通信协议的特点、工作原理和应用场景。SPI适用于高速数据传输,常用于存储器芯片和显示器驱动等领域;I2C适用于低速控制和传感器数据传输,常用于温度传感
    的头像 发表于 04-22 16:45 1479次阅读

    逼真动画展示I2CSPI、UART的通信过程

    到目前为止,I2CSPI和UART等仍然是电子嵌入式设备中最常用的通信协议,本文,我们将剖析这三种协议,让大家清楚、直观的了解它们的功能、优点和局限性,并辅以GIF动图展示。I2C协议I2C
    的头像 发表于 04-12 08:27 873次阅读
    逼真动画展示<b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、UART的通信过程

    总结usart、uart、i2cspi区别及相关知识

    USART、UART、I2CSPI是四种不同的串行通信协议,它们各自具有独特的特点和应用领域
    的头像 发表于 04-10 09:47 1537次阅读
    总结usart、uart、<b class='flag-5'>i2c</b>、<b class='flag-5'>spi</b>区别及相关知识

    什么是I2C协议 I2C总线的控制逻辑

    在实际使用过程中,I2C比较容易出现的一个问题就是死锁 ,死锁在I2C中主要表现为:I2C死锁时表现为SCL为高,SDA一直为低。
    发表于 03-12 09:17 840次阅读
    什么是<b class='flag-5'>I2C</b>协议 <b class='flag-5'>I2C</b>总线的控制逻辑

    蓝牙串口通讯总线——I2C/SPI/UART

    嵌入式工程师在做串口通信调试工作的时候,会经常用到I2CSPI、UART这3条总线,I2CSPI、UART这三种通信总线在嵌入式领域很常见,目前主流的SOC芯片都内置了这三种总线的
    的头像 发表于 01-22 09:41 1356次阅读
    蓝牙串口通讯总线——<b class='flag-5'>I2C</b>/<b class='flag-5'>SPI</b>/UART

    XV4001BC车载用SPI/I2C输出接口的数字输出

    XV4001BC车载用SPI/I2C输出接口的数字输出,可实现角速度输出和温度传感器输出,满足汽车导航和通讯系统的要求。SPI / I2C 输出接口角速度输出(16bit)、温度传感
    发表于 01-02 16:33 0次下载

    i2c接口和spi接口区别

    I2C(Inter-Integrated Circuit)和SPI(Serial Peripheral Interface)都是用于设备间通信的串行接口标准。它们在很多方面有着相似之处,但也有一些
    的头像 发表于 12-25 15:02 3592次阅读

    SPII2C的异同及优缺点

    SPII2C的异同及优缺点  SPI(Serial Peripheral Interface)和I2C(Inter-Integrated Circuit)是两种常见的串行通信接口协议
    的头像 发表于 12-07 10:46 2866次阅读

    UART、SPII2C比较 串口通信介绍

    UART、SPII2C比较 I2C线更少,比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉
    的头像 发表于 11-09 18:06 1251次阅读
    UART、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>比较 串口通信介绍

    I2CSPI与UART:如何布局这些通用总线

    如果您要为项目构建开发板或使用通用MCU,则会发现许多用于通信其他活动组件的协议。USB和以太网之类的标准已内置在大多数控制器中,用于与计算机外围设备一起使用。尽管如此,仍使用I2CSPI
    的头像 发表于 11-08 17:33 975次阅读
    <b class='flag-5'>I2C</b>与<b class='flag-5'>SPI</b>与UART:如何布局这些通用总线