Banner publicitario de PCBWay

[Aporte] Capacímetro Autorango con PIC16F628A

Hola Mcrven y don Lopes, buen día!!!. Cómo andan?. Se juntaron los amigos y maestros de la RF!!!. BUENISIMOOOO!!!

Creo que no me expresé bien.

Siempre empleo el IC Prog porque es el único programa que tengo. Lo que modifiqué fue el programa que grabé.
En primera instancia grabé el PIC con el .Hex del primer post, y como me aparecían cuadrados en el display, volví a revisar este hilo y D@rkbytes posteó el programa mejorado (post 48), pero ya no pude grabar nada, todo con el IC Prog.

Hice pruebas modificando los fuses, oscilador(aunque creo que el que tengo que usar es el XT), pero nada.
Llegué a pensar que estos .Hex no eran compatibles con el Windows XP, pero como "el que no sabe es como el que no ve", decidí consultar por las dudas.

Referido al RV2, si ya lo regulé y cuando logré el contraste Ok, pude visualizar los cuadrados!!!.
Revisé la PCB buscando cortos, pistas cortadas, siguiendo el circuito por si hubiera cometido algún error de ensamblado, pero no, está todo OK.

Por lo tanto y por Descartes, el drama está en el grabado del PIC ya que probé con otros PIC 0Km y sucedía lo mismo.
Veremos a ver que solución le encuentro.
Muchas gracias por todo!!!
Les envío un gran abrazo.
Cuídense!!!

C.B.
 
me aparece indefectiblemente el famoso error 0000h.
Creo recordar que ese error se debe a que en los fuses se agregó protección de código, y como seguramente el IC-Prog está configurado para realizar la verificación de escritura, al leer el PIC obtendrá 0x00 en la primer dirección y mostrará el error.
La solución para no perder la protección de código en el PIC, es deshabilitar la verificación de escritura.
 
Hola D@rkbytes, buen día.
Puede ser que el problema radique en la verificación durante la programación, voy a intentar grabar deshabilitando esa verificación y dejar solamente la posterior al grabado.

En relación a los fuses, por lo que pude leer sobre el programa, es conveniente deshabilitar el WDT, PWRT y el CP (código de protección) porque dicen que grabando con esos fuses habilitados se programa la función de protección y luego no se puede volver a programar el PIC.
Yo lo que realizo antes de grabar es modificar el oscilador a XT (porque el oscilador es de 4MHz), deshabilitar esos tres fuses y dejar solamente el fuse restante que me indicó el programa para ese PIC.

Ayer me dediqué a revisar el estado del grabador, conectores, cables, etc y todo estaba Ok.

Hoy voy a intentar hacer lo que has sugerido.
Muchas gracias por los "tips" y sobre todo por la gentileza de compartir sus conocimientos!!!.
Un abrazo par Ud y para todos los amigos del Foro.
Cuídese!!!.

C.B.
 
En relación a los fuses, por lo que pude leer sobre el programa, es conveniente deshabilitar el WDT, PWRT y el CP (código de protección) porque dicen que grabando con esos fuses habilitados se programa la función de protección y luego no se puede volver a programar el PIC.
No, eso es falso, cada fuse es independiente y no impedirá que el PIC pueda volver a ser grabado.
Si reprogramas un PIC que tiene un código con protección, es obvio que se perderá el programa anterior, pero se podrá grabar.
El WDT o Watch-dog Timer produce un reset cada cierto tiempo programado, si este no se resetea, sirve para salir de cuelgues inesperados.
El PWRTE o Power-on Timer Reset produce un reset cuando se estabiliza la tensión de alimentación, solo una vez cuando es conectado.
O sea, solo permite la ejecución del programa cuando la tensión de alimentación sea estable.
El CP o Code Protect protege la zona de código contra lectura, y en algunos PIC las zonas se pueden seleccionar.
El CPD o Code Protect Data, es igual al CP pero para la memoria EEPROM interna.
Si un PIC de las serie F (Flash) ya no se pudiera volver a grabar tras habilitar las protecciones, hubieran sido un verdadero fracaso.
Salvo una excepción, hay PIC que requieren de un método especial para poder volver a ser grabados, pero en el 16F628/A no es el caso.

Para tener un mejor conocimiento de los PIC, siempre les he dicho que lean la hoja de datos.
 
