Pages: [1]   Go Down
Author Topic: Lunghezza cavi bus I2C  (Read 2012 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 2
Posts: 556
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusatemi ma ho visto un post che mi ha fatto venire un dubbio.
Che lunghezza massima posso arrivare con dei cavetti che mi collegano ad arduino dei sensori con comunicazione I2C ?
O meglio.. quanto può essere lungo unbus I2C ? e se nel caso dovessi superare la distanza, è possibile inserire dei sistemi per amplificare il segnale ?

Grazie a tutti
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23142
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

http://arduino.cc/forum/index.php/topic,118983.0.html
Se ne è parlato di recente (forse è il thread a cui ti riferisci). Senza usare I2C expander si arriva a qualche decina di cm senza problemi, oltre insorgono problemi e disturbi di trasmissione.

Considera che l'I2C è nato per far dialogare chip su un'unica scheda o al max su schede interconnesse quindi la distanza è limitata. Per distanze superiori ci sono altri tipi di bus.
Logged


Offline Offline
God Member
*****
Karma: 2
Posts: 556
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie... adesso mi guarderò il link che mi hai dato.
Io dovrò arrivare ad un metro circa di lunghezza.
Cosa mi consigli ? che tipo di cavo ?
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23142
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se stai intorno al metro max e la linea è esente da disturbi, dovresti farcela, però con trasmissione a 100 k invece che a 400. Importanti le pull-up: almeno 3 mA di corrente (se lavori a 5V, R da 1K5).
Logged


BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La lunghezza massima del Bus I2C dipende dalla capacitá parasita tra i conduttori e massa. Visto che il Bus funziona con delle uscita open collector o open drain la resistenza pullup deve portare il livello del bus a H. La resistenza Pullup deve farlo entro un certo tempo perché sia di nuovo H per poter essere tirata a massa dall'uscita dei Dispositivi I2C. La corrente e percui il valore della Resistenza pullup é limitato dalla massima corrente che possono comutare le uscite.
La capacitá dipende dal tipo di cavi o disposizione delle piste sulla scheda e dalla loro lunghezza nocnche dal tipo e numero di dispositivi I2C collegati.
Ciao Uwe
Logged

Offline Offline
God Member
*****
Karma: 2
Posts: 556
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate la mia ignoranza... come faccio a portarla a 100 la velocità ?
Inoltre, io avrò solo 2 sensori della luce che devo portarli a circa un metro. Ma questi sensori, tra l' altro , lavorano con una tensione a 3.3.
Oltre a questo, ho altri device nel bus tra cui un display lcd e un circuito che mantiene la data e l' ora. Da quello che ho potuto vedere questi hanno già delle resistenze pull-up nella loro schedina.
Logged

Pages: [1]   Go Up
Jump to: