Autor Tema: Calibrar el OSCCAL 12F629  (Leído 11057 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Calibrar el OSCCAL 12F629
« en: 09 de Septiembre de 2009, 16:39:02 »
 :)Hola y gracias por tomarse el tiempo de lee, tengo un 12F629 que al leerlo la calibracion de fabrica me dice "3434" o "44", pero en el Mplab cuando yo coloco el valor para compilarlo no me sale igual, me dice cuando lo leo con el Winpic me dice "3034" o "04", ;-)

        CALL     03FFh             ; Calibración del Oscilador Interno
        MOVWF    OSCCAL      ; 00h min.freq, 80h stred freq, 0FFh pro max.freq
           .
           .
           .
        ORG         0x3ff        ; Dirección del valor de fabrica.
        MOVLW    0x34         ; Valor a cargar.

Por lo que veo solo se carga la parte Low del OSCCAL y necesitaria tambien cargar la prte High, como se haria?
Gracias Alejandro :-/

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Calibrar el OSCCAL 12F629
« Respuesta #1 en: 09 de Septiembre de 2009, 17:00:39 »
la instruccion para cargar el valor de calibracion es retlw 0x34,  la parte alta a la que te refieres es el codigo en binario de la instruccion para el movlw es 30 y para el retlw es 34.

Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Calibrar el OSCCAL 12F629
« Respuesta #2 en: 10 de Septiembre de 2009, 08:56:02 »
Mil Gracias crei que estaba haciendo algo mal.
Saludos.

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Calibrar el OSCCAL 12F629
« Respuesta #3 en: 13 de Septiembre de 2009, 15:26:42 »
Hola Una pregunta mas, si tengo que grabar muchos pic tengo ue leerle a todos el OSCCAL o se puede dejar sin sobregabar con
           .
        ORG        0x3ff        ; Dirección del valor de fabrica.
        MOVLW    0x34         ; Valor a cargar.

asi todos estarian calibrados , solo tendria que poner esto

        CALL        03FFh             ; Calibración del Oscilador Interno
        MOVWF    OSCCAL          ; 00h min.freq, 80h stred freq, 0FFh pro max.freq
           .
           .
           .
  y listo, ya no me preocuparia por la calibracion.
Gracias

Desconectado WillyP

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 280
    • Sitiónica
Re: Calibrar el OSCCAL 12F629
« Respuesta #4 en: 13 de Septiembre de 2009, 19:35:21 »
Especificar la calibración también se puede hacer más directo.
Osccal no es más que otro registro del 12F629 situado en el  banco 1, dirección 0x90.
No hace falta escribirlo en la última posición de memoria de programa se puede especificar al inicio cuando se configuran los puertos etc., de esta forma y hace lo mismo:

BSF   STATUS, RP0       ; banco 1

MOVLW   0x34                   ; valor
MOVWF     OSCCAL              ; registro
   
BCF   STATUS, RP0       ; banco 0

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Calibrar el OSCCAL 12F629
« Respuesta #5 en: 14 de Septiembre de 2009, 17:28:56 »
Gracias por responderme, pero a lo que voy es: tengo un proyecto donde tengo que grabar cientos de pics, y no quiero leer el valor del osccal a todos y luego grabarslos uno por uno, quiero saber si con solo llamarlo en el programa cada pic se grabe solo su valor de osccal para funcionar, y asi hacer todo mas rapido.
Gracias

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Calibrar el OSCCAL 12F629
« Respuesta #6 en: 15 de Septiembre de 2009, 10:25:35 »
macedo, tu no tienes que poner en tu codigo asm la instruccion retlw   0x34 ni la instruccion movlw   0x34, ni ninguna otra en la direccion 0x3FFF , porque esa instruccion ya viene programada de fabrica, el programador que utilizes tiene que cuidar de no sobreescribir este valor,  si no lo hace buscate otro software de programacion u otro programador.

Saludos

La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Calibrar el OSCCAL 12F629
« Respuesta #7 en: 15 de Septiembre de 2009, 15:28:03 »
Hola te pregunto nuevamente, solo tengo que poner

        CALL        03FFh             ; Calibración del Oscilador Interno
        MOVWF    OSCCAL          ; 00h min.freq, 80h stred freq, 0FFh pro max.freq
o:
        ORG        0x3ff        ; Dirección del valor de fabrica.
        retlw         ; Valor a cargar.
o :
  BSF   STATUS, RP0       ; banco 1

MOVWF     OSCCAL              ; registro
   