Hola amigos, buen día para todos.
Muy buenos los datos que aportas!!!.
De ser así como tú comentas, no habría problema alguno con grabar el PIC con los fuses que indica el programa cuando se abre el .Hex (incluídos el WDT, PWRT y CP), siempre cambiando el oscilador a XT.
Buenísimo los aportes, intentaré ver si puedo grabarlo y si todo sale OK, ver si el instrumento funciona.
Muchísimas gracias a todos por todo.
Cuídense.
Abrazos.

C.B.
 
Hola amigos, buen día para todos.
Muy buenos los datos que aportas!!!.
De ser así como tú comentas, no habría problema alguno con grabar el PIC con los fuses que indica el programa cuando se abre el .Hex (incluídos el WDT, PWRT y CP), siempre cambiando el oscilador a XT.
Buenísimo los aportes, intentaré ver si puedo grabarlo y si todo sale OK, ver si el instrumento funciona.
Muchísimas gracias a todos por todo.
Cuídense.
Abrazos.

C.B.
Hola a todos me parece que el error principal puede ser que modifica el fuse del oscilador a XT(Cristal de Cuarzo) cuando expresamente escribió en el mensaje 119 que armo la versión con el oscilador interno, ergo el fuse debe quedar en IntRC I/O(Oscilador Interno y los pines son Entradas/Salidas), lo único que sacaría personalmente es WD(ver segunda imagen adjunta).
capa.jpg

Capa1.jpg

A no ser que entre tantas idas y vueltas hubiera cambiado por la de cristal de cuarzo de 4MHz y yo no lo advertí.

Saludos.
 
Estimadísimos, buen día!!!

Les comento que ayer intenté grabar con los fuses que me indicaba el programa cuando se carga el archivo .Hex, y que solo verificara el IC-prog post grabación, según lo aconsejado por D@rkbytes. En realidad el programa indicaba que se iba grabando ok, pero cuando verificaba post grabado aparecía el mensaje de error 0000h. Ya sueño con ese cuadro de diálogo!!! ja, ja.

De igual modo intenté hacer arrancar el instrumento, pero los cuadrados seguían apareciendo en display, por lo que el PIC no se grabó.

Don mcrven, ¿cómo anda?. Gracias por su aporte. Ud sabe que por costumbre antes de hacer un nuevo intento, borro todo y verifico el blanco, por las dudas, ja, ja, pero está perro el PIC, y no crea que es el integrado, ya que me pasa lo mismo con otros PIC´s Okm que tengo.

Ya verifiqué la configuración del puerto, el ajuste del Hardware, el buffer para poder usar el XP, y todos los otros ajustes que hago cuando grabé lo otros PIC´s, todo ok, pero insiste en marcarme error!!!. En fin, ahora lo voy a dejar por unos días y con mente un poco más fría voy a intentar arrancar nuevamente de cero y ver en que le estoy errando.

Don ricbevi, tanto tiempo!!!. Cómo anda?. Gracias por su sugerencia. Voy a intentar la manera que Ud sugiere y veré como se comporta el "muchacho".
Yo ponía oscilador XT porque un documento que leí decía que ese era el ajuste para un oscilador de 4MHz que es el que tiene internamente el PIC, pero no está demás intentarlo. Veremos.

Les agradezco a todos por sus sugerencias e interés por darme una mano.
No quiero quitarles más tiempo y les envío a Uds y familias un abrazo.
Cuídense.

C.B.
 
Estimadísimos, buen día!!!

Les comento que ayer intenté grabar con los fuses que me indicaba el programa cuando se carga el archivo .Hex, y que solo verificara el IC-prog post grabación, según lo aconsejado por D@rkbytes. En realidad el programa indicaba que se iba grabando ok, pero cuando verificaba post grabado aparecía el mensaje de error 0000h. Ya sueño con ese cuadro de diálogo!!! ja, ja.

De igual modo intenté hacer arrancar el instrumento, pero los cuadrados seguían apareciendo en display, por lo que el PIC no se grabó.

Don mcrven, ¿cómo anda?. Gracias por su aporte. Ud sabe que por costumbre antes de hacer un nuevo intento, borro todo y verifico el blanco, por las dudas, ja, ja, pero está perro el PIC, y no crea que es el integrado, ya que me pasa lo mismo con otros PIC´s Okm que tengo.

Ya verifiqué la configuración del puerto, el ajuste del Hardware, el buffer para poder usar el XP, y todos los otros ajustes que hago cuando grabé lo otros PIC´s, todo ok, pero insiste en marcarme error!!!. En fin, ahora lo voy a dejar por unos días y con mente un poco más fría voy a intentar arrancar nuevamente de cero y ver en que le estoy errando.

