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

    文章

    1866

    浏览量

    99816
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1547

    浏览量

    130488
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109706
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SPII2CI2S、UART:通信协议解释

            在嵌入式开发中,最常用的几种通信接口无非就是SPII2CI2S、UART。名字看起来差不多,但应用场景和特性却大不相同。为什么都叫串行通信,结构却不一样?为什么有的能传音频,有的
    的头像 发表于 11-18 10:53 204次阅读

    SPII2CI2S、UART:通信协议对比表

    在嵌入式开发中,最常用的几种通信接口无非就是SPII2CI2S、UART。名字看起来差不多,但应用场景和特性却大不相同。很多初学者容易混淆:为什么都叫串行通信,结构却不一样?为什么有的能传音频
    的头像 发表于 11-17 10:53 1168次阅读
    <b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>、<b class='flag-5'>I2</b>S、UART:通信协议对比表

    AT32F403A 移植RT-thread时SPI DMA和I2C DMA 冲突怎么解决?

    开发板:AT-START-F403A V1.1 我使用官方标准版RT-Thread BSP里的工程时,通过ENV工具启用SPII2C ,但是启用
    发表于 10-10 06:14

    深入剖析I2C协议

    I2C是由Philips开发的简单的双向两线总线,在深入浅出理解SPI协议中,我们区分了单工,半双工,全双工协议数据流向的区别,根据特征,I2C协议属于半双工协议(即同一时刻,数据单向流动)。此外
    的头像 发表于 08-21 15:10 3276次阅读
    深入剖析<b class='flag-5'>I2C</b>协议

    何在树莓派上安装Ubuntu MATE ?

    ,而非GNOME。在本文中,我将介绍如何轻松地在树莓派上安装它。UbuntuMATE官方支持树莓派,因此每发布一个新版本,都会为树莓派发布一个镜像。该镜像可刷入S
    的头像 发表于 08-12 18:56 2947次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>树莓</b><b class='flag-5'>派上</b>安装Ubuntu MATE ?

    何在树莓派上安装并运行 Arduino 集成开发环境!

    ,我们将介绍如何在树莓派上安装并运行ArduinoIDE。所需物品要在树莓派上运行ArduinoIDE,你需要以下组件:配备适当电源的
    的头像 发表于 07-01 17:41 4041次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>树莓</b><b class='flag-5'>派上</b>安装并运行 Arduino 集成开发环境!

    人脸识别指南:如何在树莓派上安装和设置 Dlib

    学习如何在树莓派上安装Dlib并配置人脸识别功能,为您的AI项目奠定基础。在树莓派上安装Dlib的详细步骤要为
    的头像 发表于 03-24 17:31 1251次阅读
    人脸识别指南:如<b class='flag-5'>何在</b><b class='flag-5'>树莓</b><b class='flag-5'>派上</b>安装和设置 Dlib

    I2C总线复用

    帝晶智慧屏I2C总线复用
    的头像 发表于 03-11 17:20 1853次阅读

    【干货】带你了解各类串口:I2CSPI、RS232、RS485、USB等

    SPI、RS232、RS422、RS485及USB。1I2C接口I2C接口是一种主要应用于集成电路芯片间的通信的接口。最早由Philips公司开发,是一种简单的
    的头像 发表于 02-20 19:31 2341次阅读
    【干货】带你了解各类串口:<b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、RS232、RS485、USB等

    I2C总线通信原理 如何设计I2C总线电路

    I2C总线通信原理 I2C(Inter-Integrated Circuit)总线是一种用于集成电路之间进行通信的串行通信协议。它最早由飞利浦公司(现被恩智浦电子收购)于1982年推出,是一种简单
    的头像 发表于 01-31 15:01 1879次阅读

    I2C总线与Arduino的接口示例

    在现代电子设计中,I2C总线因其简单性和灵活性而广受欢迎。它允许多个设备共享同一通信线路,从而节省空间和成本。Arduino,作为一个多功能的微控制器平台,自然也支持I2C通信。 I2C总线
    的头像 发表于 01-17 15:34 2360次阅读

    I2C总线的工作模式介绍

    在现代电子系统中,I2C总线作为一种多主机、多从机的串行通信协议,扮演着至关重要的角色。它允许多个设备共享同一总线,进行数据传输,从而简化了系统设计并降低了成本。 I2C总线的基本特性 I2C总线由
    的头像 发表于 01-17 15:32 1635次阅读

    I2C总线故障排除技巧

    I2C总线是一种广泛使用的串行通信协议,它允许多个设备在两条线上(数据线SDA和时钟线SCL)进行通信。由于其简单性和灵活性,I2C总线在嵌入式系统中非常流行。然而,当I2C总线出现问题时,可能会
    的头像 发表于 01-17 15:20 3864次阅读

    I2C总线应用实例分析

    在现代电子系统中,I2C总线因其简单、灵活和高效的特点而被广泛应用于各种设备之间的通信。 I2C总线概述 I2C总线由Philips(现为NXP)在1980年代初期开发,最初用于音频和视频设备
    的头像 发表于 01-17 15:09 1242次阅读

    I2C总线与SPI总线的比较

    在现代电子系统中,微控制器与各种外设之间的通信是必不可少的。I2CSPI是两种流行的串行通信协议,它们各自具有独特的特点和应用场景。 I2C总线 I2C是一种多主机、多从机的同步通信
    的头像 发表于 01-17 15:08 1714次阅读