TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: todopic en 03 de Junio de 2002, 20:26:00

Título: circuito de RESET externo
Publicado por: todopic en 03 de Junio de 2002, 20:26:00
Este circuito, mejora el reset de esos circuitos que aun con el POR (power on reset) habilitado, a veces no quieren arrancar, dando un mayor tiempo del pulso de reset



Título: RE: circuito de RESET externo
Publicado por: zuri_yuri en 26 de Noviembre de 2002, 03:44:00
Hola,
no se si entiendo muy bien el circuito, pero esto sirve para resetear el pic una vez realizado algun programa o es para cuando iniciamos el pic?
Igual es un pregunta un poko estupida, pero....
Título: RE: circuito de RESET externo
Publicado por: cucaracha en 02 de Enero de 2003, 16:31:00
Veamos zuri, yo lo puse en un montaje definitivo de un entrenador para el 16f84 que me hice el año pasado. Me lo dijo uno de mis profesores de la facultad. Si no recuerdo mal sirve para hacer un reset cuando se conecta la alimentación, vamos mientras se carga el condensador mas o menos.
Ahora que lo preguntas me ha surgida a mi también la curiosidad y mirando el circuito si se pulsa el botón de reset el condensador seguirá alimentando el micro hasta que se descargue, con lo que se consigue que no haya rebotes (utilidad para antirebotes por tanto) y una vez se deje de pulsar el reset mientras se carga el condensador seguirá reseteandolo (más antirebote), mas o menos lo que pasaba cuando se iniciaba la fuente de alimentación. Y ya no veo mas utilidades.
Vamos, que cuando montes una placa definitiva viene muy bien, para que esté todo pofesioná ja,ja.
Bueno espero que te sirva de ayuda y que no me haya equivocado en el análisis
Feliz año!!
Título: RE: circuito de RESET externo
Publicado por: todopic en 02 de Enero de 2003, 22:32:00
Hola, el asunto seria así...

al conectar la alimentacion, el capacitor se encuentra descargado.... es decir, un cero logico...  por lo tanto, para el MCLR del micro, es como si se esta pulsando el pulsador de reset (aunque nadie lo este pulsando), durante el tiempo de carga entre el C y la R de 10 k
al pulsar , se descarga con la r de 1K, como un reset normal...
Título: RE: circuito de RESET externo
Publicado por: cchhaa en 24 de Noviembre de 2005, 02:54:00
en muchos circuitos he vistos que la resistencia de 10k no esta, va directamente de la patita a los 5v, encambio en otros circuitos como este si que esta, cual puede ser la explicacion?


un saludo
cchhaa
Título: RE: circuito de RESET externo
Publicado por: RaDoN en 24 de Noviembre de 2005, 04:04:00
Si no esta la resistencia, seguramente no este el pulsador de reset (o esta y tiene la resistencia antes de este), la cosa es que al pulsar este no haga un corto entre 5v y masa.

Supongo que te refieres a eso ... RollEyes
Título: RE: circuito de RESET externo
Publicado por: cchhaa en 24 de Noviembre de 2005, 05:15:00
entendido perfectamente, para no hacer un corto, gracias radon!!

un saludo
cchhaa
Título: RE: circuito de RESET externo
Publicado por: Bopo en 09 de Febrero de 2006, 12:51:00
la parte de arriba dfe la resistencia de 10 k hacia donde va?
Título: RE: circuito de RESET externo
Publicado por: LordLafebre en 09 de Febrero de 2006, 13:04:00
Hola:

El otro lado va a VCC
Título: Re: circuito de RESET externo
Publicado por: Orko en 07 de Abril de 2006, 21:09:29
Les cuento una problema actual a ver si me dan una mano con ello, la empresa para la cuál trabajo diseño un dispositivo electronico basado en un uC 18F452, este equipo va de abordo en vehiculos de transporte de pasajeros intermunicipal, de un tiempo para acá algunos vehículos regresaban por que el aparato no funcionaba, valla sorpresa cuando me doy cuenta que el programa se ejecutaba parcialmente; para arreglarlo basta con reprogramar el uC y el aparato trabaja perfecto.
Mi intuicion me dice se están borrando o alterando algunas lineas de código de la memoria de programa. Como puede suceder esto? será que el uC entra en modo de programación aún cuando el MCLR está conectado directamente al los 5V del regulador?
El aparato se alimenta de los 12VDC generados por el alternador del vehículo y se que este voltaje no es del todo estable pues fluctua entre 12V y 15V dependiendo la presión del pié en el acelerador. Creén ustedes que estos picos de voltajes puedan pasar a través del regulador de 5V elevando el voltaje de manera instantanea y quizá obligando a que el uC entre en modo programación?
Por ahora lo unico que se me ocurre es colocar una resistencia de 1k entre 5Vdc y MCLR.

