我想更改i2c总线频率,以便允许电缆稍长一些。
我正在使用python-smbus包,它确实工作得很好,但是,我无法找到如何设置总线频率。
我查看了整个docs,但找不到任何与设置总线参数有关的内容。
这是可以在python中完成的事情吗?或者我需要更低级的东西吗?
我使用的是Raspberry PI,它是一种ARM架构。
发布于 2012-09-26 00:22:28
我现在已经花了大量的时间来研究所有的选项。事实证明,正如另一篇文章中指定的那样,确实存在低级寄存器,然而,Raspberry-Pi的驱动程序在每次使用时都会重置它们的值,使得对它们的任何修改都几乎无用。解决方案是要么编写一个自定义的i2c驱动程序,要么简单地等待更新版本。
在byval forum中可以找到一些较低级别的信息。
发布于 2017-02-22 16:04:43
在带有最新Jessie图像的Raspberry Pi上,您可以使用以下命令检查当前的I2C频率:
sudo cat /sys/module/i2c_bcm2708/parameters/baudrate。
要更改频率,可以添加/更改此参数:
dtparam=i2c_baudrate=50000
(将50000替换为所需频率)中:
/boot/config.txt
并重新启动以更改频率。
发布于 2012-08-25 20:26:42
你必须在较低的层次上做一些事情。通常,这些东西是由内核中的board file设置的。除了分配资源之外,我没有看到i2c做了什么特别的事情,所以它可能只是使用默认的时钟除数。如果您查看datasheet的第28页,您将看到默认值为0x5dc。您需要为该寄存器设置一个不同的值(可能更大),以应对较长的电缆。
https://stackoverflow.com/questions/11986178
复制相似问题