Newsgroup: it.hobby.elettronica.digitale
Titolo: I2C peggiorata di colpo,40 cm di cavo la rendono illeggibile

Ciao
 
un amico mi dice "ho questo termostato con sonda igrometrica che va in 
una incubatrice,dopo anni di funzionamento dï¿œ i numeri,la sonda ha 30 cm 
di cavo fissi, piï¿œ un pezzo di cavo prolunga da 40 cm,se non uso questa 
prolunga ,ma collego la sonda direttamente alla macchina la lettura ï¿œ 
ok.Nessuno dei 4 conduttori ï¿œ interrotto o in corto con altri".Cose che 
ho poi riverificato e confermato.
 
Mi reco sul posto col mio oscilloscopietto digitale Welec,(considerato 
quasi un giocattolo,ma se ci si accontenta si impara a volergli bene,per 
quel poco che ï¿œ costato).
Vedo che i 4 cavi sono alimentazione 5V,GND e due segnali che sembrano 
proprio SDA e SCK I2C.
Senza prolunga il clock a 200 KHz ï¿œ un pï¿œ smussato in salita ma fa in 
tempo a mantenersi alto per un tempo decente prima della rapida 
discesa,tipico comportamento da pull up e open collector.
 
Con soli 40 cm di prolunga cavo il clock SCK non fa nemmeno tempo ad 
arrivare al precedente livello alto ed ï¿œ giï¿œ ora di tornare basso.Il 
dato SDA reca sovrapposto  e ben distinguibile il clock,come se vi fosse 
un accoppiamento capacitivo molto forte tra i due segnali.
 
Sembra quasi che le resistenze di pull up siano talmente alte da 
risentire di quello poche decine(centinaia ?)di pF.
 
Ma perchï¿œ ï¿œ andato fino a ieri?
 
Grazie

 Ma perchï¿œ ï¿œ andato fino a ieri?
 
La domanda ï¿œ "come ha fatto a funzionare fino a ieri"!
La I2C ï¿œ pensata per IC sullo stesso stampato, per distanze brevissime
insomma.
 
Probabilmente qualcosa ï¿œ invecchiato oltre il limite di sopportazione.
Una saldatura balorda? Connettori sporchi o ossidati?
 

 risentire di quello poche decine(centinaia ?)di pF.
...
 
Infatti tutto lascia a pensare che i pull-up siano di valore troppo elevato.
Prova ad abbassarli e se hai un capacimetro accerta la capacità parassita del cavo: a 200KHz i pF si fanno sentire per le onde quadre.
Puoi anche provare a sostituire i pull-up con dei semplici generatori di corrente da un paio di mA (e bassissima caduta a meno di non utilizzare una tensione più alta di almeno 1V) con risultati strepitosi.
 
Piccio.

 insomma.
mmm...secondo me il limite non � la distanza ma la capacit�
in ogni caso mi assicurano che abbia funzionato per anni senza errori e da 
un giorno all'altro il malfunzionamento sia stato totale
 
Riporter� quanto mi riferisce la casa costruttrice,se risponder� nel 
dettaglio
intanto grazie 
 
 


 
IO ho attualmente un i2c funzionante a circa 5 metri (tramite utp cat6), pero' mi interesserebbe questo discorso ,
cosa utilizzi come generatore di corrente un semplice specchio o c'e' qualcosa di gia' fatto ?
 
Giulia
 
 

 cosa utilizzi come generatore di corrente un semplice specchio o c'e' qualcosa di gia' fatto ?
 
Utilizzerei il solito BJT PNP nella classica configurazione con carico sull'emettitore e tensione di riferimento in base ma se la tensione di alimentazione è inferiore a 5V (tipo 3V3) le soglie non sono garantite.
Credo esistano anche dei componenti bipolari generatori di corrente ma la caduta di tensione ai loro capi potrebbe essere eccessiva.
 
Questa soluzione la adottai realizzando una seriale OR-Wired, una specie di open collector e dovevo risolvere il problema del tempo di salita su un bus piuttosto capacitivo.
I risultati erano notevoli ma disponevo di tensioni generose.
 
Piccio.