Risposte:
Ci sono molte informazioni sul GPIO di RPi qui: http://elinux.org/Rpi_Low-level_peripherals
Secondo esso, è possibile programmare qualsiasi pin GPIO per I²C, ma:
Il pin 3 (SDA0) e il pin 5 (SCL0) sono preimpostati per essere utilizzati come interfaccia I²C. Quindi ci sono 1,8 kilohm di resistori a strappo sulla scheda per questi pin.
Quella pagina wiki contiene anche alcuni esempi di codice GPIO di basso livello per varie lingue che dovrebbero iniziare. Se hai bisogno di un aggiornamento su cosa sia effettivamente I²C, eccone uno che tiene conto anche dell'RPI.
Per il controllo I²C specifico, questa libreria python potrebbe essere utile, è discussa in questo post del blog , che include un esempio di codice.
Molte discussioni in corso su questo. Ecco cosa mi mostra la mia lettura e il mio disordine:
/etc/modprobe.d/raspi-blacklist.conf
e commenti la voce per i2c-bcm2708
; quindi modifica /etc/modules
e aggiungi i2c-dev
; quindi riavviare. Ora dovresti avere un /dev/i2c-0
file speciale, che è molto facile da usare.
Ecco alcuni esempi che ho fatto
Hardware:
Come menzionato da Tapio, l'hardware è ben documentato su http://elinux.org/Rpi_Low-level_peripherals
Software:
Esiste un'intestazione i2c-dev nello spazio utente di Linux ( #include <linux/i2c-dev.h>
). Inoltre hai bisogno di un personaggio da cui decifrare. Questo può essere fatto caricando i moduli corretti. i2c_bcm2708
per il guidatore di basso livello e i2c-dev
per generare i caratteri decimali per gli autobus. Applicare ...
sudo modprobe -r i2c_bcm2708
sudo modprobe i2c_bcm2708 baudrate=<your preferred baudrate>
per caricarli al volo. Applicare ...
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
e i2c_bcm2708
nella lista nera /etc/modprobe.d/raspi-blacklist.conf
per creare /dev/i2c-0
e /dev/i2c-1
mostrare in modo permanente.
Da ora in poi puoi seguire i suggerimenti su come usare I²C del maestro stesso.
Preferisco questo metodo rispetto ad altri, perché è platformagnostico. Puoi utilizzarlo anche linux/i2c-dev.h
con altri dispositivi, purché esista un driver I²C di basso livello.
Saluti