Go Down

Topic: Wire.h e slave spenti (Read 922 times) previous topic - next topic

mantissa00

ciao a tutti oggi mi sono messo a fare qualche prova con la Wire.h e la comunicazione tramite i2c fra arduini.
funziona benissimo! sto facendo comunicare 3 arduini: 1 master e 2 slave, carico gli esempi e via di gran gusto  :smiley-mr-green:

ad un certo punto però mi sono accorto che se un arduino slave è collegato con i cavi MA spento.. manda in crash tutta la comunicazione e il master crasha (ho un Serial.println("loop") all'inizio della loop() nel master e se uno slave è collegato con gnd, sda, slc MA spento questo print non compare più nel serial monitor).

come fare?

uwefed

È vietato dal datasheet avere tensioni piú alte di quella di alimentazione sulle entrate (eccetto il pin di Reset). Se non hai alimentazione non puoi avre tensioni sui A4 e A5 attraverso il I2C. Ci sono diodi che proteggono le entrate che conducono in questo caso.
Non c'é soluzione perché é un uso impropio del componente elettronico (ATmega328 del Arduino).
Ciao Uwe

flz47655

Oltre a quello che ha detto Uwe, hai messo le resistenze previste da i2c?

lesto

forse si può usare un transistor per disaccoppiare i pin i2c se il micro è spento. l'1 logico per attivare la comunicazione potresti prenderla dal pin reset per non perdere un pin... ma non ho idea se poi rischi di rendere instabile il reset
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

PaoloP


forse si può usare un transistor per disaccoppiare i pin i2c se il micro è spento. l'1 logico per attivare la comunicazione potresti prenderla dal pin reset per non perdere un pin... ma non ho idea se poi rischi di rendere instabile il reset

Perché non dalla 3V3? Non funzionerebbe? Qual'è la soglia di tensione per attivare il transistor?
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Go Up