Autor Tema: Problema con PIC12f629  (Leído 3629 veces)

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

Desconectado car_saave

  • PIC10
  • *
  • Mensajes: 3
Problema con PIC12f629
« en: 04 de Octubre de 2018, 14:20:46 »
Hola, tengo problema con la configuracion de este pic, que no puedo hacer funcionar las patitas 2 y 3 (GPIO,4 Y GPIO,5) ni como entradas ni como salida digitales. Estoy usando mplab en assembler y de grabador un pickit3.
Hice un programita sensillo para probar que prendan y apaguen led y tampoco funciona, sin embargo en el simulador funciona bien.
Desde ya les quedo muy agredecido por su tiempo

; rutina con tiempo funcionando21-09-2018
;******************************   CONFIGURACION    ****************************
;CP_OFF              - Codigo de proteccion programa desactivado
;CPD_OFF             - Codigo de proteccion eeprom desactivado
;WDT_OFF             - Perro guardian desconectado
;BODEN_OFF           - No actua el reset por bajada de tension
;PWRTE_OFF           - Reset de inicio desconectado
;MCLRE_OFF           - Reset externo desconectado, sino pierdo una entrada A5
;XT_OSC              - oscilador exterior
;INTOSC_OSC_NOCLKOUT - funcionamiento con reloj interno
;LVP_OFF             - programacion de bajo voltage desconectado,
;                      para activar el pin 4 de RB

    list p=12f629
       #INCLUDE <P12F629.INC>
           ERRORLEVEL   -302
      __CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF &_INTRC_OSC_NOCLKOUT & _MCLRE_OFF

         cblock 0x20
                                 ; Contadores para los retardos.
          PDel0
          PDel1
          PDel2

           endc

           ORG      H'00'
           GOTO     INICIO
           ORG      H'05'

INICIO     call      0x3FF            ; acatando reocmendacion de Veguepic
           movwf     OSCCAL
           BCF          STATUS,RP0
           MOVLW    0X07
           MOVWF    CMCON              ;COLOCA EN DIGITAL LOS PINES
 
           BSF          STATUS,RP0        ;BANCO UNO CONFIGURACIONES
           MOVLW    B'001000'
           MOVWF    TRISIO            ;COLOCA LOS PINES ENTRADAS Y SALIDAS
           BCF          STATUS,RP0        ;BANCO CERO

           CLRF        GPIO 

ini        movlw      B'101010'
           movwf      GPIO
           call           DEMORA60ms
           movlw      B'010101'
           movwf      GPIO
           call           DEMORA60ms
           goto          ini


DEMORA60ms  movlw     .66           ; 1 set numero de repeticion  (B)
                        movwf     PDel0       ; 1 |
PLoop111        movlw     .181          ; 1 set numero de repeticion  (A)
                        movwf     PDel1       ; 1 |
PLoop222        clrwdt                      ; 1 clear watchdog
                        clrwdt                      ; 1 ciclo delay
                        decfsz    PDel1,1      ; 1 + (1) es el tiempo 0  ? (A)
                        goto      PLoop222   ; 2 no, loop
                        decfsz    PDel0,1      ; 1 + (1) es el tiempo 0  ? (B)
                        goto      PLoop111   ; 2 no, loop
                        clrwdt                       ; 1 ciclo delay
                        return                       ; 2+2 Fin.

                        org      0x3FF             ;
                        retlw    0x20              ;
                        END

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Problema con PIC12f629
« Respuesta #1 en: 04 de Octubre de 2018, 21:22:50 »
Que tal car_saave,

En cuanto a los pines GPIO4 y GPIO5 no veo ningun problema en el código, pero si veo un problema en el código con respecto al oscilador interno.

Primero para cargar el valor de la calibración debes cambiarte al banco 1, ya que el registro OSCCAL se encuentra en el banco 1. Es decir, debes hacer lo siguiente:

Código: [Seleccionar]
BSF STATUS,RP0    ;Cambia al banco 1
CALL 0X3FF       ;Ve a la última dirección de memoria de programa y obten el valor de calibracion del oscilador
MOVWF   OSCCAL  ;Carga el valor de calibración
BCF STATUS,RP0    ;R0gresa al banco 0

También observé que al final de tu código tienes lo siguiente:
Código: [Seleccionar]
org      0x3FF             ;
retlw    0x20              ;

Si has hecho esto entonces ya has borrado el valor de calibración del oscilador interno. Esto no debería estar ahí, ya que de fabrica en esa dirección de la memoria de programa se encuentra la instrucción RETLW XX (donde XX es el valor de calibracion y es diferente en cada microcontrolador PIC12F629). Pero tal vez lo agregaste debido a que lo borraste accidentalmente. Si es así, entonces podría ser correcto el valor de calibración.

Por lo demás no veo ningún problema para los pines GPIO4 y GPIO5, a menos que los hayas dañado anteriormente.

elreypic.

Desconectado car_saave

  • PIC10
  • *
  • Mensajes: 3
Re:Problema con PIC12f629
« Respuesta #2 en: 05 de Octubre de 2018, 08:37:03 »
Gracias elreypic2 por tu tiempo y la info, si tenes rason, lo del oxilador interno  lo eh tocado y me quedo mal  y la parte del final siempre la puse haci poque lo lei en un blook y como nunca tube problemas lo eh dejado haci y nunaca tube que manejar tiemos precisos no me ah traido problemas. Con esto no quiero decir que estee funcionando bien
Los chips creo que estan bien, probe con 2 mas que son nuevo.
No se que puede estar pasando.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Problema con PIC12f629
« Respuesta #3 en: 05 de Octubre de 2018, 08:59:46 »
Sinceramente tampoco encuentro cual es el problema. los GP4 y GP5 justamente son del oscilador, analogicos, y Timer1,

El TIM1 se encuentra desactivado al inicio, por lo tanto no es el problema.
La parte analogica esta desactivada con el CMCON
Y el oscilador correctamente ubicado como interno y sin clock.

Entonces la unica que queda es que realmente este quemado, pero si probaste 2 mas que son nuevos, quedan algunas posiblidades que se me cruzan por la cabeza...

1- Son PIC chinos... y no originales.
2- Al grabar los valores de los bits de configuracion revisarlos para ver si son correctos
2- El programa puede haber alguna cosa que tal ves este afectando y sea complicado de ver, como por ejemplo, no tener un espacio entre el & y el _, y es el unico que no le tiene.

Código: [Seleccionar]
&_INTRC_OSC_NOCLKOUT

Desconectado car_saave

  • PIC10
  • *
  • Mensajes: 3
Re:Problema con PIC12f629
« Respuesta #4 en: 05 de Octubre de 2018, 10:48:11 »
SOLUCIONADO, con la ayuda de ustedes y el grupo, el error estaba  en como dijo
                         elreypic2 es que no estaba direcionando el osccal al banco 1
Quedo haci:
INICIO     BSF          STATUS,RP0        ;BANCO UNO CONFIGURACIONES
               call           0x3FF            ; 
               movwf     OSCCAL
               MOVLW    B'001000'
               MOVWF    TRISIO            ;COLOCA LOS PINES ENTRADAS Y SALIDA
               BCF          STATUS,RP0
              MOVLW    0X07
              MOVWF    CMCON

Lo del final del codigo, a la vista no cambia nada si lo quito o lo dejo es lo mismo.

Muchas gracias, les estoy muy agradecido
 


 

anything