TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: guancho2002 en 18 de Julio de 2008, 21:07:20
-
Hola de nuevo,
me surje una duda y es la siguiente: ¿es posible utilizar un pic de manera que todo el programa esté colocado en una tarjeta de memoria SD? Imaginaros un equipo en el que solamente con cambiar la SD tenga actualizado todo el sistema.
Un saludo.
-
nadie ha probado esto? venga va... :)
-
No es posible. Algunos micros pueden direccionar direcciones de memoria externa pero el metodo de acceso de una sd hace que en principio este aspecto sea imposible. Si podrias implementar un sistema de flasheo desde la tarjeta sd pero eso ya no entraria dentro de la definicion que has dado.
-
Gracias.
¿Puedes explicarme un poco eso que dices? ¿sistema de flasheo?
Un saludo.
-
Basicamente consiste en un bootloader modificado, que tome el programa de la memoria SD y lo guarde en la memoria Flash de programa del PIC. Para ello necesitas modificar un bootloader ya que todos ellos reciben el programa vía RS232 y tu lo tendrías que leer de la memoria SD. Otro inconveniente es que te queda menos memoria para el programa (el bootloader ocupa una parte de la memoria del PIC) y el programa necesita comenzar en una dirección especifica (después del bootloader).
Un saludo
-
Si, se podría hacer como el picbasic stamp, el PIC tiene un programa interprete, y en la memoria se tienen códigos con las instrucciones a realizar. no seria directamente el código generado por un compilador para pic, seria un codigo generado para el caso.
por ejemplo
memoria sd con código PIC
01 activar pin A0.1
02 wait 1 seg
etc.....
-
gracias por vuestros comentarios pero veo que no es tan fácil como podía parecer. Lo de trabajar como el picbasic stamp lo veo un poco complicado cuando empieces a trabajar con interrupciones, comunicaciones... pero, se podría indagar un poco y ver como funciona. Me lo apunto.
Gracias...
:)
-
Sabes no es muy dificil el interprete(PBS) lo malo es que se baja la velocidad, en cuanto a las interrupciones, timers, y otros periféricos funciona normal. pero estan directamente relaciona a que tan pulido esta el soft interprete de uC.
ejemplo básico
dirMemoriaSD //contador(dirección de memoria SD)
instrMemoriaSD = leerISD(dirMemoriaSD); //lee instrucción de la memoria SD
datoMemoriaSD = leerISD(dirMemoriaSD+1); //lee dato de la instrucciones anterior, en caso de ser necesario
//en caso de ser necesario se tendría mas memoria para datos
switch(instrMemoriaSD) //salta a la instrucciones y ejecuta con el dato
{
case 1:
wait_ms(datoMemoriaSD);
break;
case 2:
case 3:
.
.
.
.
.
.
case n
}
o se podría utilizar punteros a funciones pero no se que tan factible sea con el uC.
-
La mejor opción es el bootloader modificado, en rendimiento y en cantidad de memoria usada.
Un saludo
-
Hola!
interesante tema.
¿No podrian usarse DOS pics y la SD?
Algo asi: el PIC principal recibiria el programa desde la tarjeta SD mediante el segundo pic (uno pequeñito) que haria las veces de...."programador a medida", un grabador de pics que solo funcionaria en ese circuito. De esa forma, al meter la tarjeta y presionar un pulsador, el PIC auxiliar grabaria al otro. No agregaria demasiado costo, y el PIC principal funcionaria con el 100% de su memoria dedicada al proyecto.
¿Puede ser? O es complicar la cosa... :?
-
Es muy buena idea Ariel y creo que es perfectamente factible, la única pega que tiene es que hay que conocer el protocolo de grabación al dedillo.
Un saludo
-
Es muy buena idea Ariel y creo que es perfectamente factible, la única pega que tiene es que hay que conocer el protocolo de grabación al dedillo.
Un saludo
Eso por descontado. Pero, quizas al tener que funcinar con solo un modelo de micro, no sea TAN complicado. :)
Saludos!
-
La verdad es que es muy interesante eso de utilizar una tarjeta Sd para cargar programas, sobre todo para los que tenemos portatil, además de que seguramente el hardware sería más sencillo que el de un programador Usb, ¿no?.
-
El basic stamp es muy popular y costoso, tiene un excelente rendimiento,
Viejo desde 1990 esta en el mercado, con el PIC16f84, es un interprete de basic, tiene que ser bueno para estar este tiempo en el mercado.
hagamos un interprete basic opensource, no clon del BasicStamp