EEPROM Microcontrolador

0

Es solo una pregunta general. He diseñado algunas tarjetas de microcontrolador con EEPROM a bordo. Esta EEPROM es para almacenar algunos parámetros de configuración para programas como datos de calibración e identificaciones del sistema. Ahora, cuando quiero escribir algunos parámetros de configuración, cargue algún programa para escribir en esa dirección específica de EEPROM y ejecutar una vez. Luego cargo el programa de aplicación. Creo que esta no es la forma más eficiente de hacer esa tarea. ¿Cuál es el método general para escribir datos EEPROM. Una forma de proporcionar alguna interfaz externa a EEPROM y luego usar algún programa de PC escriba directamente en ella. Pero supongo que esto expone la interfaz externa y conduce al sistema vulnerable. Otro podría ser agregar métodos en el programa de aplicación utilizando el puerto serie y definir alguna API para cambiar esos parámetros. Solo quiero conocer la práctica aceptable en la comunidad desde el punto de vista de la accesibilidad y la seguridad. Si implica algún cambio de hardware, puedo incorporarlo en el diseño futuro. Gracias

EDITAR- La EEPROM a bordo es una EEPROM externa.

    
pregunta ragdarbari

3 respuestas

1

La forma en que normalmente lo hago es tener un indicador "La EEPROM es válida" en la EEPROM. Luego, el programa principal contiene un conjunto de valores predeterminados, y si la EEPROM no es "válida", carga los valores predeterminados en la EEPROM y establece el indicador válido.

De esa forma, la primera vez que se enciende la placa, configura la EEPROM para usted, pero los futuros powerups solo usan los datos de la EEPROM que ya están configurados.

También tiene la ventaja de que puede restablecerse a la configuración de fábrica si lo desea.

Por supuesto, entonces depende del programa principal actualizar esos valores según sea necesario, pero sin saber qué hace su sistema, no puedo hacer comentarios al respecto.

    
respondido por el Majenko
1

Otro enfoque es no para almacenarlo en la EEPROM interna, sino en una EEPROM SPI externa. Esto se puede programar por separado, o puede agregar un conector de programación a la placa para programarlo.

Si la EEPROM está dentro del microcontrolador, entonces tiene que encontrar alguna manera de programarlo desde su aplicación. Posiblemente a través del depurador en el circuito, si tiene conexiones para eso. De lo contrario, tendrá que implementar un protocolo de comunicaciones.

    
respondido por el pjc50
1

Una API para leer / escribir la EEPROM, disponible a través de UART o cualquier otra interfaz, es bastante flexible: las funciones siempre están disponibles sin la necesidad de reemplazar el firmware. Por supuesto, debe verificar si esto es aceptable para su aplicación específica.

En cuanto a la vulnerabilidad: en caso de una "EEPROM a bordo" (adjunta a la MCU a través de SPI o I2C), esto posiblemente requiera acciones adicionales (como el cifrado), de lo contrario, con algún esfuerzo, siempre puede acceder a la EEPROM.

Si es necesario un cierto nivel de seguridad, hay "EEPROM on-mcu" con soporte de contraseña HW en la MCU; por ejemplo, esto está disponible en los ARM de TI. Posiblemente combinado con algo como una tarjeta SD o una memoria USB como medio para proporcionar (y eliminar) la contraseña.

    
respondido por el Beryllium

Lea otras preguntas en las etiquetas