Autor Tema: Problema con I2C con PIC18F4510, DS1307 y MCP4728  (Leído 2207 veces)

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

Desconectado asantos

  • PIC10
  • *
  • Mensajes: 4
Problema con I2C con PIC18F4510, DS1307 y MCP4728
« en: 19 de Diciembre de 2011, 14:27:36 »

Saludos a todos los del foro,

Les cuento mi problema:
Inicie con el pic18F4510 y el Ds1307 y todo normal con pull up´s de 4.7K (trabajando como se debe trabajar), pero al agregar al Bus el MCP4728 (DAC de 12 bits, E2PROM interna,etc) tengo el problema de que el voltaje en SDA y SCL sin trasmitir datos es inferior a Vcc(5V) y crei que el problema tal vez serían los pull up´s, realice varias pruebas y finalmente cambiando las de 4.7K por 1K ya me resulto que tengo casi Vcc en SDA y SCL y pense problema resuelto, me lleve la sorpresa que en el primer intento de comunicacion con el MCP4728 funcionó correctamente, despues de unas cuantas lecturas y escrituras con el DS1307 y MCP4728 me llevo la inesperada sorpresa que se "traba" el micro, aparentemente muerto, mido voltaje en SDA y SCL y oscila por debajo de 2volt y me quedo sin saber que pasa(uso hyperterminal para depurar), al paso de menos de un minuto veo que me llega la respuesta que esperaba al haber enviado el comando de escritura y las lineas(SDA y SCL) regresan a Vcc y nuevamente envio comando y pasa lo mismo.

Puntos de interes sobre lo que estoy haciendo:
-Programando en CCS
-El MCP4728 es MSOP de 10 pins, por lo que elabore una tarjeta con pines para soldarlo y luego ponerlo en un protoboard, si hay continuidad entre las patitas del integrado y los pines(header) que inserto en el protoboard y no hay corto circuito entre ellas.
-Ya use dos circuitos integrados MCP4728 y es el mismo problema.
-Fisicamente conecto una resistencia de 1K a SDA y otra a SCL y obtengo voltaje muy cercano a Vcc, pero tengo la sospecha de que por alguna razon SDA y SCL del integrado MCP4728 estan haciendo contacto a masa mediante una resistencia no fisica(menciono esto porque si cambio pull up a 10K el voltaje en la linea SDA o SCL cae entre mas aumente Rpull-up).
-Si desconecto el MCP4728 el DS1307 opera correctamente.
-Agregue codigo para depurar y me lleve la sorpresa que cuando escribo en el Bus I2C obtengo NOACK por parte del esclavo y el PIC se queda parado sin hacer nada aparentemente(si envio por el puerto serie datos el PIC responde ya que estoy usando Interrupcion rda) hasta despues de varios segundos sigue ejecutando el codigo correspondiente.


Si alguien tiene informacion sobre este problema favor de ayudarme.
Saludos a todos!!!!

Saludos a todos.





 

Desconectado JuanEZWon

  • PIC10
  • *
  • Mensajes: 21
Re: Problema con I2C con PIC18F4510, DS1307 y MCP4728
« Respuesta #1 en: 07 de Enero de 2012, 14:40:14 »
te recomiendo que lo simules en el proteus. de esa manera me he salvado de muchas. apesar de no estar el MCP4728, puedes usar el MSP3221 para probar. hazlo para descartar que sea un problema de software o de hardware. si funciona bien, lo mas probable es que sea una falla en el hardware, y si en el proteus tampoco funciona, es muy probable que sea un problema en tu software. recuerda que el proteus tiene un I2C debugger que es muy util, y tambien permite depurar el codigo fuente y las variables. es un muy buen simulador que me ha sacado de problemas que me hubiesen sido muy dificiles de solucionar sin usar debug.

Desconectado mauro2555

  • PIC10
  • *
  • Mensajes: 18
Re: Problema con I2C con PIC18F4510, DS1307 y MCP4728
« Respuesta #2 en: 31 de Marzo de 2012, 23:04:53 »
Juan estoy con un proyecto similar pero usando un mcp4725, veo q el funcionamiento es el mismo q el mcp4728. Quisiera simular en proteus para descartar fallos en software pero no encuentro el componente msp3221, donde podria encontrar ese componente o donde podria actualizar o descargar la informacion del componente. Te agradeceria si me ayudas con ese dato. Exitos!!


 

anything