Lamento que sea tan larga la inquietud.

Orko  8)
Título: Re: circuito de RESET externo
Publicado por: maunix en 09 de Abril de 2006, 14:21:06
Les cuento una problema actual a ver si me dan una mano con ello, la empresa para la cuál trabajo diseño un dispositivo electronico basado en un uC 18F452, este equipo va de abordo en vehiculos de transporte de pasajeros intermunicipal, de un tiempo para acá algunos vehículos regresaban por que el aparato no funcionaba, valla sorpresa cuando me doy cuenta que el programa se ejecutaba parcialmente; para arreglarlo basta con reprogramar el uC y el aparato trabaja perfecto.
Mi intuicion me dice se están borrando o alterando algunas lineas de código de la memoria de programa. Como puede suceder esto? será que el uC entra en modo de programación aún cuando el MCLR está conectado directamente al los 5V del regulador?
El aparato se alimenta de los 12VDC generados por el alternador del vehículo y se que este voltaje no es del todo estable pues fluctua entre 12V y 15V dependiendo la presión del pié en el acelerador. Creén ustedes que estos picos de voltajes puedan pasar a través del regulador de 5V elevando el voltaje de manera instantanea y quizá obligando a que el uC entre en modo programación?
Por ahora lo unico que se me ocurre es colocar una resistencia de 1k entre 5Vdc y MCLR.

Lamento que sea tan larga la inquietud.

Orko  8)

Si bien se han reportado algunos problemas con las flash de los pics, esto fue en otros modelos como el F84 y hace tiempo ya.

Puede ser que dicho firmware dependa de ciertos valores de EEPROM para funcionar correctamente?

Si es así, ¿qué ocurriría si algún valor de la eeprom tomara un valor impredecible por ejemplo 0xFF (255) ?

Es bastante comun tener problemas con las EEPROM por problemas de ruido antes que problemas con la flash.

Si reprogramas el PIC, estarás reprogramando también la eeprom y tal vez ahí esté tu problema.

Título: Re: circuito de RESET externo
Publicado por: BrunoF en 09 de Abril de 2006, 15:32:53
voy a tocar de oido xq nunca lo utilice pero el BOR no serviria de utilidad en esos casosi?? y si pones un zener despues del regulador tambien? Saludos...!
Título: Re: circuito de RESET externo
Publicado por: maunix en 10 de Abril de 2006, 15:38:12
voy a tocar de oido xq nunca lo utilice pero el BOR no serviria de utilidad en esos casosi?? y si pones un zener despues del regulador tambien? Saludos...!


El BOR ayuda pero no es lo único .  El BOR ayuda principalmente cuando uno está trabajando continuamente y la tensión baja lentamente entonces una operación de lectura se peude convertir en una de escritura.  De todas formas es mucha  casualidad que justo ocurra eso mientras leemos la eeprom.

Lo más comun es que entre ruido en la alimentación o en el MCLR.  Es imprescindible el capacitor de .1uF entre Vdd y Vss.  El filtrado de la fuente también.  SI se usa un 7805 o similar, ojo con la regulación de la tensión de entrada porque si la dejamos muy ruidosa el 7805 puede oscilar.

También es bueno no olvidar tampoco los capacitores de estabilizacion del 7805.

 :D



Título: Re: circuito de RESET externo
Publicado por: Orko en 10 de Abril de 2006, 17:04:10
Hola a todos y gracias por las sugerencias. Es muy probable que este inconveniente sea generado por perdida de datos en la eeprom puesto que este diseño toma algunos valores de la eeprom interna. Sin embargo el capacitor de 0.1 uF entre VCC y Gnd está puesto. Algo que había considerado era poner un diodo zener de 5.1V a la salida del regulador, sin embargo aun lo lo he puesto.
Ahora, si el problema está en la eeprom interna, ¿como evitar que estos datos se modifiquen? agradeceria cualquier punto de vista al respecto.

Orko  8)
Título: Re: circuito de RESET externo
Publicado por: maunix en 10 de Abril de 2006, 17:55:56
Ahora, si el problema está en la eeprom interna, ¿como evitar que estos datos se modifiquen? agradeceria cualquier punto de vista al respecto.


Todas las memoria EEPROM sufren del mismo tipo de problemas cuando el voltaje toma valores inadecuados.

