TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: aiwa_7 en 25 de Febrero de 2010, 19:11:07

Título: Como establecer un bus i2c incluyendo 2 pics, ambos como maestros
Publicado por: aiwa_7 en 25 de Febrero de 2010, 19:11:07
 :-/

Que tal...

Estoy trabajando con un proyecto en el cual es necesario emplear dos pic´s, especificamente
dos 18F452, los cuales realizan actividades distintas pero no de de forma independiente, es decir,
que por ejemplo para cierta funcion que realizan ambos microcontroladores es necesario que
los dos obtengan o proporcionen datos a una eeprom, una 24c64, solo por citar una situacion
ya que tambien se requiere que puedan acceder a otros dispositivos en el bus i2c como RTC etc
auque no necesariamente simultaneamente.
El asunto es que he realizado ambos programas para los pic´s, y de manera separada trabajan
correctamente, la comunicacion con los dispositivos externos es exactamente la esperada, el
problema viene a ser cuando se conectan ambos micros, se presentan comportamientos extraños
en ambos, justo en rutinas donde ambos tienen que establecer comunicacion con algun dispositivo
de los antes mencionados, mi primera teoria es que existe algun conflicto en el bus, pero no he
encontrado la forma de solucionarlo, y tampoco he podido localizar alguna fuente bibliografica que
pueda ayudar.
Programo en C, con el CCS.

De antemano gracias, espero alguien tenga alguna idea.

                                     :-/           :-/           :-/     
Título: Re: Como establecer un bus i2c incluyendo 2 pics, ambos como maestros
Publicado por: Suky en 25 de Febrero de 2010, 20:29:33
mmm... por lo que tengo entendido tenes que configurar los pics en multimaster e implementar rutinas que detecten colisiones, osea cuando ambos micros quieren utilizar el bus se genera una batalla donde uno de los 2 gana  :mrgreen: Estás funciones hay que hacerlas ya que CCS no las tiene implementadas o no he leído nada al respecto por lo menos  :rolleyes:


Saludos!
Título: I2C EN CCS
Publicado por: romulood7@hotmail.com en 22 de Julio de 2010, 19:57:10
Hola, estoy realizando un proyecto con I2C usando CCS, tengo un problema, el programa sale bien sin errores, y la simulación en Proteus es correcta, pero al implementarlo en el protoboard no funciona, alguien me puede pasar un programa de comunicación I2C entre dos PICs (preferible 18F4550, 16F877) que funcione.
Se lo agradecería.
Mi correo es romulood7@hotmail.com.

Zarbio Rómulo Ordóñez Dávila.
Título: Re: Como establecer un bus i2c incluyendo 2 pics, ambos como maestros
Publicado por: jhozate en 22 de Julio de 2010, 21:43:58
hola, no se que tan posible es q encuentres ese ejemplo aqui, pero si posteas tu codigo de seguro vas a encontrar ayuda para ponerlo a funcionar
Título: Re: Como establecer un bus i2c incluyendo 2 pics, ambos como maestros
Publicado por: splasma2 en 23 de Julio de 2010, 06:28:44
Creo que una opción podría ser usar una linea especifica de arbitraje.

- Cuando un PIC está usando el I2C tendra esta linea a nivel bajo como salida.
- Antes de  "apropiarte del bus I2C" hay que chequear su estado, configura el PIN como entrada y lees el valos, si es 0 está ocupada, sino está libre.
- Tiene que ser una linea controlada con colector abierto, para evitar conflictos de niveles.