Autor Tema: PIC18F4685 no arranca al ocupar más de la mitat de la memoria  (Leído 2005 veces)

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

Desconectado greyfox

  • PIC10
  • *
  • Mensajes: 2
PIC18F4685 no arranca al ocupar más de la mitat de la memoria
« en: 10 de Agosto de 2011, 14:17:49 »
Hola a todos. Soy Angel desde Lleida (España).
Es mi primer post en este foro, así que aprovecho para presentarme e invitaros a una ronda virtual :-)

Tengo un problema con el PIC del asunto que ya me está empezando a preocupar. Lo elegí por tener 96KB de flash ya que el programa que estoy desarrollando es bastante grande. Uso el oscilador interno con I/O en A6, A7. Todo iba perfectamente hasta que mi programa superó los 48KB de memoria de programa (mitad de la disponible). Sencillamente no arranca. Es como si no tubiera oscilador. Si comento alguna porción del código fuente de manera que el compilado no supere los susodichos 48KB vuelve a funcionar perfectamente ¿?

Programo con MPLAB C18. He probado con las versiones 3.20 y 3.36 y hace lo mismo. Lo primero que hago en la función main es sacar un 0 por un pin donde tengo un led (0=encendido). No llega a lucir.

Lo curioso es que haciendo debugging si funciona. El programa corre, ejecuto paso a paso, etc... Pero por si solo no va. Por eso pienso que puede ser algo del oscilador. Pero porqué solo va mal si ocupo más de la mitad de la memoria?

No hace falta decir que he probado todas las combinaciones posibles con los bits de configuración, modelo largo de memoria, etc... Tambien he probado con más de un micro (todos 18F4685) y hacen lo mismo.

¿Puede alguien darme una pista de que está pasando?
Al principio pensé que seria alguna tonteria, pero ya estoy desesperado

Gracias
Angel

Desconectado greyfox

  • PIC10
  • *
  • Mensajes: 2
Re: PIC18F4685 no arranca al ocupar más de la mitat de la memoria
« Respuesta #1 en: 11 de Agosto de 2011, 14:14:49 »
Pues contesto yo mismo ya que he encontrado el problema.
Por si esto le sucede a alguien más que pueda encontrar este post.

El tema es que tenia el circuito del reset sobrecargado. En esta placa hay 7 espansores de puertos MCP23017 además del PIC. Todos conectados a la misma señal de reset. Al haber tanta carga en esta señal el pulso era demasiado corto y la tensión no llegaba nunca a ser VCC. Por la razón que sea esto no afectaba al PIC si no usa más de la mitad de la memoria. Pero no arranca si la supera.

Lo he solucionado usando el circuito de reset solo para el PIC y conectando directamente a VCC el reset de los expansores. Confio en que su reset interno sea suficiente.

Saludos
Angel


 

anything