Firmware 3.18.x memecah I²C, SPI, audio, lirc, 1-wire (mis. / Dev / i2c-1, Tidak ada file atau direktori seperti itu)


19

Saya menggunakan I²C untuk mengontrol modul Bright Pi .

Saya mengikuti instruksi dari ' Mengkonfigurasi GPIO - Adafruit ' dan ' Mengonfigurasi I²C - Adafruit ' untuk mengatur I²C. Saya telah melakukan ini beberapa bulan yang lalu dan semuanya berjalan dengan baik.

Ini adalah bagaimana saya menghubungkan Pi Bright pada Raspberry Pi saya (Model B):

Sirkuit Bright Pi

Sejak hari ini saya perhatikan bahwa I²C tidak berfungsi lagi seperti dulu. Menggunakan perintah seperti ' sudo i2cdetect -y 1 ' dan ' sudo i2cset -y 1 0x70 0x00 0xff ' akan memberikan kesalahan:

Tidak dapat membuka file '/ dev / i2c-1' atau '/ dev / i2c / 1': Tidak ada file atau direktori seperti itu

Menggunakan perintah ' sudo i2cdetect ' akan memberikan kesalahan

Tidak ada i2c-bus yang ditentukan!

yang berarti i2c-dev sedang berjalan.

File '/ etc / modules' terlihat seperti ini:

#/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

File '/etc/modprobe.d/raspi-blacklist.conf' terlihat seperti ini:

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

Saya sudah mencoba menginstal ulang semua modul yang diperlukan, tetapi itu juga tidak membantu. Juga apt-get updatedan apt-get upgradetidak membantu.

Perintah ' lsmod | grep i2c 'menunjukkan ini:

i2c_bcm2708          6004  0   
i2c_dev              6709  0

Ini aneh, karena dulu bekerja sebelumnya. Saya mungkin berpikir itu "rusak" karena saya melakukan pembaruan firmware dua hari yang lalu, karena Raspberry Pi saya menunjukkan kesalahan kernel yang aneh.

Bagaimana saya bisa memperbaiki masalah dengan I²C?

Jawaban:


35

Firmware terbaru mengimplementasikan dukungan hierarki perangkat . Itu akan merusak barang-barang seperti I²C, SPI, dan bus 1-kawat.

Untuk detail yang lebih lengkap, lihat I²C, SPI, I2S, LIRC, PPS, berhenti bekerja? Baca ini. .

Ringkasan

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

Catatan: Disarankan Anda hanya menggunakan i2c_vc (dan i2c_vc_baudrate) jika Anda benar-benar perlu - misalnya, jika Anda sedang memprogram EEPROM HAT. Mengaktifkan i2c_vc dapat menghentikan Pi Camera yang terdeteksi.


Anda Tuan, adalah pahlawan saya! Ini memperbaiki I2C saya.
LittleOne

7

Anda dapat menggunakan sudo raspi-configdan dalam Opsi Lanjutan menonaktifkan Device Tree. Mungkin lebih cepat daripada mengubah konfigurasi secara manual.


1

Atau Anda bisa menggunakan sudo raspi-configuntuk mengaktifkan I2C di

Advanced Options> I2C.

untuk tata letak dari raspi-configversi 20160108, Januari 2016, atau dalam versi yang lebih baru

Interfacing Options> I2C.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.