bus i2c

Salve a tutti

Sto sviluppando un progetto che usa, per ora, due sensori sul bus i2c. I test che ho fatto finora generalmente funzionano, ma non sempre: a volte non partono, altre volte dopo qualche secondo di funzionamento corretto si fermano. (I programmi di test che ho scritto si bloccano se la comunicazione con il sensore fallisce.) Credo che il successo o fallimento dei test sia legato alla lunghezza dei due cavi del bus, SDA e SCL, perché a volte basta modificare quella per cambiarne l'esito.

Qualcuno potrebbe indicarmi delle regole generali per come creare un buon bus i2c dal punto di vista dell'hardware e quali sono i suoi limiti ad esempio riguardo alla lunghezza dei fili? Ad esempio da cosa dipende il valore della resistenza di pullup da usare? (Io ho finora utilizzato quella da 10k interna ad ATmega328)

Grazie

PS mi interessano le "regole generali" (che potrebbero essere utili anche ad altre persone) , ma se sono utili per rispondere questi sono i dettagli riguardo al mio progetto (non so quali servono): uso un micrprocessore ATmega328 senza scheda arduino (ma per ora svolgo i test con un arduino UNO); i sensori connessi sono il giroscopio ITG3205 e l'accelerometro ADXL345; i cavi SDA e SCL devono essere lunghi circa 5cm, ma vorrei poterli allungare il più possibile per un'altra parte del progetto che ancora non esiste; il tutto è alimentato da una batteria di 3.7V.

Puoi visualizzare lo schema che usi?

>alaala73: essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

>cyberhs: ... recidivo eh * *:grin: :grin: :grin:

Scusa, mi era sfuggito...