Freeze casuali del programma: può generarli una connessione I2C troppo lunga?

La connessione I2C è nata per collegare alla CPU perifiche molto vicine, di solito sullo stesso PCB.

Nel tuo caso 170cm non sono molti, ma dipende dalla capacità parassita del cavo (un cat5 ha circa 52 pF per metro): prova ad usare un cavo più corto (tipo patch da 30 cm) oppure non intrecciato.

Puoi anche provare a diminuire un po' i due resistori presenti sulle linee SDA ed SCL (la libreria attiva per ognuna il resistore da 20k interno) mettendo un resistore esterno da 10k sino a 2k.

Ettore Massimo Albani