BCF   STATUS, RP0       ; banco 0

o simplemente nada.
Gracias

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Calibrar el OSCCAL 12F629
« Respuesta #8 en: 15 de Septiembre de 2009, 16:06:43 »
yo utilizo la siguiente plantilla para programar el PIC12F675, pero para le PIC12F629 la parte del OSCCAL es la misma:

Código: ASM
  1. ;**********************************************************************
  2.  
  3.         list            p=12f675                ;directiva list para definir procesador
  4.         #include        <P12F675.inc>   ;definicion de registros de proposito especifico
  5.                                                                 ;(SFRs)
  6.        
  7.         __CONFIG   _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
  8.  
  9.  
  10. ;La directiva '__CONFIG' se usa para colocar datos de configuracion
  11. ;dentro del archivo .asm.
  12. ;Las etiquetas que siguen a la directiva se encuentran en el archivo
  13. ;.inc respectivo. Buscar en la hoja de datos respectiva para informacion
  14. ;adicional de la palabra de configuracion
  15.  
  16.  
  17.  
  18.  
  19. ;***** Definicion de Variables
  20. w_temp          EQU     0x20                    ; variable usada para salvar contexto
  21. status_temp     EQU     0x21                    ; variable usada para salvar contexto
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. ;**********************************************************************
  29.         ORG             0x000                   ; Vector de Reset
  30.         goto            main                    ; ir al inicio del programa
  31.  
  32.  
  33.         ORG             0x004                   ;posicion del vector de interrupcion
  34.         movwf           w_temp                  ; salvar el contenido actual de W
  35.         movf            STATUS,w                ;
  36.         movwf           status_temp             ; salvar el contenido actual de STATUS
  37.        
  38.  
  39. ;La rutina de interrupcion puede ir a continuacion o se puede realizar una
  40. ;llamada a la rutina usando call
  41.  
  42.         movf            status_temp,w   ; recuperar el valor de STATUS
  43.         movwf           STATUS                  ; antes de la interrupcion
  44.         swapf           w_temp,f
  45.         swapf           w_temp,w                ; recuperar el valor de W
  46.         retfie                                          ;retornar de la interrupcion
  47.  
  48.  
  49.  
  50. main
  51.  
  52.         call    0x3FF             ; Obtiene el valor de calibracion de fabrica
  53.         bsf     STATUS,RP0        ; vamos al banco 1
  54.         movwf   OSCCAL            ; Actualizamos el valor del oscilador
  55.         bcf     STATUS,RP0        ; vamos al banco 0
  56.  
  57. ;el programa principal va a continuacion
  58.                
  59.  
  60.  
  61. ;iniciamos las posiciones de la EEPROM
  62.  
  63.         ORG     0x2100                          ; Pocision de la EEPROM interna
  64.         DE      1,2,3,4                         ; define las primeras cuatro posiciones de la
  65.                                                         ; EEPROM como 1,2,3 y 4
  66.  
  67.         END                       ; directiva 'fin del programa'

Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Calibrar el OSCCAL 12F629
« Respuesta #9 en: 15 de Septiembre de 2009, 20:56:45 »
Gracias, es como me lo imaginaba.
Gracias Alejandro

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Calibrar el OSCCAL 12F629
« Respuesta #10 en: 28 de Enero de 2010, 15:37:06 »
Hola buscando por internet encontre esto:
Código: ASM
  1. ;OSCCAL calibration value 12F508
  2.        ORG      0x1FF                     ; Calibración del Oscilador Interno
  3.  
  4.        res     1                               ; holds movlw with factory RC cal value
  5.  
  6.        ORG      0x00                       ; Reset principal del programa.
  7.        MOVWF    OSCCAL                ; Calibro el Oscilador Interno
  8.                                                   ; 00h min.freq, 80h stred freq, 0FFh pro max.freq
  9.        GOTO     CONFIGURACION    ; Comienzo del programa.

y me funciona de maravillas, lo que hace es no sobreescribir el valor original del OSCAL del PIC y asi tenerlo calibrado siempre para todos los que programe.
comenten que n se que instruccion es RES.
Saludos

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Calibrar el OSCCAL 12F629
« Respuesta #11 en: 07 de Agosto de 2014, 14:54:51 »
Tengo entendido que el CCS genera automáticamente el código para leer el OSCCAL de la dirección de memoria FLASH y cargarlo en el registro OSCCAL, aunque hay que asegurarse que el programador que uses no sobreescriba la posición de FLASH donde se guarda el valor de calibración de fábrica.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.