如何修改树莓派I2C总线速度

  • 内容
  • 评论
  • 相关

也许大家会问,修改I2C总线速度的目的是什么?其实,更改树莓派上的默认I2C总线速度可以帮助我们改进树莓派在某些项目中的整体表现。比如,当我们使用I2C接口控制显示模块的时候,I2C总线速度就显得尤其重要了。在Raspbian的新版本中,更改I2C总线速度必须使用到 Device Tree 参数。

LCD 1602液晶屏模块通过I2C总线模块连接到树莓派3b

总线速度也被称为“波特率”,实际上两者并不相同。

下面我们开始讲解修改树莓派I2C总线速度的方法,这里以树莓派3B为例:

步骤1 -启用I2C接口

我们在更改接口波特率之前,必须要先启用I2C接口。启用I2C接口,可以在命令行窗口使用“raspi-config”命令或者直接通过Raspbian桌面的“Raspberry Pi Configuration”来实现。

第一种启用树莓派I2C接口的方法:

sudo raspi-config

命令将启动raspi-config实用程序。选择“Interfacing Options”,如下图所示:

启用树莓派3B I2C总线接口的方法

将光标移动到“P5 I2C”,选中,然后“select”。

启用树莓派3B I2C总线接口的方法

选择“YES”

启用树莓派3B I2C总线接口的方法

下面选择“OK”

启用树莓派3B I2C总线接口的方法

接着重启

启用树莓派3B I2C总线接口的方法

树莓派将会重新启动,重启完成后,I2C接口就启用了。

第二种启用树莓派I2C接口的方法:

直接使用树莓派图形配置工具 “Raspberry Pi Configuration”,在Raspbian的桌面环境下,导航“Menu > Preferences > Raspberry Pi Configuration”。

启用树莓派3B I2C总线接口的方法

进入Raspbian的“Raspberry Pi Configuration”。

启用树莓派3B I2C总线接口的方法

然后就是重启系统,完成启用I2C接口。

启用树莓派3B I2C总线接口的方法

安装I2C工具

为了完成调试和允许在Python中使用I2C接口,我们需要安装 “python-smbus” 和 “i2c-tools”。

sudo apt-get update
sudo apt-get install -y python-smbus i2c-tools

完成后关机,就可以连接I2C外围模块了。关机命令使用“sudo halt”。

步骤2 -编辑Config.txt文件设置I2C总线速度

sudo nano /boot/config.txt

查找包含“dtparam=i2c_arm=on”的行,添加“,i2c_arm_baudrate=400000”,其中400000是新设置的速度(400kbit /s),注意i2c前面的逗号。完整代码如下:

dtparam=i2c_arm=on,i2c_arm_baudrate=400000

这样可以启用I2C总线的同时,也完成了新波特率的设置。编辑完成后,使用CTRL-X,然后选择Y,保存文件并退出。

步骤3 -重新启动

最后,重新启动树莓派3B,使新的设置生效:

sudo reboot

I2C波特率值

BCM2835 ARM外围设备规范文档 28页

BCM2835 ARM外围设备规范(第28页)中提到,Broadcom Serial Controller(BSC)是支持“fast-mode(400Kb/s)”的控制器。因此,建议大家波特率的值使用100000或400000,默认值设置为100000。