TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: anfelgo en 18 de Agosto de 2009, 12:13:43

Título: I2C multi-master
Publicado por: anfelgo en 18 de Agosto de 2009, 12:13:43
Si se tiene una comucacion a traves de I2C multi-master y varios dispositivos, es posible la comunicacion entre masters??

Al parecer tengo bastantes dudas acerca del bus I2C  :? ......

Saludos
Título: Re: I2C multi-master
Publicado por: Suky en 18 de Agosto de 2009, 12:50:37
No, no se puede  :mrgreen:

Saludos!
Título: Re: I2C multi-master
Publicado por: anfelgo en 18 de Agosto de 2009, 12:53:16
jeje me lo imaginaba.

Gracias.
Título: Re: I2C multi-master
Publicado por: Jorge555 en 23 de Agosto de 2009, 18:53:57
Sólo puede haber un maestro controlando el bus, si dos maestros mandan una condición de start al mismo tiempo se inicia un proceso para seleccionar que maestro coge el control del bus, el que "gana" pasa a ser el master y el resto se ponen como esclavos, el maestro que ha ganado el control se puede comunicar con el que lo ha perdido pasando éste a ser esclavo.

Título: Re: I2C multi-master
Publicado por: fabianjsm en 24 de Agosto de 2009, 02:26:42
Una configuracion i2c multimaestro muy comun es esta: cada maestro posee una direccion como si se tratara de un esclavo más; al ser direccionado debidamente, envía un ACK si necesita ocupar el bus, en cuyo caso pasara a ser el que controla la linea SCK y el maestro anterior pasara a ser un esclavo mas esperando recibir el control nuevamente.
El bit RW puede sirvirte para la comuncacion entre maestros, por ejemplo, si le direccionas en modo lectura, leeras el registro que te interesa del otro maestro, pero si le direcciones en modo de escritura le estas sediendo el control del bus  :-/
Título: Re: I2C multi-master
Publicado por: Suky en 24 de Agosto de 2009, 09:46:53
Uuuu Me las mande entonces  :oops: Pero lo que dices fabianjm no veo como se implementaría con CCS porque para establecer la configuración del bus i2c solo se puede utilizar #use i2c(..., habría que crear funciones propias para la modificación de los registros para este tipo de caso  :?


Saludos.