Don ricbevi, tanto tiempo!!!. Cómo anda?. Gracias por su sugerencia. Voy a intentar la manera que Ud sugiere y veré como se comporta el "muchacho".
Yo ponía oscilador XT porque un documento que leí decía que ese era el ajuste para un oscilador de 4MHz que es el que tiene internamente el PIC, pero no está demás intentarlo. Veremos.

Les agradezco a todos por sus sugerencias e interés por darme una mano.
No quiero quitarles más tiempo y les envío a Uds y familias un abrazo.
Cuídense.

C.B.
Muy bien Charlie, siempre estoy detrás del ojo de la cerradura aunque no se note, a menos que llame el del otro lado :).

La opción XT es para osciladores externos de hasta 4Mhz si se usa de mas frecuencia hay que seleccionar HS. Si el oscilador usado es el interno de 4MHz, hay que usar "IntRC xxx" con la variante que corresponda en cuanto a las opciones de usar los pines como salida/entrada o salida de reloj, etc.
El oscilador interno es a RC(resistencia condensador), no de cuarzo y en este modelo es fijo de 4MHz aproximadamente en cambio en otros se puede seleccionar entre una tabla de valores finales pre definidos, etc.

Ya te han indicado que mientras el fusible CP este seleccionado(tilde colocado como esta por defecto en el archivo subido) como opción de programación te dará dicho error de verificación debido a la imposibilidad de acceder por parte del mismo a la zona de datos una vez programado.

Modifica los fusibles como los he subido en la imagen de mi anterior intervención que así no te dará error y podras verificarlo y descartar la idea de que el PIC no se programo; si el duende de los cuadraditos de primera línea esta distraído, te funcionara :) .
 
Hola ricbevi y Don Lopes, buenas tardes.
Siempre es bueno "mirar escondido y ver lo que puede pasar" Ja, ja.

QSL a lo del oscilador y a lo del fuse CP. Le comento que ahora en la tarde intenté grabar de esa forma y con los fuses activados como Ud me sugirió, resultado, Error.

Ya un poco "molesto", por decirlo más elegantemente, con el 0000h, decidí instalar el Winpic para ver si ahí estaba la"madre del borrego", resultado Error, pero este programa me indicó dónde estaría el error:

A) para el programa del post 48 : Error de Verificación en dirección 0X000000.
Verificado 0X3003 Leído 0X3FFF.

B) Para el programa del primer post: Error de Verificación en Dirección 0X000000.
Verificado 0X2BF, Leído 0X3FFF.

Por el momento voy a tener que dejar de seguir probando ya que me tengo que ausentar unos días por razones laborables, pero apenas regrese, seguiré intentando.

Estimo que el Error es del operador y no del programa!!! Ja, ja.
Muchas gracias a por todos por todas sus ayudas.
Cuídense.
Abrazos.

C.B.
 
Hola ricbevi y Don Lopes, buenas tardes.
Siempre es bueno "mirar escondido y ver lo que puede pasar" Ja, ja.

QSL a lo del oscilador y a lo del fuse CP. Le comento que ahora en la tarde intenté grabar de esa forma y con los fuses activados como Ud me sugirió, resultado, Error.

Ya un poco "molesto", por decirlo más elegantemente, con el 0000h, decidí instalar el Winpic para ver si ahí estaba la"madre del borrego", resultado Error, pero este programa me indicó dónde estaría el error:

A) para el programa del post 48 : Error de Verificación en dirección 0X000000.
Verificado 0X3003 Leído 0X3FFF.

B) Para el programa del primer post: Error de Verificación en Dirección 0X000000.
Verificado 0X2BF, Leído 0X3FFF.

Por el momento voy a tener que dejar de seguir probando ya que me tengo que ausentar unos días por razones laborables, pero apenas regrese, seguiré intentando.

Estimo que el Error es del operador y no del programa!!! Ja, ja.
Muchas gracias a por todos por todas sus ayudas.
Cuídense.
Abrazos.

C.B.
Ese error puede ser debido a cualquier cosa como el fusible CP, la falta de conexión con el programador, driver(si lo llevara), PIC quemado, etc. Lo único que esta mostrando es que en la primer dirección 0X000000 que intento el software guardar el dato 0Xxxxxx leyó al verificar 0Xyyyyyy y como son distintos valores, no prosiguió.