Como sugerencia es la de mejorar el filtrado del circuito, pero fijate que un zener no solucionará el problema si el mismo está presente en GND.  Yo tuve el mismo problema y lo tuve que solucionar filtrando mejor la fuente antes del 7805 con una bobina en serie (acá le decimos choque) y un capacitor electrolítico y otro de tantalio a masa.   Los capacitores de tantalio son caros pero excelentes para eliminar ruido de alta frecuencia por su buena velocidad de respuesta

Otra cuestión que puedes hacer por software, es la de agregar un byte de checksum o de CRC y de esa forma si los datos leídos son inadecuados puedes volver a guardar datos 'por defecto' que esten en la memoria flash.  Las memorias flash son mucho mas robustas.

De esa forma habrás perdido los datos guardados pero al menos no perderás el funcionamiento de tu software.

Espero te sirva de utilidad




Título: Re: circuito de RESET externo
Publicado por: Orko en 11 de Abril de 2006, 20:02:57
Dentro de las directivas de preprocesador esta #device, allí se menciona la opcion: WRITE_EEPROM=ASYNC Prevents WRITE_EEPROM from hanging while writing is taking place. When used, do not write to EEPROM from both ISR and outside ISR.

Esta opcion tiene algun tipo de relacion con la memoria eeprom interna que conlleve a evitar que por efecto del ruido se alteren los valores de ésta?

La fuente está constituida de la siguiente manera:
Antes del 7805 tengo dos condensadores, uno electrolitico de 220uF/50V y un ceramico 0.1uF; despues del regulador 7805 tengo dos condensadores, un electrolitico de 1000uF/25V y un ceramico de 0.1uF, cercano a la alimentacion del uC cuenta con un ceramico de 0.1uF

En cuanto a cambios en el proyecto proyecto voy a reemplazar todos condensadores ceramico por tantalio, ya iré haciendo pruebas.

Orko  8)
Título: Re: circuito de RESET externo
Publicado por: maunix en 11 de Abril de 2006, 20:59:21
Dentro de las directivas de preprocesador esta #device, allí se menciona la opcion: WRITE_EEPROM=ASYNC Prevents WRITE_EEPROM from hanging while writing is taking place. When used, do not write to EEPROM from both ISR and outside ISR.

Esta opcion tiene algun tipo de relacion con la memoria eeprom interna que conlleve a evitar que por efecto del ruido se alteren los valores de ésta?

No conozco el compilador que usas pero no hay opción en el PIC que te permita evitar que el ruido eléctrico te afecte.

Lo que debe ser esa opción es la de habilitar o no la interrupción mientras grabas.  También puede que sea y que espere a que el dato se termine de grabar antes de volver de la subrutina.

Que quiero decir con esto.  Puedes escribir en la eeprom de 2 formas.

1) Grabar y esperar a que se haya terminado la grabación
2) Mandar a grabar..... y seguir haciendo lo que estas haciendo y en la uritna de grabado,  antes de mandar a grabar nuevamente te fijas si está 'grabando' y vuelves al bucle principal de programa.
Es que una grabación de eeprom lleva unos 4mseg lo cual es mucho para ciertas aplicaciones, entonces si estas en aprietos con el tiempo, mandas a grabar un byte y sigues el curso normal del software, luego mandas a grabar otro byte, pero antes verificas si todavía esta grabando, si está grabando bueno, no grabas y devuelves algun codigo de error que indique que no fue grabado el byte por estar ocupado el pic grabando un dato previo.


La fuente está constituida de la siguiente manera:
Antes del 7805 tengo dos condensadores, uno electrolitico de 220uF/50V y un ceramico 0.1uF; despues del regulador 7805 tengo dos condensadores, un electrolitico de 1000uF/25V y un ceramico de 0.1uF, cercano a la alimentacion del uC cuenta con un ceramico de 0.1uF

En cuanto a cambios en el proyecto proyecto voy a reemplazar todos condensadores ceramico por tantalio, ya iré haciendo pruebas.

No soy un experto en eliminacion de ruido (hay libros enteros escritos al respecto y lo que te digo sería menos que el ABC jeje), pero los capacitores de tantalio son realmente excelentes para eliminar ruido pero no la única opcion.  A veces si hay mucho ruido se deben usar supresores de pico, y el choque que te mencioné anteriormente es hasta una obligación.

Tienes un osciloscopio? porque que te diga una cosa u otra por ahi no te ayudará si tienes una fuente realmente muy ruidosa o si tu entorno es realmente ruidoso.  Un osciloscopio te puede ayudar a ver muchas cosas.

