Jawaban:
Ada banyak informasi tentang GPi RPi di sini: http://elinux.org/Rpi_Low-level_peripherals
Menurutnya, Anda dapat memprogram pin GPIO apa pun untuk I²C, tetapi:
Pin 3 (SDA0) dan Pin 5 (SCL0) ditetapkan untuk digunakan sebagai antarmuka I²C. Jadi ada 1,8 kilohm yang menarik resistor di papan untuk pin ini.
Halaman wiki itu juga memiliki beberapa contoh kode GPIO tingkat rendah untuk berbagai bahasa yang harus Anda mulai. Jika Anda memerlukan penyegaran tentang apa sebenarnya I²C, inilah yang juga memperhitungkan RPi.
Untuk pengendalian I²C tertentu, pustaka python ini mungkin bermanfaat, dibahas dalam posting blog ini , yang mencakup contoh kode.
Banyak diskusi terjadi tentang ini. Inilah yang ditunjukkan oleh bacaan dan kekacauan saya kepada saya:
/etc/modprobe.d/raspi-blacklist.conf
dan mengomentari entri untuk i2c-bcm2708
; lalu edit /etc/modules
dan tambahkan i2c-dev
; lalu reboot. Anda sekarang harus memiliki /dev/i2c-0
file khusus, yang sangat mudah digunakan.
Inilah beberapa contoh yang telah saya lakukan
Perangkat keras:
Seperti disebutkan oleh Tapio, perangkat keras didokumentasikan dengan baik di http://elinux.org/Rpi_Low-level_peripherals
Perangkat lunak:
Ada header i2c-dev di ruang pengguna Linux ( #include <linux/i2c-dev.h>
). Selain itu, Anda memerlukan karakter yang dapat dibaca. Ini dapat dilakukan dengan memuat modul yang benar. i2c_bcm2708
untuk pengemudi tingkat rendah dan i2c-dev
untuk menghasilkan tipuan karakter untuk bus. Menerapkan ...
sudo modprobe -r i2c_bcm2708
sudo modprobe i2c_bcm2708 baudrate=<your preferred baudrate>
untuk memuat mereka dengan cepat. Menerapkan ...
sudo sh -c 'echo "i2c-dev" >> /etc/modules'
sudo sh -c 'echo "options i2c_bcm2708 baudrate=<your preferred baudrate>\n" > /etc/modprobe.d/custom.conf
dan unblacklist i2c_bcm2708
di /etc/modprobe.d/raspi-blacklist.conf
untuk membuat /dev/i2c-0
dan /dev/i2c-1
muncul secara permanen.
Mulai sekarang Anda dapat mengikuti petunjuk tentang cara menggunakan I²C del maestro sendiri.
Saya lebih suka metode ini daripada yang lain, karena ini platformagnostik. Anda dapat menggunakan linux/i2c-dev.h
dengan perangkat lain juga, selama ada driver I²C tingkat rendah.
Salam