1

我想更改 i2c 总线频率以允许使用稍长的电缆。

我正在使用 python-smbus 包,它工作得很好,但是,我无法找到如何设置总线频率。

我浏览了文档,但找不到任何与设置总线参数相关的东西。

这是可以在 python 中完成的任何事情,还是我需要更低级别的东西?

我正在使用 Raspberry PI,它是一种 ARM 架构。

4

3 回答 3

2

在带有最新 Jessie 映像的 Raspberry Pi 上,您可以使用它来检查当前的 I2C 频率:
sudo cat /sys/module/i2c_bcm2708/parameters/baudrate.

要更改频率,您可以添加/更改此参数:

dtparam=i2c_baudrate=50000

(将 50000 替换为所需的频率)在:

/boot/config.txt

并重新启动以更改频率。

于 2017-02-22T08:04:42.867 回答
0

你必须在较低的层次上做一些事情。通常这些东西是由内核中的板文件设置的。除了分配资源之外,我没有看到 i2c 有什么特别的事情,所以它可能只是使用默认的时钟除数。如果您查看数据表的第 28 页,您会看到默认值为 0x5dc。您需要使用不同的值(可能更大)设置该寄存器以应对更长的电缆。

于 2012-08-25T12:26:41.677 回答
0

我现在已经花费了大量时间研究所有选项。事实证明,确实存在其他帖子中指定的低级寄存器,但是,Raspberry-Pi 的驱动程序在每次使用时都会重置它们的值,对它们进行任何修改都几乎没有用。解决方案是编写自定义 i2c 驱动程序或只是等待更新版本。

一些较低级别的信息可以在byval 论坛中找到。

于 2012-09-25T16:22:27.573 回答