树莓派3 android8.0,(八)树莓派基础:Raspberry Pi I2C

释放双眼,带上耳机,听听看~!

介绍

I2C(内部集成电路)是一种同步串行协议,用于在两个设备之间传输数据。

它是一个主从协议,可能有一个主设备或许多主设备和许多从设备,而SPI只有一个主设备。

它通常用于短距离通信。

I2C器件具有7位或10位唯一地址。因此,要访问这些器件,主器件应通过7位或10位唯一地址对它们进行寻址。

I2C用于许多应用,如读取RTC(实时时钟),访问外部EEPROM存储器。它还用于陀螺仪,磁力计等传感器模块。

它也被称为双线接口(TWI)协议。

Raspberry Pi I2C

Raspberry Pi拥有Broadcom处理器,该处理器具有Broadcom串行控制器(BSC),这是一种主模式,快速模式(400Kb / s)BSC控制器。BSC总线符合Philips I2C总线。

它支持7位和10位寻址。

它还具有BSC2主机,专用于HDMI接口,用户不应访问。

I2C总线/接口用于与外部设备(如RTC,MPU6050,磁力计等)仅通过2条线路进行通信。如果地址不同,我们可以使用I2C接口连接更多设备。

要在Raspberry Pi中访问I2C总线,我们应该进行一些额外的配置。Raspberry Pi有I2C引脚,如下所示:

Raspberry Pi I2C引脚

5dccd8fa9efb4021e77bf755a6a10ee6.png

Raspberry Pi I2C引脚

Raspberry Pi I2C配置

在开始将I2C设备与Raspberry连接之前,需要先完成一些先前的配置。这些配置如下:

首先,我们应该在Raspberry Pi中启用I2C。我们可以通过终端启用它,如下所示:

sudo raspi-config

0d325aa3491b56c269dc2734a640ea2f.png

选择Interfacing Configurations

44437b284b3d3d97a4ff95a671aba06c.png

在界面选项中,选择 – >I2C

5ac7752d2488678ba366e979d9224b8e.png

启用I2C配置

ccfdec52ed57dc16de52089ac024b0d9.png

56acddabc5256288fd590c76ec4978ba.png

在raspberry pi中启用i2c

当它要求重新启动时选择YES。

现在,在启动raspberry Pi之后,我们可以通过输入以下命令来检查用户模式的I2C端口。

ls /dev/*i2c*

那么Pi会回复i2c端口的名字:

19f324e94f598d78ad2fd22829d13616.png

i2c端口列表

以上响应表示I2C接口的用户模式。较旧版本的Raspberry pi可能会响应i2c-0用户模式端口。

在Raspberry Pi上扫描或测试I2C设备

现在,我们可以通过安装i2c工具来测试/扫描连接到Raspberry Pi板的任何I2C设备。我们可以使用apt包管理器获取i2c工具。在Raspberry Pi终端中使用以下命令。

sudo apt-get install -y i2c-tools

现在将任何基于I2C的设备连接到用户模式端口,并使用以下命令扫描该端口,

sudo i2cdetect -y 1

然后它将响应设备地址。

例如

在这里,我们将基于I2C的MPU6050设备连接到Raspberry Pi并尝试检测下图所示的设备,

309691791bac56da9847251cf8fd4be2.png

在Raspberry Pi上测试i2c

如果连接,i2cdetect命令将扫描I2C端口以获取设备的地址。

如果没有设备连接到I2C端口,则它将返回带( – – )的字段。

我们还可以使用以下命令获取或设置I2C设备的数据

i2cget,i2cset等

例如

sudo i2cget -y I2C_user_mode_Port address_of_device Register_addresssudo i2cget 1 0x68 0x01

sudo i2cget 1 0x68 0x01

它将响应存在于地址0x01的寄存器中的数据。

使用SMBus访问I2C设备

我们可以使用SMBus访问Raspberry Pi上的I2C总线。SMBus是I2C总线/接口的子集。SMBus为基于I2C的器件提供支持。在编写程序以访问基于I2C的设备时,请使用SMBus命令。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值