Differenze tra le versioni di "Collegare dispositivi I2C"

Da raspibo.
Jump to navigation Jump to search
Riga 36: Riga 36:
 
(per le schede rev.A usare -y 0 al posto di -y 1 in tutti i comandi da qui in poi).
 
(per le schede rev.A usare -y 0 al posto di -y 1 in tutti i comandi da qui in poi).
  
Come si vede non c'e' nessuna scheda collegata.
+
Il sistema non vede nessun integrato collegato al bus, infatti non abbiamo ancora collegato nulla.
 +
 
 +
A questo punto basta collegare gli integrati I<sup>2</sup>C 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:

Versione delle 11:18, 3 mar 2013

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: