Autor Tema: circuito de RESET externo  (Leído 8911 veces)

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

Desconectado Orko

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 423
Re: circuito de RESET externo
« Respuesta #15 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)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: circuito de RESET externo
« Respuesta #16 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.



- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado bagmel

  • PIC12
  • **
  • Mensajes: 56
    • Semaforos los Llanos C.A.
Re: circuito de RESET externo
« Respuesta #17 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:
« Última modificación: 18 de Abril de 2006, 01:14:53 por bagmel »
La necesidad es la madre de todos los inventos!!!!!!!!!!!!!!

Desconectado Orko

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 423
Re: circuito de RESET externo
« Respuesta #18 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)

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: circuito de RESET externo
« Respuesta #19 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.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: circuito de RESET externo
« Respuesta #20 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.
"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.

Desconectado Orko

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 423
Re: circuito de RESET externo
« Respuesta #21 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)

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18269
    • MicroPIC
Re: circuito de RESET externo
« Respuesta #22 en: 15 de Junio de 2006, 17:42:28 »
También podrías implementar una rutina de checksum para quedarte totalmente tranquilo.