En lo personal hace años que no uso ese programa/programador porque tengo uno USB que arme hace años clon del PicKit2 de Microchip y es mucho mas rápido, confiable y sin tantas "ñañas".

Vas a tener que armarte de mas paciencia y de a poco ir descartando cosas por las cuales no te funciona, empezando por lo mas básico como las conexiones al puerto serie o paralelo según tu uses, el tipo de programador seleccionado en el software, etc.
 
Hola amigos, buenas tardes,
Ok, muy buena su explicación del error. Si ya me imaginaba que puede ser por variadas razones, ya que el amigo Cuenca en uno de sus posteos en otro hilo, explicaba este tipo de error.
Cuando regrese y tenga más tiempo, voy a dedicarle más atención a todo lo que rodea al proceso de grabado, comenzando con el programador e ir descartando cosas como Ud. dice.
MUCAS GRACIAS amigos por sus aportes y sobre todo por la paciencia para explicar los conceptos.
Les enviío a todos los amigos un gran abrazo.
Cuídense.

C.B.
 
Buen día a los amigos del Foro.
Espero que hayan pasado Uds y famílias una Feliz Pascua!!!.

He vuelto al ruedo y ayer me dediqué a revisar el estado de los componentes, conexionado, polaridades de los diodos y estado de las pistas del programador. Todo Ok, incluso corroboré la concordancia de la plaqueta con el circuito.

Leyendo un poco antes de seguir haciendo las cosas como no se deben, el documento decía que para programar un PIC 16F628A con un JDM, era necesario poner a tierra la pata 10 del integrado (RB4).

Mi consulta, antes de hacer nada, es ésto verídico?, ya que de ser así, mi programador no conecta esa pata a tierra y quizás por ahí provenga el problema.
Les adjunto el circuito del programador que armé , aunque que con él conseguí grabar ya otros PIC´s.

Mientras tanto voy a proseguir leyendo una guía para el uso ICProg.
Abrazo para todos.

C.B.
 

Adjuntos

  • Gravadora de pic esquema.jpg
    Gravadora de pic esquema.jpg
    87.3 KB · Visitas: 11
Leyendo un poco antes de seguir haciendo las cosas como no se deben, el documento decía que para programar un PIC 16F628A con un JDM, era necesario poner a tierra la pata 10 del integrado (RB4).

Mi consulta, antes de hacer nada, es ésto verídico?, ya que de ser así, mi programador no conecta esa pata a tierra y quizás por ahí provenga el problema.
¿Cuál documento?
El pin RB4, aparte de ser I/O + PGM (Program Mode Select), sirve para determinar el modo de programación, pero se conecta al programador (PICkit2/3, etc.).
El JDM solo puede programar a alto voltaje (+-13V) y los obtiene por medio de una combinación de diodos.
Cuando yo usaba el JDM, jamás conectaba el pin RB4 a tierra porque sería irrelevante, aparte esto involucra configurar el fuse LVP.

Espero que estés usando un puerto serie físico, porque de otra forma, el JDM no funciona.
Comprueba que en el pin RA5 (MCLR/Vpp) se obtenga una tensión >12V al momento de iniciar la programación.
 
era necesario poner a tierra la pata 10 del integrado (RB4).
Para usar ese pin para programar, primero debes configurar el bit necesario a 1 (página 14.1 del datasheet).

Ese pin sirve para cuando configuras el bit LVP (Low Voltage Programming, Programación a Bajo Voltaje), esté en 1, puedas poner ese pin a 1, y ahí programar con 5V, en vez de usar lo clásico que es 13V en el pin de reset (en este caso el pin 4, RA5/MCLR).

A todo esto, siempre primero debes programar con alto voltaje (13V), sino no se puede.

Yo había armado para el puerto serie físico un circuito similar al tuyo, para programar un PIC18F2550, y así hice un programador USB que funciona excelente.

Si encuentro en Archive.org la página, la comparto, ya que no existe más...
 
Buen día a los amigos del Foro.
Espero que hayan pasado Uds y famílias una Feliz Pascua!!!.

He vuelto al ruedo y ayer me dediqué a revisar el estado de los componentes, conexionado, polaridades de los diodos y estado de las pistas del programador. Todo Ok, incluso corroboré la concordancia de la plaqueta con el circuito.

