¿Datos alterados en memoria eeprom por ruido?

Amigos,
el fin de semana tuve un problema con un encendido electronico basado en pic.-
Resulta que estuvimos probandolo toda la semana y funcionó sin problemas, inclusive con el pcb al aire libre.
Colocamos dicho encendido en una moto de carrera. Corrio las pruebas y las series sin problemas. Al momento de largar la final, comienza a fallar y no pudo correr.
Al verificar los valores almacenados en la eeprom, que son los correspondientes a los grados de avance segun las rpm, los mismos se habian movido, razon por la cual la moto fallaba. Nadie metio mano en el encendido.
Mi duda es si esos cambios pueden haber sido causados por ruidos. Tal vez de otra moto al pasar cerca.
Aclaro que al principio tenia problemas de funcionamiento porque la bujia provocaba interferencias, pero usando bujia con resistencia se soluciono. La moto corrió tal cual se habia probado el dia anterior. Mi teoria es que otra moto al pasar cerca hizo interferencia en el encendido y causó esa modificacion en los valores.¿Puede ser?
Saludos y gracias
 
La memoria EEPROM puede modificar sus valores cuando existe una caida de voltaje en la alimentación por debajo del nivel de voltaje de estabilidad necesaria para la memoria EEPROM, para evitar este problema debes habilitar el BOD o (brown Out detector) es un circuito interno en el microcontrolador que lo reinicia cada vez que el voltaje de alimentación disminuye tanto que pueda causar datos erróneos en la EEPROM.
 
A mí me paso lo mismo es por el ruido se tiene que filtrar mejor, unas 5 condensadores de 100nF en la alimentación del pic y uno de los condensadores lo más cercano al pin de alimentación del pic y si la placa está bien cerrada con armadura de metal es mejor conectado a tierra.
 
Es posible... pero lo veo muy remoto... para probar si es por ruido o no necesitas aislar completamente el circuito, alimentarlo con baterias y optoacoplar las mediciones electricas, tambien usa diodos TVS a la entrada de cada señal y alimentacion de tu circuito por que las bujias pueden meter espigas de voltaje muy elevadas...
 
mañana voy a hacer una prueba: Voy a acercar el circuito a un motor en marcha con bujias sin resistor a ver si hay algun cambio.
Otra forma de probar no tengo. Aparte no lo hace siempre. Lo hizo esa vez nada mas pero me tiene preocupado que pase de nuevo.
Gracias por sus respuestas
 
yo hace rato que no estoy en este tema de programar, pero :
1 -- no se supone que eso no puede pasar ??
2 -- para la memoria de programa no hay diferencia entre tablas o instrucciones, me parece muy raro y dificil que se corrompa un byte en el programa del micro , pero que se desplace o corra toda una tabla eso me parece imposible.

por que no contas bien que paso , si lo identificaste claro .

.
Al verificar los valores almacenados en la eeprom, que son los correspondientes a los grados de avance segun las rpm, los mismos se habian movido, razon por la cual la moto fallaba. Nadie metio mano en el encendido.

aclara que es eso , como que se movieron.
un ruido puede borrar , o corromper (hacer que haga cualquier cosa) , pero mover ....:unsure:
es algo muy extraño lo que te paso y no me parece que sea por ruido de ningun tipo, mejor aclara bien que paso .
 
Última edición:
Puede pasar en 3 formas: que el micro tenga un problema de voltaje a la hora de guardar los datos en la EEPROM (graba mal el dato), que el dato se corrompa desde la RAM y asi se guarde en EEPROM, y finalmente que el micro tenga algun BUG que active la rutina de guardado de datos en EEPROM
 
hola chico, si es lo que dice que se le desplazo .
deberia entonces levantar la tabla que esta en la memoria de programa y regrabarla desplazada, y al hacer eso a menso que haya dejado el programa espacio luego de la tabla estarias superponiendola al programa con lo que el programa todo se corrompe.

ademas , que el programa entre en modo "escribir en la EE del programa " supongo requiere varios pasos para evitar que esto se de accidentalmente.

lo que estoy queriendo decir es que no es posible que eso se de accidentalmente .

no se si me explico .
 
Si... claro que es posible... y se da muy frecuentemente con BUGs en el programa... algunas veces uno se equivoca al colocar un return en vez de un goto, o en tablas de busqueda se compara un valor que excede el tamaño de la tabla y el micro se pierde, o al hacer una comparacion de forma erronea se manda llamar la rutina de grabado

A mi me paso muchas veces... pero que el micro haya grabado mal el dato por problemas en el voltaje nunca (lo que NO quiere decir que no se pueda)...
 
