Autor Tema: Recovery de programa principal en memoria externa  (Leído 2554 veces)

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

Desconectado Joxis

  • PIC10
  • *
  • Mensajes: 5
Recovery de programa principal en memoria externa
« en: 29 de Agosto de 2019, 18:51:35 »
Buen día  a todos, realicé una búsqueda del tema y no encontré algo relacionado, si ya existe y alguien lo conoce pido de favor me direccionamiento al tema, gracias.

Actualmente trabajo bastante con los micro controladores de referencia pic18f25k40 y pic18f67k40, no he tenido grandes problemas pero en un par de ocasiones he tenido el inconveniente de que algunos datos del programa principal se corrompen (esto se corrige reprogramando en microcontrolador) . Una idea que se me ha ocurrido pero no se como llevarla a cabo, quiero grabar en una sección de la memoria flash de programa una rutina de comprobación de errores, esto se haria relacionando un valor de checksum con el programa principal, si son diferentes se daría la alarma de corrupción de datos. A su vez en una memoria no volátil externa pensaba guardar una copia del programa y en el caso del fallo hacer un recovery de la información al dispositivo.

No sé si sea algo normal, algo irrelevante o hayan mejores soluciones a mi problema. Cabe decir que las seguridades contra ruidos en el hardware están presentes y como digo son casos que se han presentado en muy rara ocasión. Pero quisiera resolverlos del todo.

como podría generar esa rutina de chequeo? o ya existe una función que permita realizar ésto?

Gracias
« Última modificación: 29 de Agosto de 2019, 18:59:00 por Joxis »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Recovery de programa principal en memoria externa
« Respuesta #1 en: 29 de Agosto de 2019, 18:59:19 »
Citar
Una idea que se me ha ocurrido pero no se como llevarla a cabo, quiero grabar en una sección de la memoria flash de programa una rutina de comprobación de errores, esto se haria relacionando un valor de checksum con el programa principal, si son diferentes se daría la alarma de corrupción de datos. A su vez en una memoria no volátil externa pensaba guardar una copia del programa y en el caso del fallo hacer un recovery de la información al dispositivo.

¿Y que te hace pensar de que tu programa de checkeo funcione correctamente? Y la otra pregunta es.. ¿como pensas proteger tu programa en una copia externa mas que con encriptacion?
Lo cual hace que tu programa de checkeo sea aun mas grande.

Desconectado Joxis

  • PIC10
  • *
  • Mensajes: 5
Re:Recovery de programa principal en memoria externa
« Respuesta #2 en: 29 de Agosto de 2019, 19:05:20 »
Citar
Una idea que se me ha ocurrido pero no se como llevarla a cabo, quiero grabar en una sección de la memoria flash de programa una rutina de comprobación de errores, esto se haria relacionando un valor de checksum con el programa principal, si son diferentes se daría la alarma de corrupción de datos. A su vez en una memoria no volátil externa pensaba guardar una copia del programa y en el caso del fallo hacer un recovery de la información al dispositivo.

¿Y que te hace pensar de que tu programa de checkeo funcione correctamente? Y la otra pregunta es.. ¿como pensas proteger tu programa en una copia externa mas que con encriptacion?
Lo cual hace que tu programa de checkeo sea aun mas grande.

Precisamente es una idea que me nació, no se que tan viable sea. Pero pongamos el ejemplo en que se implemente en un dispositivo que se encuentre ubicado en una zona de difícil acceso o con limitaciones de comunicación. Si se presenta algún problema el equipo podría tener la opción de auto diagnosticar el problema primero y corregirlo. Por ahora no he pensado en seguridades para los datos como encriptamiento, y para una aplicación básica pensaría que no es necesario.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Recovery de programa principal en memoria externa
« Respuesta #3 en: 29 de Agosto de 2019, 19:20:31 »
Claro el problema esta en que supones que es seguro que el programa de auto diagnostico nunca falla. si Supuestamente se "desprograma", entonces deja de ser una solución valida.
El único lugar donde vi una memoria Dual así es en motherboards con sus dual BIOS.

Tal ves el problema provenga de otro lado, entonces buscaria intentar evitar ese problema, buscando un mejor filtrado, otro routeo de la PCB. ¿Que es lo que lo causa?- Esto seria lo ideal.

Supongamos que te queres asegurar, ya sabes que tu programa de auto diagnostico puede no funcionar correctamente. Y pensemos poner otro microcontrolador mas. Con el mismo programa, y que entre los 2 cuando alguno detecte algun problema entonces se proceda a grabar el otro. Todo a un costo de otro microcontrolador que seguramente no vale la pena.

Desconectado AccioRw

  • PIC16
  • ***
  • Mensajes: 165
Re:Recovery de programa principal en memoria externa
« Respuesta #4 en: 30 de Agosto de 2019, 04:18:04 »
Me parece curioso tu problema, yo uso bastante el 18F66K40 y no he tenido nunca es problema en más de 50 dispositivos que irán ya, cierto es que no es el mismo micro, ni el  mismo datasheet pero me voy mas a que posiblemente tengas algún problema de ruido en el pin MCLR que eleve tanto el voltaje que te entre en el modo programación o algo parecido.
- Te ha pasado en varias PCBs distintas ?
- Estás respetando la recomendación del datasheet para el pin de MCLR (yo uso en R1=10K, R2= 150ohm, C1 = 100nF) te adjunto una imagen con el esquema del datasheet

