Les cuento, tal vez a alguno le sirva. Si es redundante o no sirve, le dejo al moderador la posibilidad de borrarlo o lo que le parezca.
Debo contarles del hardware primero.
Mucha de esta info esta en un link que saque de esta web que pueden buscar en google: pongan Ruidos MCUs. RECOMIENDO FUERTEMENTE LEERLO.
Hay extras de mi parte.
La mayoría de los problemas que tengo en mis aplicaciones son por bajas de tensión. El equipo, con su pic, esta siendo usado para automatizar o controlar alguna máquina y en gral esas máquinas tienen motores.
Algunos de mis clientes tienen instalaciones no calculadas, con lo cual, cuando sus motores se encienden, su cableado funciona como una gran resistencia, bajando la tensión, y dependiendo de como sea ese bajón, el equipo actua raro. Muy, pero muy pocas veces se resetea, les diria que me paso una vez sola, pero si pasa que actua erráticamente, por ej si esta contando piezas, cuenta una de mas.
Otras veces, usan motores de carbones. Una fuente de ruido perfecta, una porquería.
Bue, que hago: Por hard, una fuente lo mas filtrada posible. Viniendo desde la alterna: fusible, varistor, filtro con dos capacitores 0,047uF y dos choque rf de 1 mHy, trafo, después del trafo capacitor de filtro 2200uF, luego 100 nF, luego choque rf 1mHy, capacitor 1500uF, regulador con 0,33uf entre In y masa y 0,1uf entre out y masa (ambos soldados directamente en las patas del regulador).
Si la aplicaión es crítica, por ej a veces tengo que contar tiempos con precisión, después del regulador y antes de alimentar al micro pongo un capacitor de 1 F (un faradio).
Entre las patas del micro, entre V+ y masa, un capacitor de bypas, en mi caso, como manejo 4 Mhz habitualmente, uso un capacitor de 33 nF, Todos los capacitores son muticapa.
Y todo esto con una salida a un borne para poner masa a tierra (una puesta a tierra como corresponde. Exclusiva, no quiero fallas de otras máquinas dañando mis equipos). Cuando hay mucho ruido, blindo todo y a masa).
Tengan en cuenta usar placas de fibra de vidrio si usan frecuencias de mas de 4 Mhz.
Por soft, como mis problemas son por baja tensión, picos de baja tensión, tengo un transistor polarizado de forma tal que cuando la tensión baja a 4V, la de alimentación, le manda un 1 a una patita del micro y eso hace que grabe todos los estados que me interesan en la eeprom. Entonces, cuando arranca el programa, lee esos estados y vuelve a empezar. Si al transistor se le da un buen ¨zapatazo¨ de corriente (sin quemarlo, pero sin escatimar) tiene velocidades de 100 Mhz, y eso usando uno común, BC327 o 337.
Para evitar que grabe datos sin sentido cuando se apaga la máquina, hay que poner un boton de ¨puesta a cero¨ para incializar. También se puede hacer que esto se haga solo con una mezacla de soft y hard. Depende del presupuesto del cliente.
Es molesto, pero es lo único que me ha servido para evitar el problema de los cortes de luz.
En otras ocasiones, para evitar ruido, si me da la velocidad, hago demoras en las entradas de los sensores, de forma tal que el dato entregado por el sensor este siendo ¨sensado¨ durante x cantidad de tiempo. Si el tiempo esta ok, entonces ese dato vale, sino, es ruido.
Un capacitor en la entrada de sensores en ambientes ruidosos colabora mucho.
Saludos.