¿Cómo grabar un PIC desde otro PIC?

Bueno se que mi pregunta suena absurda.
pero lo que pasa es lo siguiente:

tengo un que reparar unos modulos que debo desoldar de la placa agarrar un grabador de pics y volver a grabar, esos modulos no son mios ni diseño es mio pero es una falla comun en unos coches de marca no muy conocida.
generalmente debo regrabar 2 modulos y es una falla algo comun.

el programa que le meto es pequeño son apenas algunas lineas de codigo se me ocurrio que pudiera caber en un PIC y usarlo de maestro y el esclavo el que se va a reescribir.

pero no tengo idea de como hacer un pic que grabe un programa.
como un virus que se copia a si mismo pero en un pic que meta el programa a dentro de otro pic.

las terminales se que son PGD PGC y VPP

¿solo seria enviar la data como si fuese SPI mientras mantengo activo VPP?
es un fastidio desoldar sacar la laptop conectar el grabador y grabar esos modulos. ...
 
No es tanto SPI por que el comando va y responde por el mismo pin (PGD), aparte debe haber un pequeño delay entre el reloj del comando y el del dato. El procedimiento varia según el PIC, tendrás que leerte la documentación de Microchip sobre el ICSP.
 

D@rkbytes

Moderador
Para mi es más fácil usar el PICkit 3 en el modo To-Go
Le grabas el programa y después puedes llevarlo a cualquier parte, sin necesidad de Laptop o PC.
El proceso de grabación es obviamente ICSP, pero independiente.
Únicamente necesitas un Battery Power Bank para celular, y listo.

En éste vídeo se muestra el funcionamiento del PICkit 3, usando la función To-Go
 
El PICKit2 también tiene la función, pero a las copias normalmente le omiten las memorias 24LC512, quizá si le agregamos alguna memoria la reconozca.
 
Se puede si amplias la memoria del pickit 2 pero por el precio que tiene comprarte los 24lc1025 y el trabajo de sustituir los 24lc512 del pickit 2 te sale mas a cuenta comprar directamente el pickit 3.
Yo uso un clon del pickit 3 comprado en aliexpress que me costó 9€ y va igual que el pickit 3 original, porque los he probado los 2 con todos los pics que admite y hacen lo mismo.
Solo que no lleva el cd de microchip pero eso no es problema, te lo bajas de cualquier lado.
 
bueno las sugerencias son buenas pero dista un poco de lo que quiero hacer.

¿función?
simple, son un modulo con relevadores, de ahí entra un arnes que va de la botonera de elevadores de vidrios y alarma a los relevadores, de los relevadores a los motores de los vidrios y a los actuadores de las puertas.

normalmente se les borra el programa, se daña aveces un circuito cuya funcion desconosco y traen adentro un pic de la familia 12.

la falla es que el vidrio sube y baja pero no sube del todo o no baja del todo pisas subir y sube 2 o 4cm y se queda atascado y debes sacar la llave para volver a subir unos 4cm.

suena buena la idea del pickit3,2 pero en el taller todo toman prestado y todo se pierde no pienso perder un pickit por eso siempre ando cargando un grabador en el coche para que no me lo tomen prestado pero se que un dia se va a perder.

asi que se me ocurrio hacer un grabador de pic con un pic, aun desconosco mucho del protocolo, pense que alguien me pudiera iluminar el cerebro.
 
bueno las sugerencias son buenas pero dista un poco de lo que quiero hacer.

¿función?
simple, son un modulo con relevadores, de ahí entra un arnes que va de la botonera de elevadores de vidrios y alarma a los relevadores, de los relevadores a los motores de los vidrios y a los actuadores de las puertas.

normalmente se les borra el programa, se daña aveces un circuito cuya funcion desconosco y traen adentro un pic de la familia 12.

la falla es que el vidrio sube y baja pero no sube del todo o no baja del todo pisas subir y sube 2 o 4cm y se queda atascado y debes sacar la llave para volver a subir unos 4cm.

suena buena la idea del pickit3,2 pero en el taller todo toman prestado y todo se pierde no pienso perder un pickit por eso siempre ando cargando un grabador en el coche para que no me lo tomen prestado pero se que un dia se va a perder.

asi que se me ocurrio hacer un grabador de pic con un pic, aun desconosco mucho del protocolo, pense que alguien me pudiera iluminar el cerebro.
EL programa se daña porque en los fuses no tienes la funcion protect activada o porque le llega demasiado voltaje al pic por las patillas que hace que entre en modo grabacion en algun instante y se borra parte del programa, yo de ti revisaria el regulador que lo alimenta y los capacitores que tiene ese circuito.
Porque no es normal que se borre parte del programa, si funciona pero se para sin finalizar su funcion eso es que el programa se corrompe por algun motivo electrico, eso es por un fallo electrico en alguna parte del circuito que casi seguro fuerza al pic a que entre en modo grabacion y te daña parte del programa.

Grabar el pic de nuevo no te lo va a solucionar.
 
Última edición:

D@rkbytes

Moderador
Saludos. Como ya está este tema, dejo por aquí mi aporte.

Trata sobre la consulta inicial del tema. Es programador autónomo (Standalone) que usa un PIC para grabar otro PIC.
En sí eso hacen la mayoría de programadores, pero requieren una interfaz de PC.
Este sencillo programador usa un PIC12F683 y puede grabar a otros PIC del tipo 12F629/675 y 16F630/676
Estos PIC tienen una memoria flash de 1024 bytes y una EEPROM interna de 128 bytes.
Por lo tanto, opté por usar como almacenamiento una memoria I2C 24LC16 (2000 bytes)
Esto es porque este programador también graba los datos para la EEPROM, si es que el usuario opta por incorporarlos en su programa.

La programación se realiza usando ICSP (5 cables: PGC, PGD, MCLR/Vpp, VDD y GND)

Como lo que más comúnmente se obtiene después de compilar un programa es un archivo (Intel) HEX, se requiere convertir esos datos a binario (ASCII) y con esos datos grabar la memoria 24LC16
Así que también realicé un convertidor de (Intel) HEX a binario, el cual también incluyo.
La memoria I2C la pueden grabar con cualquier programa clásico, pero recomiendo usar el CH341A

Instrucciones:
Grabar la memoria 24LC16 con los datos convertidos del archivo .hex
Realizar la conexión ICSP de la tarjeta hacia el PIC a grabar.
Presionar el botón "RUN" y esperar unos 3 segundos.
Este tiempo es porque incluí una serie de destellos de un LED.
Si la grabación es correcta se notarán varios destellos rápidos a intervalos irregulares. (17 en total)
La programación finaliza con 5 destellos a intervalos de 250 mS.
Si el PIC a programar no es válido, se verán 3 destellos con un intervalo de 1 segundo.
Si la programación falla, se verán 5 destellos con un intervalo de 500 mS.

Bien, espero que sea de utilidad.
 

Adjuntos

  • ICSP Standalone PIC Programmer.rar
    317.9 KB · Visitas: 17
Arriba