TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Circuito en 26 de Junio de 2015, 19:53:52
-
Buenas,
Estoy tratando de hacer un programador ICSP portátil. Algo pequeño como para poder enviarle una actualización de software a un cliente, por ej.
Estuve investigando un poco sobre el protocolo ICSP, pero no me queda muy claro como implementarlo en un PIC.
Estaba pensando usar algo como el 16f628, un MC34063 para generar los 12v y almacenar el código a grabar en una memoria externa.
Si alguien tiene alguna información al respecto, o ya hay un proyecto o producto terminado, le agradeceré compartirla.
Muchas Gracias
-
Te saldrá más barato y será más profesional montar un bootloader y usar un micro con un poco más de capacidad, para almacenar el bootloader y el firmware. Puedes cargar el firmware por USB-PC, USB pendrive, tarjeta SD, puerto Serie o Ethernet.
A poco que te lo trabajes, hasta puedes hacer el bootloader encriptado, para que no te puedan copiar el programa. La rutina de desencriptación es muy sencilla y ocupa muy poco.
-
yo no lo he hecho nunca pero un compañero de trabajo lo hizo y no le costo mucho trabajo, lo único que hay que tener un poco mas en cuenta es que los transistores deben ser bastante rapidos, ya que el protocolo necesita un tiempos rapidos, por lo demas no le llevo mas de un par de dias, osea que debe de ser bastante sencillo.
de todas maneras la solucion correcta a tu problema es lo que ha comentado planeta9999
un saludo.
-
Gracias por sus comentarios,
Si se que un Bootloader seria la mejor opción, pero los dispositivos a actualizar no cuentan con uno pre instalado. Por este motivo solo queda la opción del ICSP.
Habiendo dicho esto, insisto en la ayuda con el ICSP.
muchas gracias
-
Si se que un Bootloader seria la mejor opción, pero los dispositivos a actualizar no cuentan con uno pre instalado. Por este motivo solo queda la opción del ICSP.
Eso quiere decir que las placas ya estan realizadas, sino no le veo el por que no hacer un bootloader, y si estan realizadas implica que SI o SI deberian tener el circuito para que puedan ser programados por ICSP (aislacion, diodos, etc.), si no lo poseen no vas a poder hacerlo.
Tambien vas a tener que construir algo que eleve la tension a 13V desde la alimentacion que ya tenes para el MCLR
Tal ves esto te pueda ayudar:
In-Circuit Serial Programming™ (ICSP™) Guide
http://ww1.microchip.com/downloads/en/DeviceDoc/30277d.pdf
Ahi te explica bien segun el modelo y al final hay como un "ejemplo"
-
Recuerda lo que te he dicho, no vale cualquier transistor, no puedes poner un bc847 por ejemplo tienes que buscarte uno de conmutación rápida.
luego la programación es una chorradita, si solo va a cargar el programa por icsp puedes hacerlo con delay para que sea mas fácil aun, ya que ese protocolo tienes que mandar un dato, esperar mandar otro, etc. Y el uso de delay no va a afectar a la temporizacion del programa, ojo, esto solo si tu aparato va a servir de programador, si tiene que hacer mas cosas no uses los delay.los ICSP pueden variar un poco entre familias.
Un saludo
-
Hola juaperser1, seguro que un BC847 no funciona donde tu comentas? Mira que son capaces de conmutar a varias decenas de MHz.... Estas seguro que el circuito estaría bien diseñado?
Un saludo.
Atte. CARLOS.
-
No lo puedo asegurar al 100% porque no lo hice yo, pero mi compañero tuvo que buscar uno mas rápido porque con el 847 no iba, por lo visto el tiempo de subida o de bajada debía de ser muy rápido.
Pero no lo voy a asegurar porque no lo hice yo, aunque tampoco lo dudo mucho porque al final lo hizo funcionar, pero claro quizá es como comentas y es algún fallo de diseño, aunque era un circuito muy simple es difícil equivocarse
Un saludo
-
Lo raro es que veo que en el PDF de microchip usan
2N2222
2N3906
Y si lo comparo con el BC548 los tiempos tr/tf son un poco mas chicos a Ic=10mA pero cuando van cerca de los 30mA llegan a sus minimos. (de 30/65 (promedio de los 2 primeros) a 35/60 BC548)
Tambien el tiempo de almacenamiento es un poco mayor.(aca de 225 a 270ns )
Y eso para la tension, los demas no llevan ningun transistor... o no deberian.
-
Yo creo que la mejor opcion seria crear un clon del PICKit2 es muy sencillo de realizar y muy util.
Aqui un enlace entre muchos en la red.
http://www.elproducts.com/build-your-own-pickit-2.html
Saludos.
Elreypic.
-
Opino lo mismo que elreypic2, el PICkit2 ya tiene toda la lógica interna para ser un programador ICSP portátil. Nadamás necesitas proveer 5V al puerto USB, pero eso se logra fácilmente con baterías USB, como las de celular.
He leído poco pero creo que el PICkit3 también soporta el modo programador portátil.
https://microchip.wikidot.com/pickit3:programmer-to-go