resistenze Pull up e incremento della portata i2c

Salve ,ho capito bene come si applicano le resistenze pull up e mi pare di aver capito che esse hanno ,tra l'altro ,l'effetto di incrementare la portata di comunicazione i2c.

Sto eseguendo un sistema a 3 Arduino (1 master 2 slave) e ,premettendo che non posso aspettare tempi di consegna di eventuali integrati o shield che nella mia città sono introvabili ,volevo chiedere se qualcuno si è già imbattuto in mini reti simili e che resistenze ha applicato per farmi un idea di quali devo applicare io per avere una portata di una 20na di metri tra scheda e scheda.

e poi mi metto a saldare ...

Grazie 1000 ed un saluto !

I2C è un bus progettato per essere on-board, ovvero per far comunicare micro e IC sullo stesso PCB, non regge più di 50 cm.
Per distanze superiori, parli di 20 m, usa l'RS485.

I Transcevier li trovi anche da http://www.robot-italy.com/it/sn75176bd-differential-bus-transceiver.html, con spedizione con corriere li hai in 2/3 giorni, più o meno.

Ok grazie ...

Me ne occorrerebbero 1 per ogni Arduino vero?
Posso usare la libreria wire ed indirizzare ogni scheda in maniera trasparente giusto?

Grazie

Salve ,ho capito bene come si applicano le resistenze pull up e mi pare di aver capito che esse hanno ,tra l'altro ,l'effetto di incrementare la portata di comunicazione i2c.

Assolutamente no.

Le resistenze non incrementano la portata del segnale su I2C, ma servono solo a fornire la corrente necessaria ( 3-5mA ) dato che si tratta di una linea a collettore aperto.

mah... se è solo il cavo ad essere lungo una ventina di metri perche non usi un i2c bus extender?
tipo il p82b715 http://www.ti.com/lit/ds/symlink/p82b715.pdf
da datasheet dicono che ti permette di arrivare fino a 50m.

Accetto ogni soluzione ... a patto che sia in consegna per domani o Sabato se la ordino in mattinata, che sia completa e che magari si usi con librerie esistenti (non fondamentale) ...

Carta di credito carica ...

No, l'RS485 è tutt'altro bus. Devi implementare un nuvo protocollo software e la usi tramite interfaccia seriale hardware oppure software.

Puoi usare gli I2C extender, se non vuoi stravolgere il tuo progetto, li ho visti su ebay a poco prezzo ma con tempi di spedizione di 30/40 gg.

jonathanastolfi:
in consegna per domani o Sabato se la ordino in mattinata, che sia completa e che magari si usi con librerie esistenti

Mission Impossible! :frowning:

RS italia.
http://it.rs-online.com/web/c/?searchTerm=p82b715&sra=oss&r=t
forse con corriere arriva

leouz:
mah... se è solo il cavo ad essere lungo una ventina di metri perche non usi un i2c bus extender?
tipo il p82b715 http://www.ti.com/lit/ds/symlink/p82b715.pdf
da datasheet dicono che ti permette di arrivare fino a 50m.

4,5 euro su rs online, ma dubito che ti arrivi la roba per venerdi.
Lunedi invece ti arriva sicuramente, ma devi ordinare di corsa!

Se qualcuno conosce un negozio ner raggio di 100 Km da Ferrara che li tiene ,e rispettivi zoccoli ,vado a prenderli di persona ...

nid69ita ... se posti il link dello zoccolo provo a procedere subito ...

Ma ce ne vogliono 3 o 1 ?

Te ne servono 6 se hai tre periferiche.

Una coppia per ogni periferica lontana.

PaoloP:
Te ne servono 6 se hai tre periferiche.

Una coppia per ogni periferica lontana.

:fearful:

KE????

E se hai tre periferiche dove li metti 6??

Facciamo che te ne sere uno per ogni scheda...

Si niki,
gli expander sono completamente trasparenti al bus e funzionano a coppie.

Normalmente tu hai

Se una dei tre device è piu lontano, gli aggiungi 2 expander uno all'inizio e uno alla fine della linea lunga.

Esempio con il Device 2.
Linea I2C del micro <--> Expander <------- linea lunga --------> Expander <--> Device 2.

PaoloP:
Si niki,
gli expander sono completamente trasparenti al bus e funzionano a coppie.

Normalmente tu hai

Se una dei tre device è piu lontano, gli aggiungi 2 expander uno all'inizio e uno alla fine della linea lunga.

Esempio con il Device 2.
Linea I2C del micro <--> Expander <------- linea lunga --------> Expander <--> Device 2.

Non mi pare applicabile, se devi collegare 2 soli punti metti 4 extender???
Non esiste.

qui mi sembra più chiaro LINK

Vanno bene questi zoccoli ?

http://it.rs-online.com/web/p/zoccoli-dil/7830003/

Si in effetti, leggendo il datasheet (http://www.ti.com/lit/ds/symlink/p82b715.pdf) ho visto che si può creare un super-bus a cui collegare tutte le periferiche.
Quindi con 2 slave + master servono solo 3 extender.
Interessante il link. :wink:

Nell'ordine metti anche le resistenze da 4.7Kohm e 470 ohm. :grin:
I diodi e lo zener sono opzionali.

P.S. il cavo deve essere a 4 poli: Lx, Ly, 5V e GND.
Come suggerito puoi usare del cavo Ethernet Cat 5.

rettifico ,questo zoccolo :

Quindi le resistenze sono 3 e 3 ovviamente ?

praticamente quel chip crea un autostrada di i2c, i p82b715 funge da rampa di accesso

Nell'immagine dice che devi agigungere le due resistenze solo alle estremità del cavo (2 resistenze x 2= 4 resistenze da 470ohm )

e le normali resistenze di pull up del bus i2c in ogni spezzone (2 resistenze x 3 = 6 res da 4.7Kohm)

praticamente te hai 1 master con 2 slave

master ---|---->slave (con ANCHE 470ohm)
|--->slave (solo 4.7K)

praticamente nello slave di mezzo gli metti due connettori che danno direttamente al bus i2c buffered in modo da collegarci master e slave alle estremità.

Ok grazie 1000 ordine fatto !
tra l'altro ho scovato 3 xbee e 3 convertitori di livello logico ... così senza null'altro (mi pare di aver letto da qualche parte che ci vuole un programmatore prima) ,coi 3 arduino ci posso combinare qualcosa (eventualmente apro un altro topic)?