Collegare dispositivi I2C
I2C e' un bus composto da due fili (oltre il filo di massa): il filo dati e il filo clock. Possiamo dire che I2C e' una rete per circuiti integrati.
Il nostro Raspberry PI ha due bus I2C, uno e' disponibile sul pettine di contatti per i nostri giochi.
Fra la revisione A e la revisione B del Raspberry PI hanno invertito i bus:
- Nella revisione A: il bus 0 e' per le sperimentazioni.
- Nella revisione B: il bus 1 e' per le sperimentazioni (il bus 0 sarebbe disponibile sul bus P5, occorre saldare un pettine per i contatti).
Il mio consiglio per fare esperimenti sul bus (o sui bus) I2C e' di installare il pacchetto con gli strumenti (tool) per I2C.
sudo apt-get install i2c-tools
Occorre poi caricare i moduli per usare I2C a livello utente:
$ sudo bash # modprobe i2c_dev # modprobe i2c_bcm2708
Se tutto va bene si puo' usare il comando i2cdetect per controllare le unita' collegate:
# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
(per le schede rev.A usare -y 0 al posto di -y 1 in tutti i comandi da qui in poi).
Il sistema non vede nessun integrato collegato al bus, infatti non abbiamo ancora collegato nulla.
A questo punto basta collegare gli integrati I2C in modo che:
- Il pin di massa dell'integrato sia attaccato alla massa del Raspberry PI (Pin. 6)
- Il pin di alimentazione sia collegato a +3.3v (Pin. 1 del Raspberry PI o in qualche modo sia alimentato a 3.3v)
- Il pin SDA (dati) dell'integrato sia collegato al pin 3
- Il pin SCK (clock) dell'integrato sia collegato al pin 5.
E' comodo collegare per esempio le schede di JeeLabs in questo modo: