python smbus/i2c频率

2024-05-14 22:18:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想改变i2c总线频率,以允许稍长的电缆。在

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

我已经浏览了docs,但是没有找到任何与设置总线参数相关的东西。在

这是python可以做的吗?还是我需要更低级的东西?在

我使用的是Raspberry PI,这是一个ARM架构。在


Tags: docs参数架构pii2craspberryarm频率
3条回答

你必须在较低的层次上做些事情。通常这些东西是由内核中的board file设置的。除了分配资源外,我没有看到i2c有什么特别的用途,所以它很可能只是使用默认的时钟除数。如果您查看datasheet的第28页,您将看到默认值是0x5dc。你需要设置一个不同的值(可能更大)来处理较长的电缆。在

我现在花了很多时间研究所有的选择。事实证明,确实存在另一篇文章中指定的低电平寄存器,然而,Raspberry Pi的驱动程序在每次使用时都会重置它们的值,因此对它们的任何修改都几乎毫无用处。解决方案是要么编写一个自定义的i2c驱动程序,要么只是等待更新版本。在

一些低级信息可以在byval forum中找到。在

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

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

dtparam=i2c_baudrate=50000

(用所需频率替换50000):

/boot/config.txt

重启以改变频率。在

相关问题 更多 >

    热门问题