Si usas por ejemplo fuentes switching, estas tienen un filtro a la salida y si le pones un capacitor muy grande puedes hacerla oscilar!  Lo recomendable es a veces no poner nada.  Es muuy genérico lo que te digo y el osciloscopio te ayudará en muchas cuestiones.

Otro punto, como es tu circuito de reset? por ahi está ahí el probelma.



Título: Re: circuito de RESET externo
Publicado por: bagmel en 18 de Abril de 2006, 01:02:50
Amigo orko unos amigos resolvieron sus problemas con unas pantallas lcd con esto, solo tendrias que modificar tu circuito aunque te recomendaria por experiencia propia coloca este circuito antes del regualdor de 5 vol.
yo tenia problemas con unos pic como tacometros y eso que la señal estaba optoaislada pero el ruido por la fuente era grande, con este circuito antes del regulador de 5volt solucione todo ya que este circuito me regula fijo 12v y luego bajo a 5 vol limpios sin tantos condensadores ni nada lo que falto en la imagen fue una bobina que coloque a la entrada de 12volt

espero te sirva:
(http://www.semallanos.com/imagenes/regulator.gif)
Título: Re: circuito de RESET externo
Publicado por: Orko en 14 de Junio de 2006, 21:54:14
Recuerdo que Maunix agregó lo siguiente:

"Todas las memoria EEPROM sufren del mismo tipo de problemas cuando el voltaje toma valores inadecuados."

Alguno de ustedes ha experimentado una perdidad de datos en una memoria serial? Esto por cuanto he intentado luchar con el problema y aún no lo consigo, por tanto he decidido guardar los datos NO en la eeprom del PIC si no en una eeprom externa (serial).

Alguna recomendacion adicional?

Orko  8)
Título: Re: circuito de RESET externo
Publicado por: Chaly29 en 15 de Junio de 2006, 06:27:38
Hola Orko, a pesar de lo comentado por maunix yo personalmente no e tenido grandes problemas con el uso de la EEPROM del PIC, incluso hace años que tengo PIC's usando solo la memoria eeprom de el y nunca tubieron problemas, pero habria que estudiar un poco tu proyecto para saber tambien que tanto uso le das a esa memoria.

Un saludo.

Atte. CARLOS.
Título: Re: circuito de RESET externo
Publicado por: BrunoF en 15 de Junio de 2006, 09:58:23
Bueno, no veo grandes diferencias entre utilizar la EEPROM interna del PIC o utilizar una externa, yo he utilizado en muchas ocasiones ambas sin ningun problema.

Ahora, te recomiendo un proceso que puede ayudarte a eliminar bastante la grabacion incorrecta de datos en una EEPROM:
Lo que aqui te comento serviria solo en caso de que mandes a grabar mas de... pongamos como limite minimo 3 bytes en la EEPROM(si bien es aplicable tambien en caso de que grabes por ejemplo 1 byte solo,la desventaja es que en ese caso se te triplica el tiempo de grabacion con este metodo, por lo que seria bastante contraproducente):

En fin,lo que hago es:

Reservo una posicion de la EEPROM(supongamos la 0x2100 (seria la primer posicion de la EEPROM,es decir, 0x00)) como flag de grabacion correcta, entonces hago asi:

1)Grabo 0x0F(puede ser otro valor) en la posicion 0x00 de la EEPROM. Este 0x0F indicaria "grabacion erronea" ;
2)Mando a grabar uno por uno los 3 o mas bytes en las posiciones adecuadas de la EEPROM;
3)Finalmente, escribo 0xF0(puede ser otro valor) en la posicion 0x00 de la EEPROM. Este 0xF0 indicaria "grabacion exitosa".

Luego, cuando se produzca un RESET o bien se lo vuelva a alimentar al PIC, lo primero que hago es verificar el flag, es decir, leo la posicion 0x00 de la EEPROM y me fijo si vale 0xF0, si vale este valor, sigo normalmente.Si vale cualquier otro valor entonces llamo a una sub-rutina que reestablezca(regrabe) los valores por defecto que yo defino en la EEPROM.

El metodo no es infalible, pero puede minimizar la posibilidad de error si mandas a grabar tandas de bytes seguidos.

Saludos.
Título: Re: circuito de RESET externo
Publicado por: Orko en 15 de Junio de 2006, 17:29:23
De acuerdo, lo intentaré una vez mas a ver si tengo éxito.
Gracias nuevamente,

Orko  :c)
Título: Re: circuito de RESET externo
Publicado por: Nocturno en 15 de Junio de 2006, 17:42:28
También podrías implementar una rutina de checksum para quedarte totalmente tranquilo.