In questo articolo, cercherò di chiarire il concetto di protocollo I²C e 1-Wire, in quanto potrebbe tornarci utile in futuro.

Innanzitutto che cos’è un protocollo? Il vocabolario definisce protocollo una serie di standard che regolano la successione e lo scambio di informazioni fra due dispositivi.

Bello ma cosa significa? Semplicemente, sono una serie di istruzioni che permettono a due dispositivi informatici di comunicare tra loro.

Raspberry, in particolare ha la possibilità di comunicare con sensori e attuatori (o arduino o altri raspberry) mediante i protocolli I²C e 1-Wire.

  • Protocollo I²C

Il protocollo I²C è un sistema di comunicazione seriale e fisicamente consiste in quattro cavi: Alimentazione 5V, massa, SCL clock di sistema e SDA, una linea dati con 7 bit di indirizzamento. Il bus ha due modi di funzionamento. Modo master (il capo) e modo slave (il secondario).

Su Raspberry pi3 i pin GPIO dedicati sono GPIO2 per il pin SDA e GPIO3 per SCL. I 5V e il GND possono essere presi da qualsiasi pin dedicato (pin2 o pin4 per 5V o pin6, pin9, pin14, pin20, pin25, pin30, pin34 e pin39 per GND).

Una volta installato raspbian si può abilitare facilmente il protocollo con pochi semplici comandi:

sudo raspi-config

Vi chiederà la password di amministratore, se avete lasciato quella di default, è semplicemente raspberry. Vi si aprirà una schermata di configurazione come in figura.

La schermata che vi appare quando digitate raspi-config

Andate su Advanced Options e premete invio (nota. Se avete una versione aggiornata del sistema operativo la schermata seguente potrebbe essere sotto la voce Interfacing Options):

La schermata di configurazione avanzata

Scorrete fino a I2C, premete invio, rispondete ok alle domande e, una volta usciti dalla schermata, installiamo i tools necessari con il comando

sudo apt-get install i2c-tools

Se avete già collegato un dispositivo I²C, come un display o un sensore potete capire se è stato rilevato digitando il comando

sudo i2cdetect -y 1

e vi apparirà una schermata del tipo

Abbiamo un dispositivo collegato all’indirizzo 0x21

In questa immagine vediamo come il dispositivo sia connesso e funzionante all’indirzzo 0x21.

  • Protocollo 1-wire

Il protocollo 1-wire, sviluppato dalla Dallas Semiconductors, è un protocollo che utilizza un BUS ad un unico filo e permette l’uso di un’infinità di dispositivi, come ad esempio sensori di temperatura o di umidità. Come nel caso del protocollo I²C è una comunicazione bidirezionale che avviene tra un dispositivo master e uno (o più collegati in parallelo) slave. Lo slave utilizzerà l’alimentazione direttamente dal dispositivo.

Su raspberry è possibile configurare il protocollo digitando come per il protocollo I²C il comando

sudo raspi-config

dalla voce Advanced Options o Interfacing Options selezionate 1-wire e rispondete ok alle domande. Il pin dedicato è il GPIO4.

Per avere un riferimento sulla piedinatura del raspberry fate riferimento a questo link.

Protocolli I²C e 1-Wire: cosa sono e come abilitarli su raspberry
Tag:                     

Un pensiero su “Protocolli I²C e 1-Wire: cosa sono e come abilitarli su raspberry

Rispondi