Autor Tema: TE20 12f629 OSCAL 3FFF  (Leído 4195 veces)

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

Desconectado xabier98

  • PIC10
  • *
  • Mensajes: 2
TE20 12f629 OSCAL 3FFF
« en: 28 de Octubre de 2010, 16:28:02 »
Antes de nada hola a todos y gracias en especial a esteca por los planos de la cnc.

Tengo unos conocimientos muy básicos de electrónica.
He comprado un grabador TE20X y un 12f629 para ponerlo en la interfaz que he construido con los planos de esteca
Este es el TE20 con el PIC 12f629 en la posicion que creo que hay que poner

Ademas tambien compre un APOLO V

Cuando le di a leer el PIC la primera vez me fije en la ultima posición el OSCAL (lo había leído por varios sitios) tenia 3448
Ahora siempre me sale 3FFF lo que creo que no es muy bueno pero no se.
Cuando intento grabar el Firmware 12f629 10s - 30s.HEX con el WinPIC800 tiene en la ultima posición 343C
Me pregunta esto

y luego

Finalmente me da ERROR -> De escritura en direccion 0x0003FF
Escrito 0<343C Leido 0x3FAF
Si verifico me da el mismo error

¿Que estoy haciendo mal?
¿He estropeado el PIC?

PD Disculpas por el tamaño de las imagenes
« Última modificación: 28 de Octubre de 2010, 16:37:16 por xabier98 »

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: TE20 12f629 OSCAL 3FFF
« Respuesta #1 en: 29 de Octubre de 2010, 14:48:03 »
Tambien he tenido el mismo problema que tu con los pics de 8 pines, pero me compre un grabador USB PICKIT2 y los graba son problemas.

saludos
control de movimiento

Desconectado martincnc

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 352
Re: TE20 12f629 OSCAL 3FFF
« Respuesta #2 en: 01 de Noviembre de 2010, 02:16:47 »
Hola xabier98.

Por lo que tengo entendido, OSCCAL es un valor que sirve para la calibración del oscilador interno, el cual esta almacenado en la ultima posicion de la memoria de programa, este viene escrito en el micro desde el momento en que es fabricado, al igual que el valor de calibración de "bandgap" o tensión interna de referencia. La modificación de estos valores supone una perdida en la precisión de ambos circuitos, es por esto que deben anotarse estos valores antes de grabar o borrar el micro por primera vez.

Ademas cabe mencionar que los "buenos" programadores como el de Renatox_ (PICKit2 de Microchip) almacenan temporalmente estos valores y los graban nuevamente evitando asi que se pierdan, por lo que en este caso no hay de que preocuparse.

Para mas información te dejo la Hoja de datos del PIC16F629/675 y un par de citas extraidas de la misma donde se menciona lo que digo anteriormente.

Cita de: pagina 54 de [url=http://ww1.microchip.com/downloads/en/devicedoc/41190c.pdf
Hoja de datos del PIC16F629/675[/url]]

The Bandgap Calibration bits are factory programmed and must be read and saved prior to erasing the device as specified in the PIC12F629/675 Programming Specification. These bits are reflected in an export of the configuration word. Microchip Development Tools maintain all calibration bits to factory settings.

Cita de: pagina 59 de [url=http://ww1.microchip.com/downloads/en/devicedoc/41190c.pdf
Hoja de datos del PIC16F629/675[/url]]
9.2.5.1 Calibrating the Internal Oscillator

A calibration instruction is programmed into the last location of program memory. This instruction is a RETLW XX, where the literal is the calibration value. The literal is placed in the OSCCAL register to set the calibration of the internal oscillator. Example 9-1 demonstrates how to calibrate the internal oscillator. For best operation, decouple (with capacitance) VDD and VSS as close to the device as possible.

Note: Erasing the device will also erase the preprogrammed internal calibration value for the internal oscillator. The calibration value must be saved prior to erasing part as specified in the PIC12F629/675 Programming specification. Microchip Development Tools maintain all calibration bits to factory settings.

bsf         STATUS, RP0 ;Bank 1
call        3FFh ;Get the cal value
movwf   OSCCAL ;Calibrate
bcf         STATUS, RP0 ;Bank 0


Saludos!