Newsgroup: it.hobby.elettronica.digitale
Titolo: Intrufolarsi su una com I2C

Ho l'esigenza di intrufolarmi su una comunicazione I2C tra un uC (master) e 
un DSP audio (slave) allo scopo di attivare, all'occorrenza,
degli ingressi aux audio del DSP.
Ho un PIC18F2580 (che uso per altre cose sulla stessa scheda) che ha SDA e 
SCL liberi, quale potrebbe essere la soluzione hdw più
semplice ?
Non ho ancora *sniffato* la comunicazione attuale in corso quindi non so se 
gli ingressi audio del DSP vengono continuamente indirizzati o
se il uC lo fa una tantum.
Nel secondo caso la modalità multi-master del PIC penso mi potrebbe 
permettere di prender il comando del bus e selezionare gli ingressi ma nel 
secondo caso
invece come potrei fare per l'hdw ? Devo piazzarci un I2C bus switch 
(PCAxxxx) ?
Grazie per l'eventuale help !
Luigi 

 (PCAxxxx) ?
no, una porta i2c ha scl ed sda in alta impedenza e da qualche parte nel bus 
ci sono 2 pull-up;
ti attacchi direttamente al bus... poi metti il micro in slave se vuoi 
sniffare (ma secondo me non basta... per avere un quadro completo ci 
vorrebbe un oscilloscopio con memoria oppure un analizzatore di stati logici 
credo) oppure in master se vuoi trasmettere
perņ prima devi sapere cosa passa sul bus altrimenti se trasmetti a caso 
rischi di creare una collisione di cui l'altro master potrebbe non 
accorgersi
-ice- 

 Grazie per l'eventuale help !
Per inserirti, sono previste dal protocollo le modalita' di 
arbitraggio e quindi non dovrebbero esserci problemi; basta 
che chi ha fatto il software per il Pic abbia implementato 
un vero protocollo multimaster, cosa che "a me" risulta 
abbastanza poco consueta.
ciao
Angelo

 Angelo
Il mio neurone stanco in un momento di attività mi ha suggerito che potrei 
*tagliare* la comunicazione tra il Nec e il DSP,
configurare il PIC in I2C slave (con l'address del DSP) e interfacciarlo al 
Nec in modo di non perdere nessun dato (rx via interrupt) e verso il DSP 
usare un I2C master in bit-banging visto che posso anche permettermelo dal 
punto di vista del timing (essendo il master
decido io quando *parlare* con il mio slave).
In questo modo potrei far da gateway per tutti i dati che devono essere dati 
direttamente al DSP e aggiungere a parte quello che mi interessa.
Potrebbe funzionare ... ?
Grazie (anche a ice) per la risposta.
Luigi

 Potrebbe funzionare ... ?
Certo! controlla il tempo richiesto e la quantita' di dati 
da inviare, se riesci a non avere lag credo anzi che sia il 
metodo migliore.
Unico problema reale potrebbe essere cambiare indirizzo 
fisico al dispositivo per poter indirizzare il pic al posto 
del dispositivo originale e poi reindirizzare dal pic verso 
l'altro con il nuovo indirizzo.
ciao
Angelo

 indirizzo.
Se riesco a configurare il pic simultaneamente in master e slave mode 
(chiaramente con
2 SDA e SCL separati) il primo in hardware mode e il secondo via software 
non ho questa
necessità, al limite *overclocco* il pic a 16Mhz per dargli una marcia in 
più rispetto all'8Mhz attuale
visto che deve fare anche altre cose via CAN.
Cercando in rete ho trovato chi già aveva questa necessità e pare abbia 
risolto il problema, vedasi
link 
http://www.ccsinfo.com/forum/viewtopic.php?t=33950
, tra l'altro io uso 
proprio il CCS come compilatore ...  :-)
Domani lo provo.
Ciao. 

 visto che deve fare anche altre cose via CAN.
Ma stai gia' usando il Pll?
Se cosi' non e', ma sicuramente lo sai, basta che tu attivi 
il Pll con un quarzo a 10 MHz. e hai 10 Mips con 
l'oscillatore (10 MHz.) * Pll (4) che porta il clock a 40 
MHz; oppure con gli 8 MHz. attuali vai a 32 MHz. di clock e 
8 mips e il tutto e' garantito, non sei in overclock.
ciao
Angelo