Autor Tema: Programación PIC12F629  (Leído 3682 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado XTOPIC

  • PIC10
  • *
  • Mensajes: 17
Programación PIC12F629
« en: 18 de Abril de 2016, 20:33:49 »
Hola a todos.
Estoy intentando - sin exito - de programar un PIC12F629.
Les cuento, tengo un programador QUARK-PRO 2 con el que he programado un montón de PIC16F84 y 16F73 sin ningún problema. Uso tanto el WINPIC800 como el IC_PROG y con los dos puedo leer el PIC12F629 pero ni modo de programarlo.
REepeto el OSCAL y el bangap del chip parece que escribe el programa y cuando verifica dice que la primera dirección ya está mal . El WINPIC trata de escribir 2805 y lee como escrito 0x3FAF. Si leo el chip ahora me da que en esa dirección hay 3FFF.
Con el IC-PROG se toma un poco màs de tiempo y aparentemente verifica bien el programa pero cuando verifica Datos
dice que la verificación falla en 0x0000. Si leo el chip me dice que todo está en 0000
El programador anda bien, de hecho pongo un 16F84 y lo programa sin problemas.
No hay nada raro en el programa (prende y apaga un LED  :D )
No sé , ya estoy perdido y acudo a la ayuda de alguien que haya pasado por esto.
Gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Programación PIC12F629
« Respuesta #1 en: 18 de Abril de 2016, 22:41:41 »
Yo no te podria ayudar sobre los programadores lamentablemente, ya que lo unico que poseo es un clon de Pickit2. Pero si queres puedo ver el programa por si crees que es eso.

Pero hasta ahora por lo que comentas parece ser problema del programador.

Desconectado XTOPIC

  • PIC10
  • *
  • Mensajes: 17
Re:Programación PIC12F629
« Respuesta #2 en: 19 de Abril de 2016, 20:51:03 »
Gracias KILLERJC por tu respuesta.
Ante todo quiero darte un consejo: no pongas Code protect en el programa si al grabar el chip quieres verificarlo  :D :-)
Eso fue lo que hice y por eso me daba siempre error. Nunca había usado antes este Config .... pero bueno .... algunas cosas se aprenden con los errores.
Aprovecho que sabes del  12F629 para preguntarte algo:
el chip viene con un valor de calibración para el OSCAL en la posición 3ff, con ese valor se supone que oscila en 4 MHz.
La pregunta es: cuál es la variación del valor de oscilación con el rango de valores posibles?
Según la Datasheet los valores posibles de OSCAL van desde FC hasta 00.
Tienes alguna idea de esto?
Gracias de nuevo por tu respuesta ya que sirvió para seguir intentando hasta entender donde estaba el error.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Programación PIC12F629
« Respuesta #3 en: 19 de Abril de 2016, 21:42:22 »
Antes que nada no pense que lo habias grabado con eso... Se que cuando lo lees y esta protegido contra lectura lees 0x00, lo pense, pero como luego dijiste que habias probado otro programa y el error era "distinto" supuse que era otro problema.

Respecto de OSCCAL son 6 bits, justificados a la izquierda.. es decir que va desde 0000 0000 a 1111 1100 , si lo queres ver en decimal, son multiplos de 4. ( 4/8/12/16/etc)
Comienza en el punto central que es 1000 0000, y podes ir para ambos lados. de 1000 0000 a 1111 1100 aumenta la frecuencia y para el otro lado disminuye.

¿Cuanto varia? No se decirte, no esta dicho en el datasheet. Lo unico que aparece en el datasheet es la variacion de la frecuencia ( maximos y minimos) segun Vdd, pero no cuanto es la variacion que provee OSCCAL

¿ Pero queres saber alguna curiosidad ?
Microchip pre-programa los PIC y deja el valor con un RETLW xx en la ultima posicion de memoria flash ( es decir deja los 8 bits que van en el OSCCAL ), de esa forma vos podes llamar a esa posicion de memoria y obtener el valor para que el oscilador quede calibrado ( medido por microchip) PERO si grabaste ( mejor dicho, borraste ) esa area, el dato desaparece, ya que supuestamente lo que dice el datasheet que es deber de la persona el mantener ese valor . Y vas a tener que buscar vos el valor de calibracion necesario.

El tema es que para calibrarlo, vas a necesitar de un reloj (preciso) que entre por el timer por ejemplo, asi cuando pasen dale 10 pulsos del oscilador externo, te tiene que dar el valor exacto de pulsos del reloj interno, y ahi vas a saber que esta calibrado :P.

O podes ir variando OSCCAL y medirlo desde el exterior, pero no creo que midas con tanta precision de esa forma.