EDITO: tienes tambien puesto los condensadores de desacoplo en los pines de alimentación y alguno buck si tienes cierto consumo ??

En cuanto a tu pregunta, haría algo parecido a lo que dice KILLERJC por que una vez pierdas la configuración del micro no te servirá para nada el que tengas una copia por que probablemente no va a poder llegar a la rutina de leer/copiar por lo tanto yo pondría dos micros con la misma programación y en caso de que alguno detecte algo que no debería que pase a tomar el control. Pero insisto que pienso mas en algún problema de ruidos, EMIs...
« Última modificación: 30 de Agosto de 2019, 04:26:42 por AccioRw »

Desconectado Joxis

  • PIC10
  • *
  • Mensajes: 5
Re:Recovery de programa principal en memoria externa
« Respuesta #5 en: 30 de Agosto de 2019, 11:48:03 »
Si, Es la configuración que uso en mi MLCR. Digamos que no es algo muy frecuente o no se como lo considerarían. En alrededor de 700 dispositivos se han presentado 5 o 6 casos. Pero quisiera llevar la probabilidad de error a cero. Lo que dicen de si pierdo la configuración del micro y nunca se corre la rutina de mi llamado recovery, tienen toda la razon, precisamente por esa razón inicie esto diciendo que queria saber que opinaban sobre la viabilidad de ésto y veo que es muy claro. No valdría la pena. Revisare filtros y demás configuraciones, claro que incluso mi diseño tiene algunos filtros LC en la alimentación.

Otra pregunta, alimento mis circuitos con fuente 12V y para regular el voltaje uso regulador de voltaje 1117-5v. Podría cambiar esto por un convertidor Buck y ganar estabilidad o me estoy metiendo en un terreno que nada tiene que ver?

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Recovery de programa principal en memoria externa
« Respuesta #6 en: 30 de Agosto de 2019, 14:16:32 »
Es muy raro que se corrompa la memoria de programa. ¿Hay radiación fuerte en el ambiente? ¿RX, radioisótopos o algo similar?

Desconectado Joxis

  • PIC10
  • *
  • Mensajes: 5
Re:Recovery de programa principal en memoria externa
« Respuesta #7 en: 30 de Agosto de 2019, 15:42:15 »
Es muy raro que se corrompa la memoria de programa. ¿Hay radiación fuerte en el ambiente? ¿RX, radioisótopos o algo similar?

No podría asegurarlo ya que podrían estar cerca de equipos de rayos x dentales. Suponiendo que sea así que precaución debería tener? encapsular el chip tal vez? Gracias

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Recovery de programa principal en memoria externa
« Respuesta #8 en: 30 de Agosto de 2019, 18:35:02 »
Debería estar protegido porque la radiación puede borrar algún bit de memoria o incluso estropear algún transistor y por lo tanto el chip.

Desconozco el nivel de radiación que aguantan los chips o cómo protegerlos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino

Desconectado Joxis

  • PIC10
  • *
  • Mensajes: 5
Re:Recovery de programa principal en memoria externa
« Respuesta #10 en: 30 de Agosto de 2019, 18:53:15 »
Debería estar protegido porque la radiación puede borrar algún bit de memoria o incluso estropear algún transistor y por lo tanto el chip.

Desconozco el nivel de radiación que aguantan los chips o cómo protegerlos.

Vale, te agradezco. Es algo que ni siquiera había considerado, revisé el enlace que me enviaste y veo que si puede ser relevante. Los equipos de rayos X de los que hablo pueden generar radiación con energía desde 60 Kev y claro q es algo que debo considerar. Esta información es bastante valiosa para mi ya que se están desarrollando algunos proyectos ademas con isotopos radiactivos como tecnecio-99m.

Ahora investigare si los dispositivos con los que he tenido inconveniente tienen en común estar cerca de una fuente de radiación ionizante. Te estaré comentando  :)

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:Recovery de programa principal en memoria externa
« Respuesta #11 en: 30 de Agosto de 2019, 19:36:48 »
Si, Es la configuración que uso en mi MLCR. Digamos que no es algo muy frecuente o no se como lo considerarían. En alrededor de 700 dispositivos se han presentado 5 o 6 casos. Pero quisiera llevar la probabilidad de error a cero. Lo que dicen de si pierdo la configuración del micro y nunca se corre la rutina de mi llamado recovery, tienen toda la razon, precisamente por esa razón inicie esto diciendo que queria saber que opinaban sobre la viabilidad de ésto y veo que es muy claro. No valdría la pena. Revisare filtros y demás configuraciones, claro que incluso mi diseño tiene algunos filtros LC en la alimentación.

Otra pregunta, alimento mis circuitos con fuente 12V y para regular el voltaje uso regulador de voltaje 1117-5v. Podría cambiar esto por un convertidor Buck y ganar estabilidad o me estoy metiendo en un terreno que nada tiene que ver?

  Los buck y los booster meten ruido electromagnético. Yo optaría mejor por LDO.

  Por otro lado si el micro trabaja en entornos radiactivos lo encapsularía con una tapa metálica por encima soldada a la pcb a un plano de negativo y aparte lo montaría en una placa a 4 capas, le haría a la placa dos buenos planos de tierra arriba y abajo y las pistas las trazaría por los layers interiores.  Los componentes rodeados por los planos de negativo. 

  Es más costoso y engorroso todo pero si tu problema está en la radiación es la única forma de empezar a atacar el problema.   Para que la flash de un micro se modifique ya tiene que estar jodida la cosa ahí en el entorno.


 

anything