Solución al error de verificación 0000H en el ICPROG

Andres Cuenca

Moderador general
Este error es muy común cuando se utiliza un programador JDM como el TE-20 o compatibles, y una versión inferior a la 1.02 del ICPROG (aunque puede pasar con versiones mas recientes).

Lo mejor es descargar la ultima versión (ya va por la 1.05D)

Este es el enlace:
http://www.ic-prog.com/download.html

Sin importar la versión que se utilice, los pasos correctos para programar son los siguientes:

1- Compruebe que solo hay un elemento a programar, en el zócalo correspondiente, es decir el PIC 16F84 ó la EEPROM (24LC16B o 24WC16P). Los Chip no pueden programarse los dos al mismo tiempo, y solo puede haber uno en el zócalo.

2- Compruebe que el PIC (16F84 o 16F84A) y la EEPROM (24LC16B ó 24WC16P) son los correctos, y han sido insertados con su muesca coincidiendo con la muesca del zócalo de programación, o la serigrafía de la placa.

3- Compruebe que ha sido seleccionado en el menú el elemento que está programando en ese momento, es decir si proceden a programar el PIC, el elemento seleccionado ha de ser el PIC 16F84 ó el 16F84A (El que corresponda).

Si quieren programar la EEPROM deben seleccionar 24C16 (Para la EEPROM 24LC16B ó 24WC16P)

Para seleccionar el dispositivo a programar deben entrar en el siguiente menú:
» Ajustes » Dispositivo » Microchip PIC » Mas » PIC16C84 para seleccionar el 16F84 ó 16F84A (El que corresponda)
» Ajustes » Dispositivo » I2C EPROMM » 24C16 para seleccionar el 24LC16B o 24WC16P

4- Para la programación solo del Microcontrolador, comprueben en la parte derecha de la pantalla los siguientes elementos:

El Watch Dog (WDT) debe estar desactivado, es decir sin marcar.
El Power Reset (PWRT) debe estar desactivado, es decir sin marcar.
El Code Proteccion (CP) debe estar desactivado, es decir sin marcar.
OSCILADOR en: RC (por regla general)
El OSCILADOR en algunos ordenadores funciona mejor en: XT

En esta parte hay que tener en cuenta que esto se puede configurar desde el archivo .asm antes de compilarlo:

Ejemplo:

list p=16F84A

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


5- Comprueben en el siguiente menú que el programa está bien configurado para el dispositivo que se va a utilizar.

» Ajustes » Tipo de Hardware

* En programador debe estar seleccionado JDM programmer
* En puertos debe estar seleccionado el puerto Com donde se encuentre conectado el programador, si nos da error (0001H) y no estamos seguros a que puerto estamos conectados, cambiar a otro puerto.
* En interfaz Direct I/O
* En comunicación solo debe estar seleccionado invertir VCC

6- Antes de grabar el PIC hay que borrar cualquier información que pudiera contener este, seleccionando: » Comando » Borrar todo
Despues si se quiere comprobar se puede pinchar: » Comando » verificar blanco.

7- Al programar el PIC 16F84 ó 16F84A, comprueben que el programa cargado y que se pretende programar en el integrado tiene la extensión Hex.

Comprueben que el programa es el correcto, si intentan programar los 2 Kbytes de la memoria en el PIC 16F84 o 16F84A (1 Kbyte), naturalmente se produce un mensaje de error, al poder cargar este solo 1 Kbytes.
También comprueben que para grabar la EEPROM (24LC16B ó 24WC16P) el programa cargado que se pretende programar tiene que tener la extensión Bin preferiblemente aunque también puede tener la extensión Hex.

Para grabar en el PIC o la EEPROM los archivos que se pretendan cargar
hay que pinchar en: » Archivo » Abrir, y buscar el Hex ó Bin que se pretenda cargar en el PIC o la EEPROM y seleccionarlo, después seleccionar » Comando » Programar todo.

8- El PIC y la EEPROM necesitan ser programados despacio, si su puerto esta configurado a mucha velocidad esto origina fallos de programa y verificación.

Para reducir la velocidad de su puerto siga la siguiente orden de mando con su ratón.

Pinche en : Mi PC » Panel de control » Sistema » Administrador de dispositivos » Puertos COM y LPT » Puertos de comunicación Com1 (ó Com2) » Configuración del puerto.

Comprueben que el puerto esté configurado de la siguiente manera:

Bits por segundo: 9600 (ó menos)
Bits de datos: 8
Paridad: Ninguna
Bits de paridad: 1
Control de flujo: Xon/Xoff

