【问题标题】:python smbus/i2c frequencypython smbus/i2c 频率
【发布时间】:2012-08-16 11:30:45
【问题描述】:

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

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

我查看了docs,但找不到任何与设置总线参数相关的东西。

这是否可以在 python 中完成,或者我需要一些更低级别的东西?

我使用的是 ARM 架构的 Raspberry PI。

【问题讨论】:

    标签: python i2c raspberry-pi


    【解决方案1】:

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

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

    dtparam=i2c_baudrate=50000

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

    /boot/config.txt

    然后重新启动以更改频率。

    【讨论】:

    • Jessie 在 RPi3 上,没有 /sys/module/i2c_bcm2708/parameters/baudrate,只有 /sys/module/i2c_bcm2835/parameters/debug
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-27
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多