在Raspberry Pi上启用SPI接口

11

Raspberry Pi具有SPI(串行外围接口)总线,可以在引脚19、21、23、24上启用&26.它是同步串行数据链路标准,用于设备之间的短距离单主机通信。就Pi而言,这通常与某些传感器和附加板有关。

第1步–启用S​​PI接口

默认情况下,默认的Raspbian映像禁用SPI,因此在使用它之前必须先启用接口。可以使用以下三种方法之一来完成此操作。一世’将介绍所有方法,但第一种方法可能更容易,更快捷。

方法1– Using “Raspi-config” 上 Command Line

在命令行或“终端”窗口中,通过运行以下命令开始:

sudo raspi-config

这将启动raspi-config实用程序。选择“Interfacing Options” :

Raspi-Config-接口

突出显示“SPI”选择并激活“<Select>”.Raspi-Config-接口-SPI

选择 and activate “<Yes>” :
Raspi-Config-接口-SPI 1

突出显示并激活“<Ok>” :

Raspi-Config-接口-SPI 2当提示重新启动时,突出显示并激活“<Yes>” :

Raspi-Config-重新启动提示

Raspberry Pi将重新启动并启用界面。

方法2– Using “Raspberry Pi配置”

如果您的Pi启动到桌面,则可以打开“终端”窗口并使用方法2或使用图形工具“Raspberry Pi配置”。在下面找到 菜单> Preferences > Raspberry Pi配置

Raspberry Pi配置 launch from menu

然后,您只需选择“Interfaces” tab and set SPI to “Enabled” :

Raspberry Pi配置 - 介面 Tab -  SPI

点击“OK”按钮。如果提示重新启动,请选择“Yes”这样更改才能生效。

Raspberry Pi配置 - Reboot Prompt

Raspberry Pi将重新启动,并启用SPI接口。

方法3–通过手动编辑文件来启用

此过程假设您使用的是最新的Raspbian版本, 官方下载页面。您可以使用来更新当前图像:

sudo apt-get update
sudo apt-get upgrade

为了在Pi上启用硬件SPI,我们需要对系统文件进行修改:

sudo nano /boot/config.txt

在底部添加以下行:

dtparam=spi=on

使用CTRL-X,然后按Y,然后按RETURN保存文件并退出。使用以下命令重新启动:

sudo reboot

第2步– Checking If SPI Is 已启用 (Optional)

要检查系统是否已加载SPI模块,请运行以下命令:

lsmod

您应该看到“ spi_bcm2708”或“spi_bcm2835”在输出中列出。您可以使用以下命令来过滤列表,并使发现spi条目更容易:

lsmod | grep spi_

现在启用了SPI。

第三步–安装Python SPI 包装器

为了从Python中的SPI总线读取数据,我们需要一些其他库。这些可能已经安装,但是您可以使用检查:

sudo apt-get install -y  蟒蛇 -dev  蟒蛇 3-dev

和:

sudo apt-get install -y  蟒蛇 -spidev  蟒蛇 3-spidev

然后,我们可以下载“ py-spidev”并进行编译以供使用:

cd ~
git clone //github.com/Gadgetoid/py-spidev.git
cd py-spidev
sudo  蟒蛇  setup.py安装
sudo  蟒蛇 3 setup.py install
cd ~

现在,您应该可以使用其自己的库(例如PiFace)或其他SPI设备(例如 MCP3008 ADC )。


可以找到具有此接口的完整教程列表。 点击这里.

最后,有关SPI的更多技术信息,请参见 维基百科页面 如果你感兴趣。

分享。

11条留言

  1. 嗨;我的spi以前工作过,最近更新了固件,现在出现错误:spi_bcm2708未找到。我已按照您的步骤进行spidev。仍然不是’t在lsmod上列出。有spi_bcm2835和i2c_bcm2708。对下一步有什么建议吗?

  2. 乌里·约根斯(UliJörgens)

    I’我所有的raspis都遇到相同的问题
    我可以’t make it work.
    通过raspi-config激活失败,因为它可以’t load the driver.
    gpio load spi失败,并显示相同的消息。
    印尼人有什么变化吗?

    • 设置温度记录仪MkII时,我使用Raspbian的2015-09-24版本进行了测试。始终值得下载最新的图像并写入新的SD卡。

  3. 伦佐·戈麦斯(Renzzo Gomez)

    只有最后一种方法对我有用。非常感谢。我花了一整天的时间来弄清楚如何解决此错误。谢谢

  4. 马修·纳蒙(Matthew Najmon)

    在“ 蟒蛇 SPI 包装器”部分中:
    “须藤apt-get install 蟒蛇 3-spidev 蟒蛇 -spidev”

    当我尝试在pi上运行它时(立即在运行apt-get update和apt-get upgrade之后运行),出现错误:

    以下软件包具有未满足的依赖性:
    蟒蛇 3-spidev:取决于:python3(>= 3.4〜),但要安装3.2.3-6
    E:无法纠正问题,您拿着破损的包裹

    这是什么意思?最好的告诉我,它似乎取决于python3的版本,’s newer than what’在该存储库上。这是我搞砸了吗?软件包对存储库的依赖关系是否正确?我该如何解决?

    • 目前Raspbian上的默认Python 3是3.5.3。我会用Raspbian的新副本重新写入SD卡,因为它比尝试找出为什么会更快’ve got 3.2.3.

  5. 我当然可能一无所知,但是详细的说明很好,但是对我来说,我认为它们缺少一项:

    –第一次学习本教程时,“sudo 蟒蛇 setup.py安装”, I get a C error:
    第20:20行缺少#include
    –我碰巧有唐纳德·诺里斯(Donald Norris)的书(他在那本书中抄写了您的出色教程并给了您归因)。他有一条额外的安装线“须藤apt-get install 蟒蛇 -dev”
    –我在这个网页上错过了吗?无论如何,在安装python-dev之后,“sudo 蟒蛇 setup.py安装”工作完美,没有错误。

    谢谢/欢呼

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.