9- Si después de todos estos pasos el error persiste, es posible que si conectamos el TE-20 al ordenador con un cable de serie macho-hembra de 9 pins conexión pin a pin, este puede ser que este defectuoso o que sea demasiado largo para el voltaje que nos da el puerto de serie, por lo que se ha de volver a probar conectando el programador directamente al puerto de serie sin el cable alargador.

Espero que esta información sea de utilidad.
 
Hola
Primero de todo pedir perdon a los moderadores porque este tema es muy conocido y está el foro lleno de dudas, y también un tutorial muy bien hecho, pero esque lo he leido TODO y no hay manera de echar el PIC a correr :enfadado:

Estoy intentando programar unos PICs (16F873 y 16F84A), pero no hay manera.

Me salta el error de verifiación 0000h. Que puede estar pasando? Lo he mirado todo. Por favor alguien tiene una idea? :confused:
Pero ocurre que si uso la herramienta detectar dispositivo de winpic, ME LO DETECTA CORRECTAMENTE, pero no lo programa y me parece que tampoco lo lee correctamente.

Os digo lo que he comprobado yo :unsure:
-Primero, utilizo un grabador tipo JDM, que funciona perfectamente en otros ordenadores.
-Tensiones de todos los pines medidas, 5v y 11-12v en MCLR.
-He usado WinPIC 800 y IC-Prog
-Configuración puerto Serie 2400 bits por segundo (tambien algunas inferiores). Bits datos= 8 ; Paridad Ninguna; Bits de parada 1 (también he testeado en 2) ; control Flujo (Xon/Xoff)
-Los PICs estan en perfecto estado, porque tengo seis y los voy cambiando y solo me los detecta pero no programa ninguno
-El cable funciona también perfectamente, testeado con multímetro.
-Se encienden las lucecitas del programador :D
-PIC insertado correctamente en el zocalo, comprobado que cada señal corresponde con su patita.


No sé si me paso algo por alto
Si alguien se le ocurre una cosa, qualquier cosa que pueda estar fallando, por favor que me lo diga, se lo agradeceré, ya no se que hacer con esto.

Gracias
 
Ya verificaste que la longitud de tu cable hacia la PC sea lo mas corto posible ??? en muchas ocaciones esto produce algun tipo de disturbio en las señales enviadas y/o recibidas generando ese error, a mi me ocurrio en los inicios de mi experiencia con pics.
Verifica que realmente estas enviando los datos desde el PC hacia el pin correcto del pic y que los recibes en el pin correcto del PC
 
Si, ya he verificado los cables y todo ...
Solo se me ocurre una cosa, y es que el voltaje de MCLR es de 11 i pico voltios. He mirado el datasheet pero pone que para pin MCLR máximo 14v, minimo - 0.3 v, pero no pone a partir de cuando entra en modo programacion.

Y también, hay alguna manera de subir el voltaje que me entrega el puerto serie? (Con un MAX 232 por ejemplo?)

Lo que me extraña es que a veces me detecta el PIC y a veces no, y me lo lee mal, y no programa
 
Dicen que tiene que ser de unos 12V, pero en realidad he programado pics sin problemas a partir de 7V, por lo que me extraña un poco que con 11V no funcione... Mira que no estés usando el fuse LVP (debe estar desactivado) por si eso estuviera interfiriendo.

Lo más tonto de todo: ¿has probado lo mismo en otro ordenador? A veces los puertos serie hacen cosas raras, no sería mala prueba para descartar que sea tu ordenador...

Si quieres deja tu .hex adjuntado por aquí y trato de programar un 16F84A con un JDM en el Winpic800 para ver si lo caza... Por cierto cuando dices que configuraste el puerto a 2400 baudios y demás, ¿dónde lo hiciste? Al menos en el winpic no encuentro eso... (lo busqué para mirar cómo lo tenía yo)
 
A ver gracias por la ayuda.
Si, lo más probable es que sea el ordenador, pero no dispongo de ninguno mas y quiero hacer anda este.

Fuse LVP que quiere decir y donde está?

(Y para la configuracion del puerto, tienes que ir en el Panel De Control de Windows)
Buscar el administrador de dispositivos, nose donde esta, y una vez dentro buscas COM 1, propiedades.
Allí puedes editar configuración, los valores recomendados son (estan arriba):
9600 bits por segundo (o menos, yo llegue hasta 70 y pocos)
Bits de datos: 8
Paridad: Ninguna
Bits de paridad: 1 (o 2 tambien me funciona)
Control de flujo: Xon/Xoff
 
En la imagen que adjunto te muestro dónde está ese fuse en el Winpic800, debería quedar desmarcado. De todas formas me di cuenta que el 16f84 no lo tiene, luego no creo que sea eso, pero de todas formas míralo.

