TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Thulsa Doom en 13 de Agosto de 2013, 16:39:28
-
Hola a todos,
resulta que estoy haciendo un proyecto con un PIC16F876A y me he quedado sin espacio en la memoria, ¿sería posible utilizar una memoria externa para almacenar instrucciones? y si ese fuera el caso ¿de que manera podría ser?.
Gracias y un saludo
-
Hola, me imagino que ya lo habrás analizado, porqué no cambiarse de PIC ?
Saludos
-
si, ese es el último recurso, lo que me interesa es ver las posibilidades antes de cambiar de pic
-
Lo más rápido y barato es cambiar de pic. Si el proyecto va a utilizar muchos micros o prefieres el camino difícil, lo primero sería reducir la memoria ocupada. ¿Qué lenguaje usas?
Saludos.
-
resulta que estoy haciendo un proyecto con un PIC16F876A y me he quedado sin espacio en la memoria, ¿sería posible utilizar una memoria externa para almacenar instrucciones?
No, y aunque fuera posible te saldría más barato y resultaría más sencillo, usar un micro con más memoria flash.
-
CCS y lo que me interesa es saber si se puede utilizar una memoria externa para almacenar instrucciones, que tipo es la más recomendada y de que manera se meten las instrucciones, es un experimento, se que puedo utilizar un PIC18F y utilizar tanto CCS con C18, (prefiero C18)
a ver si me orientan y yo sigo investigando no pretendo que me lo den todo hecho
-
resulta que estoy haciendo un proyecto con un PIC16F876A y me he quedado sin espacio en la memoria, ¿sería posible utilizar una memoria externa para almacenar instrucciones?
No, y aunque fuera posible te saldría más barato y resultaría más sencillo, usar un micro con más memoria flash.
Pues vale, a por un 18F
-
Según el datasheet dicho PIC permite la grabación de memoria de programa desde el propio programa del PIC -similar a escribir en su EEPROM de datos- haciendo uso de los registros EECON1, EECON2, EEADR, EEADRh, EEDATA y EEDATAH.
Por lo tanto se podría hacer un programa, que leea parte de su código a partir de una EEPROM externa (similar a como funciona un bootloader). Por supuesto que habría que evaluar cuan rápido y/o cuan conveniente resultaría esto respecto a la durabilidad del PIC. Habría que buscar cuantos ciclos de escritura de memoria de programa soporta.
-
Gracias, entendido
-
El código c puede ocupar bastante si no está optimizado. Prueba a optimizar el código con funciones que no utilicen la pila y más subrutinas pequeñas. Si dejas un poco de código seguro que podemos echarte una mano.
Saludos.
-
Otra solución un poco compleja es almacenar en una memoria externa (por ejemplo una flash serie) bytecode que luego sea interpretado por el microcontrolador. Externamente no puedes almacenar instrucciones nativas del pic, pero si puedes utilizar otro lenguaje que llame a subrutinas internas. Un ejemplo es un pequeño interprete basic con las instrucciones precompiladas en una memoria externa. Como te dije, la solución es compleja. Otra ventaja de esta solución es que puede almacenar el programa en Ram o interactuar con el usuario mediante una línea de comunicaciones como el RS232.
Mejor cambia de Pic.
Saludos.