hola amigos, necesito vuestra ayuda.
hace un tiempo realice un proyecto (era bastante mas novato que ahora), que se han puesto a usar ahora. y tiene un fallo, y es que el I2C funciona solo a veces.
es un proyecto bastante complejo que realice yo al completo. El proyecto es un banco de pruebas para comprobar unos circuitos panelizados. y consta de lo siguiente.
-Un software gráfico para PC, programado en C#que te muestra de manera gráfica las correctas e incorrectas.
-El PC se conecta con un pic32 maestro, que se encarga de interpretar las ordenes del PC y ordenar a los esclavos.
-48 esclavos, PIC32, que se encargan de hacer las pruebas de las 48 placas panelizadas de manera independiente, mediante unas agujas de test.
el problema es que, en el software de PC cuando se conecta a la maquina, hay un test de hardware, el cual el PIC maestro va conectando con cada esclavo, y este le comunica si esta en funcionamiento.
y se muestra por pantalla los que están correctos y los que están incorrectos.
hasta aquí todo bien, el problema es que, de manera totalmente aleatoria y 1 de cada 3 veces o mas, todos los módulos dan incorrectos y siempre dan incorrectos aunque repitas la prueba, y eso ocurre hasta que reinicias la maquina (quitandole la corriente) y vuelves a hacer la prueba de hardware.
otras veces, funcionan todos los módulos, y funcionan todo el rato sin ningún problema. por lo tanto o funcionan perfectos, o no funcionan para nada.
por lo tanto el problema, debe de estar en el I2C, pero no logro arreglarlo, creo que el problema puede venir a que unos se inicien antes que otros y tiren el bus, pero he intentado meter retardos de inicio y sigue igual.
quería pediros, si tendriais ejemplos de I2C que os haya funcionado de manera correcta, pero que sean entre maestro y varios esclavos, ya que la mayoría que encuentro son todos para memorias y otros dispositivos, y esta claro que mi programa no funciona correctamente.
me da igual que sea con harmony, XC32, o C32, (o incluso C18 ya que se parecen mucho).
o alguna idea de que puede estar pasando? ha alguien le ha pasado algo similar?
un saludo y desde ya gracias.
PD: ya he visto los ejemplos de I2C que van rulando por el foro.