Leyendo un poco antes de seguir haciendo las cosas como no se deben, el documento decía que para programar un PIC 16F628A con un JDM, era necesario poner a tierra la pata 10 del integrado (RB4).

Mi consulta, antes de hacer nada, es ésto verídico?, ya que de ser así, mi programador no conecta esa pata a tierra y quizás por ahí provenga el problema.
Les adjunto el circuito del programador que armé , aunque que con él conseguí grabar ya otros PIC´s.

Mientras tanto voy a proseguir leyendo una guía para el uso ICProg.
Abrazo para todos.

C.B.
En la propia pagina del IC Program en los programadores soportados se encuentra esto en el JDM

Jdm.jpg

Las conexiones deben ser cortas en cuanto a que deben estar cerca del conector de salida/entrada a la PC.

Como te adelantaron el puerto debe ser RS232 físico y no adaptador USB/RS232.

Le agregue los números de los pines que corresponden a el conector DB9 porque originalmente figuraban al DB25 de los antiguos RS232.

No en todas las PC funciona debido a que genera los 13V a partir del propio puerto y depende de la potencia que tenga el chip que lo gestiona.
 
Yo tengo el programador JDM por ahi, dejame lo busco y te corroboro el esquematico.
Un error que me sucedia mucho al usar IC Prog es que borra el valor por defecto del reloj de fabrica del microcontrolador, antes de programarlo o borrarlo SI O SI debes guardar el valor de configuracion del reloj interno(yo solia escribirlo en una etiqueta pequeña y pegarlo debajo del microcontrlador) ,ya que si se borra y al querer programarlo el programa rellena el valor por su cuenta y probablemente no vuelva a funcionar, yo los recuperaba reprogramandolos con un programador de Pick It y recuperaban su valor original, tambien como te comentan el puerto debe ser un puerto dedicado en la motherboard ,adaptadores usb no funcionan en este caso.
 
Un error que me sucedía mucho al usar IC Prog es que borra el valor por defecto del reloj de fabrica del microcontrolador, antes de programarlo o borrarlo SI O SI debes guardar el valor de configuración del reloj interno(yo solía escribirlo en una etiqueta pequeña y pegarlo debajo del microcontrolador)
Eso no debe ni puede pasar en el PIC16F628A, solo en los PIC12F629, 12F675, y otros que permitan la calibración del oscilador interno.
Menciono esto para que no ocurran confusiones.
 
Buen día amigos!!!
Perdón por no haber contestado antes, pero ayer tuvimos un problema con la "red de redes" y cuando pude ingresar, ya era tarde!!!
MUCHAS GRACIAS por todos sus aportes!!!.

D@rkbytes, sí, utilizo el puerto serie que trae mi PC para conectar el DB9, y entendido al concepto, en un JDM el pin 10 no se conecta a tierra. Lo que voy a volver al chequear el el voltaje de grabación en el pin 4, para estar seguro que todo está OK.

DJ T3, gracias por complementar el concepto, si este programador que armé tendría que grabar con alto voltaje, por esa razón y para evitarme inconvenientes, armé este circuito con fuente auxiliar para no complicarme la vida y depender del voltaje que entrega el puerto. Les comento que con este JDM ya programé 5 o 6 PIC´s, pero ahora se "emperró" y no hay forma de programar!!!.

Ricbevi, gracias por el circuito, le comento que el otro día pensé armar ese circuito, aunque más no sea para tener otro elemento de prueba, pero es como le comentaba a DJ T3 , tengo miedo de no lograr el voltaje de grabación.

DownBabylon, el tema del oscilador interno (como es el caso que he implementado), por lo que entendí, es un oscilador RC, y debe ser grabado con esa configuración (IntRC I/O), pero le comento que ya antes, había experimentado con otros osciladores y pasó lo mismo.

Lo que me desorienta es que no puedo comenzar a grabar ya que apenas le doy el comando de "grabar todo", ni siquiera comienza el proceso de grabado y aparece el cuadro de error.

En fin, voy a seguir intentando y sin duda en algún momento va a salir.
Gracias a todos por todo!!!.
Les envío a todos un gran abrazo.

C.B.
 
A ver @Charlie Brown, te sugiero revises muy bien los conectores, tanto de la PC, como del programador, zócate del pic, etc.

Lo otro es probar con otro programa. Te sugiero PonyProg, es gratuito, simple y funcional.

Y... que se me olvidaba... chequea la fuente de 15V, no vaya ser que se alteró algo allí.
 
Atrás
Arriba