Cambiare Baudrate I2C

Spesso capita di dover usare un sensore I2C a diversi metri di distanza dal Raspberry PI con problemi notevoli di funzionalità in quanto la frequenza di clock del BUS I2C è molto elevata con la conseguenza che le capacità parassite del cavo si fanno sentire distorcendo i fronti di salita e discesa dei dati SDA e del clock SCK.

Per ovviare a tale inconveniente è sufficiente diminuire la velocità di CLOCK del dispositivo I2C.

Su Raspberry Pi con Raspbian Jessie è sufficiente dare il seguente comanda da shell:

sudo bash -c "echo options i2c_bcm2708 baudrate=50000 > /etc/modprobe.d/i2c.conf"

e poi riavviare il nostro raspberry con:

sudo reboot

Con tale valore di baudrate sono riuscito a collegare un sensore HTU21D con un cavo di allarme 4 poli + calza ad una distanza di 10 metri.

E' sicuramente possibile variare il valore di baudare. Lascio a voi le prove e scrivere nei commenti.


Stampa   Email