Voy a aclarar mejor como funciona y lo que pasó.
Este encendido (cdi) lo encontre en internet. No dispongo del codigo fuente, solo del hex, asi que no puedo modificarlo.
El pic se programa con ese archivo hex y una vez puesto en el cdi, desde la pc se cargan los valores de grados de avance segun las rpm con un programa especifico.
Entonces, el pic funciona analizando las rpm del motor, y en base a los datos cargados, demora mas o menos la chispa para dar el avance programado. Yo supongo que esa tabla se guarda en la memoria eeprom. Desde mi programa puedo cargar las tablas y leerlas.
Cuando se programó el pic, anduvo sin problemas y nadie toco nada. todo quedo tal cual los 3 dias de las pruebas. Pero cuando falló, conecte la computadora, descargue la tabla y ademas de faltar algunos valores, otros estaban mal. Por eso dije que se "movieron" los valores.
Espero poder haberles aclarado un poco mejor. No me pregunten sobre el programa del pic porque no lo tengo ni lo conozco.
Saludos y gracias
 
Que interesantes los micros che....... :eek:

Hablando de encendido electrónico y avance, recuerdo bien que en el motor de una Fiat Fiorino (la de casa, motor TIPO 1.4) tiene ese sistema, pero en vez de ser digital es totalmente analógico! :LOL: Saben como funciona?
Tiene un mini diafragma conectado directamente al distribuidor, mediante un ejecito. El diafragma se mueve para adentro/afuera con el mismo VACÍO que genera la aspiración del motor, cuando se acelera... Es increíble, es totalmente analógico, pero muy bueno...

Cuando el motor "aspira con fuerza", mueve ese diafragma para afuera y paralelamente AVANZA el encendido, o sea, la chispa... :D

Saludos, y perdón por el off-topic. :oops:

Muy interesante el tema. Lamento no poder ayudarte ni aportar, no se nada sobre microcontroladores! :oops:
 
hola pablete,
se te haya movido la tabla de valores de la eeprom o no, te haya borrado datos o no es lo mismo, tienes un problema de mal funcionamiento en el micro. Yo tambien he tenido problemas de funcionamiento con microcontroladores y motores, te dire que son sensibles a los campos electromagneticos y a las vibraciones pudiendo presentar comportamientos anomalos en presencia de estos. En campos magneticos variables como los que genera el pico de la bobina en el circuito se pueden crear corrientes inducidas, igualmente, las vibraciones en un campo magnetico puede inducir corrientes y esto provoca el mal funcionamiento del micro, estas son las dos variables de las que te tienes que cuidar si no te puede suponer un autentico dolor de cabeza.
Por cierto, bujias con resistencia? como es eso?
 
Que interesantes los micros che....... :eek:

Hablando de encendido electrónico y avance, recuerdo bien que en el motor de una Fiat Fiorino (la de casa, motor TIPO 1.4) tiene ese sistema, pero en vez de ser digital es totalmente analógico! :LOL: Saben como funciona?
Tiene un mini diafragma conectado directamente al distribuidor, mediante un ejecito. El diafragma se mueve para adentro/afuera con el mismo VACÍO que genera la aspiración del motor, cuando se acelera... Es increíble, es totalmente analógico, pero muy bueno...

Cuando el motor "aspira con fuerza", mueve ese diafragma para afuera y paralelamente AVANZA el encendido, o sea, la chispa... :D

Saludos, y perdón por el off-topic. :oops:

Muy interesante el tema. Lamento no poder ayudarte ni aportar, no se nada sobre microcontroladores! :oops:

El diafragma en realidad es para atrasar un poco la chispa cuando el motor esta con pocas vueltas. Lo que adelanta la chispa son unos contrapesos dentro del distribuidor.

hola pablete,
se te haya movido la tabla de valores de la eeprom o no, te haya borrado datos o no es lo mismo, tienes un problema de mal funcionamiento en el micro. Yo tambien he tenido problemas de funcionamiento con microcontroladores y motores, te dire que son sensibles a los campos electromagneticos y a las vibraciones pudiendo presentar comportamientos anomalos en presencia de estos. En campos magneticos variables como los que genera el pico de la bobina en el circuito se pueden crear corrientes inducidas, igualmente, las vibraciones en un campo magnetico puede inducir corrientes y esto provoca el mal funcionamiento del micro, estas son las dos variables de las que te tienes que cuidar si no te puede suponer un autentico dolor de cabeza.
Por cierto, bujias con resistencia? como es eso?

Voy a trabajar entonces en poner la caja del cdi a masa, poner mas capacitores como filtros y ver que pasa.
Las bujias con resistencias las traen la mayoria de los autos nuevos. Tienen una resistencia en el electrodo para suprimir los ruidos que estas generan asi no afectan la electronica de los autos. Fijate que por fuera, las bujias tienen denominacion "R". Y te digo que funcionan porque mi cdi con bujias comunes no va. Se enloquece.
Gracias por sus respuestas
 
