Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

11/09/2012 #1


Problema al iniciar el oscilador PIC16f628
Buenas tardes saludos a todos los del foro.
Tengo un pequeño problema, que ya me va pasando con varios proyectos con el PIC16F628A. El problema es que al usarlo con el oscilador interno, el circuito no arranca siempre que se lo energiza, es decir, hay que conectarle y desconectarle varias veces la alimentacion del pic para que empiece a trabajar, cuando no inicia queda como colgado, como que si el oscilador no funcionara.
Esto ya me habia pasado con otros proyectos anteriores, y la solucion que le encontré fue que despues de enchufarlo, se presionara el reset (mclr) y asi el programa arrancaba bien. El problema que en este circuito necesito usar el pin del mclr como pin de entrada y lo configuré al mclr interno, y de esta forma tengo que desconectar el pic hasta que arranque.
Si a alguien le sucedió esto y lo pudo solucionar acepto ayuda, jaja.
Me olvide de decir que uso mplab para el programa en asm, y lo cargo al pic con Pickit2.
Gracias y saludos.
13/09/2012 #2


Te recomiendo que revices la nota de aplicacion: AN607 - Power-up Trouble Shooting" de microchip, en donde se explican ese tipo de problemas y la manera de corregirlos.

http://ww1.microchip.com/downloads/e...tes/00607b.pdf

saludos
13/09/2012 #3

Avatar de Daniel Meza

Oh también habilita el temporizador de arranque (PWRTE) en tu código. Con este bit activado en la palabra de configuración te aseguras que el PIC empiece siempre en la dirección 0x00 al momento de energizarlo.
14/09/2012 #4


Solucionado
Muchas gracias por sus respuestas. El PWRTE lo tenia habilitado y me hacia ese problema.
Tras varias pruebas vi que en programas simples funcionaba bien, y fui cargando programa tras programa agregandole mas lineas y funciones.
El problema era al configurar el INTCON para usar el tmr0, segun la hoja de datos todos sus bits inician en "0" (a ecepcion del BIF), por lo que solamente hacia
bsf intcon,t0ie
bsf intcon,gie
Pero era ahi fallaba, se ve que aveces los otros bits iniciaban en algun otro valor y provocaba eso. La solucion (y lo que siempre se deberia hacer, yo no lo hacia por comodidad) fue cargar el valor del byte completo en intcon
movlw b'10100000'
movwf intcon

GRACIAS POR SUS RESPUESTAS Y SU TIEMPO. SALUDOS

manzo
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.