Прошивка 3.18.x розбиває I²C, SPI, аудіо, lirc, 1-провід (наприклад, / dev / i2c-1, такого файлу чи каталогу немає)


19

Я використовую I²C для управління модулем Bright Pi .

Я дотримувався вказівок " Налаштування GPIO - Adafruit " та " Налаштування I²C - Adafruit " для настройки I²C . Я зробив це кілька місяців тому, і все пішло нормально.

Ось як я підключив яскравий Pi на моєму Raspberry Pi (модель B):

Схеми яскраві Пі

З сьогоднішнього дня я помітив, що 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 / module' виглядає так:

#/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 updateі apt-get upgradeне допомогло.

Команда ' lsmod | grep i2c 'показує це:

i2c_bcm2708          6004  0   
i2c_dev              6709  0

Дивно, адже раніше вона працювала. Я можу подумати, що він "зламаний", оскільки я два дні тому робив оновлення вбудованого програмного забезпечення, оскільки мій Raspberry Pi показував дивні помилки ядра.

Як я можу виправити проблему з I²C?

Відповіді:


35

Найновіша прошивка реалізує підтримку дерева пристроїв . Це зламає речі, такі як I²C, SPI та 1-провідний автобус.

Для отримання більш детальної інформації див. ²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версії 20160108, січня 2016 року або в пізніших версіях

Interfacing Options> I2C.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.