TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: tithanae en 21 de Diciembre de 2006, 20:33:13

Título: como reseteo el 16f628a
Publicado por: tithanae en 21 de Diciembre de 2006, 20:33:13
cuando se configura el 16f628a para que trabaje con el reloj interno que tiene osea  IntRC I/O, la linea RA5 solo se puede configurar como entrada y mi pregunta es como reseteo el pic si ya trabaja como entrada este pin y si le aplico el vpp puedo programarlo? con ICSP
Título: Re: como reseteo el 16f628a
Publicado por: aitopes en 21 de Diciembre de 2006, 21:23:29
Hola!
1) Si usas RA5 como I/O, no puedes hacer un reset por hard. (y segun creo, ese micro tampoco lo soporta por soft...;))
2) Si, se puede programar igual mediante ICSP.
Te adjunto el esquema de como hacer la conexion....En lugar del pulsador de reset pondrias lo que deseas controlar con ese pin...mediante una resistencia de unos 200 a 1000 ohms.

Saludos!
Título: Re: como reseteo el 16f628a
Publicado por: ESTECA55 en 21 de Diciembre de 2006, 22:22:28
Hola tithanae, si te sirve, puedes hacer una especie de reset desenergizando el pic, para ello en el pin de Vdd del pic, pon un pulsador normal cerrado en serie, de manera que al pulsarlo estaría cortando la alimentación. Para eso te recomendaría que dejes activo el fuse que hace un reset después de que se estabiliza la Vcc del pic.(BODEN si no recuerdo mal)

Hora les ago una pregunta para los mas entendidos, no es posible escribir el registro WDT (Watch Dog time), si esto es posible, se lo puede activar, y al escribir en el, el valor 255, en la siguiente instrucción se estaría produciendo un reset por soft, para ello hay que saber usar el WDT, que no es para nada complicado, simplemente ubicar estratégicamente el reinicio del mismo.
Esto lo pregunto ya que en los bancos ce memoria no aparece el WDT, por ende no se si sea posible escribir en el. (se me acaba de ocurrir esto jejeej)


Saludos y espero que esea de utilidad.
Título: Re: como reseteo el 16f628a
Publicado por: tithanae en 21 de Diciembre de 2006, 23:09:55
gracias por las respuestas

aitopes si me parecia que no se podia realizar un reset

ESTECA55 es una buena idea la que me das no lo habia pensado

respecto a tu otra idea si no esta en el banco de registros no creo que se pudeda escribir en el registro del WDT haber que dicen los maitros....
Título: Re: como reseteo el 16f628a
Publicado por: BrunoF en 21 de Diciembre de 2006, 23:33:10
Un reset por soft sencillo es simplemente poner un RETURN cuando el STACK del PIC esta vacio.

Saludos.
Título: Re: como reseteo el 16f628a
Publicado por: aitopes en 22 de Diciembre de 2006, 02:09:50
Hola BrunoF!
Muy buen dato! El compilador que uso CREO que en BASIC no me lo deja hacer por que mira por "encima del hombro" que estas haciendo y da error al compilar, pero tranquilamente se lo podria hacer pasar dentro de un bloque ASM.....ENDASM. Voy a probar y les cuento que paso.

Saludos.
Título: Re: como reseteo el 16f628a
Publicado por: flacoclau en 22 de Diciembre de 2006, 02:46:02
muy buena la idea de brunoF!, la otra que podría ser basandose en lo que dijo estecass, es utilizar un pin cualquiera para controlar algún transistor temporizado ó un 555 conectado al pin de mclr, entonces cambiando el estado de dicho pin activas el reset, y el circuitito que te digo te manda un pulso por algún instante reseteando el micro, luego que vuelva a su estado normal y arranca de nuevo, esto si te sobra algún pin :) .
Título: Re: como reseteo el 16f628a
Publicado por: BrunoF en 22 de Diciembre de 2006, 03:43:44
Bueno, proba y nos contas que tal te fue.

Saludos.
Título: Re: como reseteo el 16f628a
Publicado por: ESTECA55 en 22 de Diciembre de 2006, 04:47:13
Muy buen dato BrunoF, no lo tenia registrado

Gracias y Saludos
Título: Re: como reseteo el 16f628a
Publicado por: maunix en 22 de Diciembre de 2006, 08:37:59
Muy buen dato BrunoF, no lo tenia registrado

Gracias y Saludos

Así es, la razón es que al estar el stack vacío si haces un reset irá al 0x0000 porque el mismo se carga con valores nulos.

No es lo mismo que hacer un "reset" (no se reseteará nada al estado PowerOn Reset) pero es una forma de inicializar el programa nuevamente.

Saludos