固件3.18.x破坏了I²C,SPI,音频,lirc,1-wire(例如/ dev / i2c-1,没有此类文件或目录)


19

我正在使用I²C控制Bright Pi模块。

我按照“ 配置GPIO-Adafruit ”和“ 配置I²C-Adafruit ”中的说明进行操作,以设置I²C。我几个月前已经做到了,一切都很好。

这是我在树莓派(B型)上连接Bright Pi的方式:

电路明亮派

从今天起,我注意到I²C不再像以前那样工作了。使用类似' sudo i2cdetect -y 1 '和' sudo i2cset -y 1 0x70 0x00 0xff '的命令将产生错误:

无法打开文件“ / dev / i2c-1”或“ / dev / i2c / 1”:没有此类文件或目录

使用命令“ sudo i2cdetect ”将给出错误

未指定i2c总线!

这意味着i2c-dev正在运行。

文件“ / etc / modules”如下所示:

#/etc/modules: kernel modules to load at boot time. 
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
i2c-dev
i2c-bcm2708

文件“ /etc/modprobe.d/raspi-blacklist.conf”如下所示:

blacklist spi and i2c by default (many users don't need them)

#blacklist spi-bcm2708
#blacklist i2c-bcm2708
blacklist snd-soc-pcm512x
blacklist snd-soc-wm8804

我试过重新安装所有必需的模块,但这也无济于事。也apt-get updateapt-get upgrade没有帮助。

命令' lsmod | grep i2c '显示如下:

i2c_bcm2708          6004  0   
i2c_dev              6709  0

很奇怪,因为它以前曾经工作过。由于两天前我进行了固件更新,我可能认为它“损坏”了,因为我的Raspberry Pi显示了奇怪的内核错误。

如何解决I²C的问题?

Answers:


35

最新的固件实现了设备树支持。这样会损坏I²C,SPI和1线总线。

有关更详细的信息,请参见I²C,SPI,I2S,LIRC,PPS,是否停止工作?读这个。

摘要

Add one or more of the following to your /boot/config.txt and reboot.

I2C
No longer add: dtparam=i2c1=on (or dtparam=i2c0=on on old models)
Instead add: dtparam=i2c_arm=on (as this is correctly mapped to 0 or 1 for each model)
A very few users might need: dtparam=i2c_vc=on (for the other i2c interface - see note below)

SPI
Add dtparam=spi=on

I2S
Add dtparam=i2s=on

lirc-rpi
Add dtoverlay=lirc-rpi
Add module parameters to the end of the dtoverlay line,
e.g. dtoverlay=lirc-rpi,gpio_in_pin=16,gpio_in_pull=high

w1-gpio
If you require the external pullup
dtoverlay=w1-gpio-pullup,gpiopin=x,pullup=y
otherwise
dtoverlay=w1-gpio-pullup,gpiopin=x
(where x and y are gpios).

Audio card
Add one of the following
dtoverlay=hifiberry-dac
dtoverlay=hifiberry-dacplus
dtoverlay=hifiberry-digi
dtoverlay=iqaudio-dac
dtoverlay=iqaudio-dacplus

heartbeat LED
dtparam=act_led_trigger=heartbeat

注意:建议仅在确实需要时才使用i2c_vc(和i2c_vc_baudrate),例如,如果您正在编程HAT EEPROM。启用i2c_vc可以停止检测到Pi摄像机。


先生,您是我的英雄!这修复了我的I2C。
LittleOne

7

您可以使用sudo raspi-config并在“高级选项”中禁用“设备树”。可能比手动更改配置更快。


1

或者您也可以使用sudo raspi-config启用I2C

Advanced Options> I2C

适用raspi-config于2016年1月的20160108版或更高版本中的布局

Interfacing Options> I2C

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.