Distinguere tra vari slaves I2C con stesso indirizzo

Sep 07, 2017 14 Replies

Ciao



scrivo qui perche il ng it.h.e.digitale =C3=A8 tristemente inattivo e perch=C3=A8 il problema =C3=A8 secondo me piuttosto elettrico



ho 4 dispositivi I2C,dei sensori di colore,indirizzo slave fisso e predefinito,nessun pin per variarlo. voglio interrogarne solo uno alla volta da un unico bus


mi viene in mente



1)switch analogici a stato solido per dirottare almeno uno dei 2 segnali sul disp da usare..l'altro non sente l'indirizzo corretto e sta inattivo
2)non alimentare il dispositivo,sar=C3=A0 alimentato da pin o da BJT messo = tra VDD 3.3V e device pilotato da pin GPIO del uC. Non sono certo che NON alimentando i dispositivi che non voglio usare questi non interferiscano,ma mi viene da pensare che i loro stadi open collector o opend drain su SDA e SCL risultino ad alta impedenza

grazie


Questa email =C3=83=C2=A8 stata esaminata alla ricerca di virus da AVG. http://www.avg.com

Il 07/09/2017 11:20, blisca ha scritto:

buona

non mi piace troppo prioprio perche' non hai certezza del funzionamento

3) ci sono dei mux appositi ( controllati via i2c ) probabilmente TI NXP o Maxim

"blisca" ha scritto nel messaggio news: snipped-for-privacy@lella-hp.station... Ciao

ho 4 dispositivi I2C,dei sensori di colore,indirizzo slave fisso e predefinito,nessun pin per variarlo. voglio interrogarne solo uno alla volta da un unico bus

mi viene in mente

1)switch analogici a stato solido per dirottare almeno uno dei 2 segnali sul disp da usare..l'altro non sente l'indirizzo corretto e sta inattivo

Esatto, i 4052 li usavano anche sulle mainboard per gestire il smbus.

blisca ha scritto:

i
o

sso

usare un multiplexer I2C : TCA9544 qui un esempio gia fatto:

formatting link
out/overview

In data settembre 2017 alle ore 17:38:53, emilio ha scritto:

so

out/overview

grazie dei consigli

ero orientato allo switch analogico,interrompendo SDA che necessitava di una pull up per ogni dispositivo,giusto per evitare cha la interruzione sembrasse un bit di stop,ma non vedo il motivo ,nemmeno il consumo se ho visto bene ,per non usare il TCA9544

Questa email =C3=83=C2=A8 stata esaminata alla ricerca di virus da AVG. http://www.avg.com

Il 07/09/2017 11:20, blisca ha scritto:

Isolare i vari dispositivi con dei buoni vecchi buffer tri-state magari

Fabio

https://www.avast.com/antivirus

In data settembre 2017 alle ore 23:45:47, Fabio ha = scritto:

so

a,

Non mi sembra la soluzione corretta: Il micro non potrebbe sempre sapere quando =C3=A8 il mometo di commutare la= direzione: durante la trasmissione I2C quando il master trasmette =C3=A8 lui che muove= SDA,ma quando lo slave risponde ,il controllo passa allo slave,sia per il =

bit ACK che per i bytes successivi. Se io affido la comunicazione I2C al modulo I2C hardware del microcontrollore lancio la comunicazione e se la vede lui,quindi io non posso dire quando sia il momento buono per cambiare. Se lo facessi via software,potrebbe quasi funzionare ma anche qui ci sarebbe un problema:lo slave deve poter fare il clock stretching bloccando gli impulsi di clock,e lo pu=C3=B2 fare solo con la logica "dominante-recessivo" o come si chiama,in = cui quello dei due dispositivi che porta il clock basso deve poterlo fare. Se il master =C3=A8 bufferato lo slave non si trova a combattere con una pu= ll up,ma con un buffer,sarebeb un conflitto logico ed elettrico,non solo,lo slave non potrebbe fare sapere al master che sta cercando di bloccare il clock

Questa email =C3=83=C2=A8 stata esaminata alla ricerca di virus da AVG. http://www.avg.com

puoi usare un apposito swith per bus i2c, che e' a sua volta un dispositivi i2c e quindi ti permette di scambiare i bus con un comando dal micro.

tipo il PCA9848PWJ che ha 8 canali in "uscita"

formatting link

ma ce ne sono molti altri, quasi tutti i produttori ne hanno, probabilmente trovi anche le schedine breakout dai soliti fornitori.

--Andrea--

Mi sa che mi devo rivedere le mie conoscenze sul bus I2C! Credo che tu abbia ragione! L'ora tarda a volte fa scrivere sciocchezze. Fabio

virus. https://www.avast.com/antivirus

In data settembre 2017 alle ore 00:10:43, Fabio ha = scritto:

pu=F2 darsi ,ma non prendere le mie osservazioni come oro colato e verifica= su qualche sito sicuramente pi=F9 autorevole

Saluti

Questa email =E8 stata esaminata alla ricerca di virus da AVG. http://www.avg.com

In data settembre 2017 alle ore 20:08:19, asdf ha scritto:

=E8

Mi sto rendendo conto che per semplicit=E0 di sbroglio del PCB avrei dovut= o scegliere uno dei due IC suggeritimi invece dello switch analogico

Questa email =E8 stata esaminata alla ricerca di virus da AVG. http://www.avg.com

"blisca" ha scritto nel messaggio news: snipped-for-privacy@lella-hp.station...

ma vai a cagare!

In data settembre 2017 alle ore 16:11:20, Roberto ha scritto:

che intervento utile

http://www.avg.com

"blisca" ha scritto nel messaggio news: snipped-for-privacy@lella-hp.station... In data settembre 2017 alle ore 16:11:20, Roberto ha scritto:

EN1, EN2, EN3, EN4 = 4

S1, S2= 2

Ok, preferisci sentirti dare del coglione!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required