Lo del puerto serie no hace ninguna falta, creo que los programas ya configuran el puerto como lo necesiten... Imagino que lo que cambiaste afecta sólo a la configuración por defecto del puerto, pero luego es que cada programa ya lo mete a su manera.

Verifica que tu cable serie no esté cruzado, o sea que el pin 2 de un extremo vaya al 2 del otro, el 3 al 3, etc.

No se me ocurre mucho más, casi seguro que es el PC...
 
Algo mas, que sistema operativo estas usando, si mal no recuerdo para que el ICprog funcione en windows 2000, xp y demas guarradas, necesitas descargar un driver denominado NT/2000/XP y luego en las opciones de ICprog habilitar dicho driver de lo contrario el programa ICprog no puede acceder al uso de los puertos del PC.
Checalo y prueba.
Saludos
 
Bueno, esos son los fuses, veras qe abajo hay mas como CPD (code protect), averiguate que hacen, capaz que alguno es el que esta molestando.
El programa lo hiciste en ensamblador? si lo hiciste en C puedo ayudarte a cambiarlos.

Saludos
 
Yo tenia el mismo problema y la unica solucion que encontre fue armarme una programadora usb, desde ese dia mi vida cambio, arme la GTP-USB Lite que a continuacion dejo el link http://www.profesores.ucv.cl/juanvignolo/labsei/NotasTecnicas/GrabPic1/grabpic1.htm
Con esta programadora anda de diez con cualquier tipo de micro o memoria EEPROM.
La unica desventaja que tiene es que es manejada por un PIC18F2550 y en la ciudad en la que vivo no se consigue.

Espero haberles sido de ayuda.
 
Buenas compañeros,

Yo lo solucioné cambiando el cable de serie, me compré un Belkin 1.5m apantallado en el mediamarkt por 5 pavos y ale , voiláa , a la primera.

Probé con el cable serie que tenía cortándolo, para acortarlo en longitud y empalmando y nada de nada.

En fin cambié el cable, configuré el puerto serie a la velocidad de 4800bps , control de flujo xon/xoff y todo a la primera.

Uso un programador barato tipo JDM que compré por ebay.
 
Hola resulta que tengo el programador jdm plus, ya con el error corregido y todo , ese en el que la pata de uno de los capacitores debe ir a uno de los zener, resulta que al programar el pic 16f84, todo funciona correctamente se programa de 10, pero al querer programar el pic 16f876a me arroja el error verificacion fallo en la direccion 0000h, alguien me podria ayudar??? gracias de todas maneras...
 
QUe tal, yo tambien sufri con el mismo problema error al verificar, cambie los transistores de mi programador jmd y hasta los zener y ni asi, lo que hice fue desabilitar la opcion de verificar en las configuraciones del icprog para que no lo verifique, ya que los programa bien el unico problemaa era que no me podia verificar el icprog el programa en el pic pero ya eataba grabado mi pic y servia el programa, intentalo y espero te ayude mi experiencia.
 
Última edición por un moderador:
A mi lo que me falla es que ni siquiera le llegan los 13v de programación a Vpp. Voy a probar en otro ordenador a ver si es de mi puerto serie, porque las pistas y componentes ya los he revisado como 20 veces...
Bueno mi pic es un 16f88 pero en teoría debería ser igual de compatible
Saludos a todos.
 
yo utilizo un ludopipo de los mas sencillos.
La cuestion es que para el 16f876 y el 12f683, por ejemplo los tengo que grabar con el pic800, y el 16f84 o el 16f628 tengo que hacerlo con el ponyprog.
El ic prog no me funciona con ningun chip.
Si intento grabar el 16f84 con el pic800 me da error 0000h, y lo mismo si intento con el ponyprog para el 16f876.
Osea, que ya por sistema, cuando pruebo un nuevo chip, pruebo todo el soft que cae en mis manos antes de darlo por perdido.
 
Hola a todos.
Yo el problema que tengo, es que VPP y la alimentacion de 5v son muy inestables cuando esta programando, no las mantiene en sus valores 13v y 5v respectivamente. Alguno le ha encontrado solución a este problema?
Saludos
 
Yo tenia el mismo problema y la unica solucion que encontre fue armarme una programadora usb, desde ese dia mi vida cambio, arme la GTP-USB Lite [...]
Pues en mi caso, mi vida cambió en cuanto me compré ese programador, directamente lo compré ya ni quise intentar montarlo yo mismo (una porque ya he intentado hacer dos tipos de programadores y sin ningun éxito y ya me desmotivé :enfadado:, y otra porque ya lleva un PIC y no tengo ningun otro programador para programarlo :))
Saludos!:apreton:
 
Atrás
Arriba