也许大家会问,修改I2C总线速度的目的是什么?其实,更改树莓派上的默认I2C总线速度可以帮助我们改进树莓派在某些项目中的整体表现。比如,当我们使用I2C接口控制显示模块的时候,I2C总线速度就显得尤其重要了。在Raspbian的新版本中,更改I2C总线速度必须使用到 Device Tree 参数。
总线速度也被称为“波特率”,实际上两者并不相同。
下面我们开始讲解修改树莓派I2C总线速度的方法,这里以树莓派3B为例:
步骤1 -启用I2C接口
我们在更改接口波特率之前,必须要先启用I2C接口。启用I2C接口,可以在命令行窗口使用“raspi-config”命令或者直接通过Raspbian桌面的“Raspberry Pi Configuration”来实现。
第一种启用树莓派I2C接口的方法:
sudo raspi-config
命令将启动raspi-config实用程序。选择“Interfacing Options”,如下图所示:
将光标移动到“P5 I2C”,选中,然后“select”。
选择“YES”
下面选择“OK”
接着重启
树莓派将会重新启动,重启完成后,I2C接口就启用了。
第二种启用树莓派I2C接口的方法:
直接使用树莓派图形配置工具 “Raspberry Pi Configuration”,在Raspbian的桌面环境下,导航“Menu > Preferences > Raspberry Pi Configuration”。
进入Raspbian的“Raspberry Pi Configuration”。
然后就是重启系统,完成启用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页)中提到,Broadcom Serial Controller(BSC)是支持“fast-mode(400Kb/s)”的控制器。因此,建议大家波特率的值使用100000或400000,默认值设置为100000。