Autor Tema: problemas con el I2C  (Leído 2697 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
problemas con el I2C
« en: 03 de Julio de 2015, 12:14:01 »
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.





 
« Última modificación: 03 de Julio de 2015, 12:18:34 por juaperser1 »
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: problemas con el I2C
« Respuesta #1 en: 03 de Julio de 2015, 14:53:12 »
si alguien lo prefiere o piensa que el problema puede venir de otro lado, puedo colgar esquematicos y codigos, pero va a ser dificil que alguien le siga la pista al código, ademas de que lo hice hace tiempo y no esta muy estructurado, como repito era bastante novato.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: problemas con el I2C
« Respuesta #2 en: 04 de Julio de 2015, 12:06:50 »
¿nadie?

venga seguro que a alguien le ha pasado algo similar o sabe por donde pueden ir los tiros.

un saludo.
« Última modificación: 04 de Julio de 2015, 12:11:50 por juaperser1 »
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: problemas con el I2C
« Respuesta #3 en: 04 de Julio de 2015, 12:20:05 »
¿Los distintos esclavos están en la misma placa que el maestro o se conectan mediante cables?. Si es la segunda opción, pienso que el fallo puede ser causado por un problema referencias de masa o por capacidades parásitas.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: problemas con el I2C
« Respuesta #4 en: 04 de Julio de 2015, 12:26:10 »
hola pablomanieri, la placa maestro es una placa del tamaño de un folio y los esclavos son placas hibridas a parte. es decir las placas hibridas de los esclavos van soldadas directamente a la placa del maestro como si fuera un componente mas, la referencia de masas y la alimentación es la misma para todos los esclavos y el maestro.

un saludo y gracias por contestar.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: problemas con el I2C
« Respuesta #5 en: 04 de Julio de 2015, 13:14:52 »
Esta es la placa del maestro, en los Modulos Mx se sueldan directamente los PCBs de los esclavos, son placas pequeñas.

en los modulos de los esclavos, las señales SDA y SCL van directamente a los pines del I2C del microcontrolador. como veis es una placa bastante sencilla, yo me inclino mas a que es un problema de software.

a ver si a alguien se le ocurre algo, si teneís alguna pregunta que no tengais muy claro, sin problema os la contestare.



Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: problemas con el I2C
« Respuesta #6 en: 04 de Julio de 2015, 20:11:38 »
Que macana, más si el fallo se da en forma aleatoria. Yo probaría en poner los pines SCL y SDA como entrada al inicio, y testear si las dos están en estado alto, quiere decir que ningún módulo está cargando las líneas (al menos con un estado bajo), y luego si iniciar la comunicación.
¿La corriente de alimentación de 5V es suficiente para todos los módulos?
Saludos
« Última modificación: 04 de Julio de 2015, 20:30:42 por pablomanieri »

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: problemas con el I2C
« Respuesta #7 en: 04 de Julio de 2015, 20:52:00 »
Hola plablomanIeri ya hice esa comprobación, las dos lineas están en alto, y usando el debug veo que los esclavos están en funcionamiento, es decir no están parados en un trozo de código ni nada, simplemente que, cuando se da el fallo, cuando el maestro manda un mensaje, no lo detecta. He pensado que el estado bajo del bus puede darse cuando reciben la alimentación antes de configurar los puertos, unos se inicializan antes que otros y antes de inicializar los puertos sepa dios que esta pasando, y sea un tiempo muy pequeño pero lo suficiente para desiscronizar el bus o algo. Pero no se como abordarlo.

Lo de la alimentación, no lo había pensado, creo que es suficiente, viene de una fuente conmutada que da algunos amperios, no recuerdo bien cuantos pero lo comprobare el lunes.

Sigo sin tener idea de que ocurre, el lunes seguiré haciendo mas pruebas a ver si suena la flauta,.

Muchas gracias por preocuparte. Si se te ocurre algo hazmelo saber.

Un saludo.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: problemas con el I2C
« Respuesta #8 en: 09 de Julio de 2015, 11:03:49 »
Bueno, he encontrado el problema, no era un fallo de software ni de hardware, era, como no, un bug de las librerías plib para pic32,  como no? De nuevo perdiendo el tiempo arreglando las pájaras de microchip.

Si buscáis el datasheet de pic32mx2xx, veréis que se necesita configurar el brg del i2c para la frecuencia del i2c, pero no te explica ni muestra en ningún lado donde esta ese registro ni nada, buscas el documento extenso de i2c y te dice con una nota que algunos dispositivos pic32 no tienen ese registro, pero no dice cuales, por lo tanto aunque el datasheet dice que si, parece que no.

Y en las librerías tienes que configurar obligatoriamente ese registro, vamos a ver en que quedamos, se lo comento a mmicrochip y me dice que sera una errata y o un bug.

Pfff he tenido que sortear por software para que funcione.

mientras mas trabajo con ellos, mas me convence ¡¡NUNCA JAMAS USAR UN PIC32 PARA UN PROYECTO NUEVO!!
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: problemas con el I2C
« Respuesta #9 en: 09 de Julio de 2015, 11:49:59 »
Me alegro que lo hayas solucionado. Es lamentable que los pic32 den tantos problemas.