Última edición:
El diafragma en realidad es para atrasar un poco la chispa cuando el motor esta con pocas vueltas. Lo que adelanta la chispa son unos contrapesos dentro del distribuidor.
Uh.... me mataste che... :oops: :oops: :oops:

Gracias por corregirme, siempre había creído que era así, pero por lo visto no. :eek:

Todas las motos de competición tienen ese "truco" en el encendido? Digo, beneficia "notablemente" el comportamiento en altas revoluciones?

Ya que sabés tanto, no vendría nada mal una tirada de link como pa' matar la ignorancia, o una mini-explicación sobre "En que infiere correr el punto de chispa en un motor..." y si cabe, que relación hay con el avance/retroceso del encendido con la potencia final/torque...

Muchas dudas, ya no más me pongo a investigar un poco a ver si encuentro.

Sos groso. :aplauso:

Saludos.
 
entonces es copmo pensaste al principio, si se corrompe la info .
no te queda mas que probar en forma experimental , de cerrar en una caja metalica la placa y eso a masa o sea negativo comun .
mejorar filtrado, poner C . y todo lo que se te ocurra.

no se como es el circuito, pero por mas que hagas de todo si tenes pines de entrada que salen de la cajita, ....... son al final antenitas y puertas de entrada abiertas.

que raro que quien diseño eso y hizo el programa no se encontro con ese problema.
 
Por ahí me pareció haber leído algo: Optoaislar las señales.

Algo se me ocurre, y creo que sería la solución definitiva, ya que aislando las entradas/salidas mediante luz, es imposible que "factores externos" perjudiquen el funcionamiento correcto del micro...

Eso si, el circuito sería bastante más complejo, aunque también bastante más estable.

Espero no estar diciendo burradas. :unsure:

Saludos.

PS: En conjunto con esto, obviamente aislar bien mediante una Jaula de Faraday todo el circuito, y conectar esa "cajita metálica" a masa... Me parece que ahí mejoraría la cosa.

Me suena muy creíble lo tuyo Fernando, lo de las "antenitas"... y más habiendo señales de AT por ahí cerca... es muy creíble que eso haya causado la corrupción de los datos de la memoria.
 
Última edición:
Eso ya lo habia comentado... La unica manera posible de determinar si es ruido electrico o no es optoacoplar las señales y alimentar el circuito a baterias.... apartir de alli se van haciendo modificaciones poco a poco para poder eliminar el ruido...
 
Uh.... me mataste che... :oops: :oops: :oops:

Gracias por corregirme, siempre había creído que era así, pero por lo visto no. :eek:

Todas las motos de competición tienen ese "truco" en el encendido? Digo, beneficia "notablemente" el comportamiento en altas revoluciones?

Ya que sabés tanto, no vendría nada mal una tirada de link como pa' matar la ignorancia, o una mini-explicación sobre "En que infiere correr el punto de chispa en un motor..." y si cabe, que relación hay con el avance/retroceso del encendido con la potencia final/torque...

Muchas dudas, ya no más me pongo a investigar un poco a ver si encuentro.

Sos groso. :aplauso:

Saludos.

mmmm, parece un poco sarcastica la pregunta... pero el avance del encendido es por lo siguiente:
La velocidad de ignicion del combustible es siempre igual, pero la velocidad del piston en un motor no. Por eso a bajas vueltas necesitas que se encienda el combustible cuando esta casi el piston en el punto superior y a altas vueltas tiene que encenderse un poco antes de punto superior para que la presion ejercida por el combustible sea optima. Si enciende mucho antes, puede frenar el piston y si es despues, se desperdicia energia.
Pensa que todo eso sucede a decimas de segundos y eso es lo que el cdi controla: el tiempo de encendido segun las rpm. Y no es lo mismo que siempre salte la chispa al mismo tiempo que lo haga segun las vueltas del motor.

Eso ya lo habia comentado... La unica manera posible de determinar si es ruido electrico o no es optoacoplar las señales y alimentar el circuito a baterias.... apartir de alli se van haciendo modificaciones poco a poco para poder eliminar el ruido...

la señal del sensor de disparo de chispa la tengo optoacoplada, pero con masa comun, asi que es como tener todo en un mismo circuito.
La entrada de corriente para alimentar el pic puede ser el problema, ya que la misma viene del alternador (aprox 150 volts alternos) pasa por un diodo 4007, una resistencia, capacitor electrolitico, zener de 10 volts, un 7805 y despues al pic. Esa me parece es la parte mas critica.
Saludos
 
Última edición:
Atrás
Arriba