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.