Necesito codificar información sobre la versión o la configuración en la placa/eléctricamente, para que el firmware pueda detectar qué diseño de placa se usa.
¿Qué opciones son posibles y cuáles son sus ventajas y desventajas?
En la parte superior de mi cabeza, dos soluciones fáciles vienen a la mente.
Ambas sugerencias tienen la debilidad de que el usuario final podría modificarlas fácilmente, por ejemplo, para abrir funciones "bloqueadas". Esto puede no ser una preocupación para usted, pero algo a tener en cuenta.
He usado un registro de desplazamiento con pines atados arriba y abajo para codificar la revisión de la placa antes, si ya está usando SPI para algo en su placa, es trivial leerlo.
Si necesita poder cambiar la ID en tiempo de ejecución, sería una buena idea usar puentes en lugar de vincular las entradas con rastros.
Algunas opciones que se me ocurren:-
SMD PADS/ O OHM Resistor Links. Utilice un sistema binario para la configuración del hardware a fin de reducir el número de pines de su procesador.
Saltadores. La placa tendría pines de conector 2xN agregando un puente al pin derecho que le permitiría seleccionar su configuración. Un error es más fácil de resolver. Esto puede ser un poco costoso y usar más espacio en la placa dependiendo del saltador.
Si tiene EEPROM en la placa, es posible que pueda incrustar la configuración en la memoria.
¿Es posible que cambie el firmware en sí usando un #define o similar? Entonces no necesita espacio en la placa ni pines adicionales para la detección de versiones.
Las EEPROM de un cable son una buena solución porque solo requieren un GPIO pero pueden almacenar una gran cantidad de información de configuración. También permiten que el microcontrolador escriba esa información durante la prueba de la placa (por ejemplo, datos de calibración). Muchos tienen un pin de protección contra escritura o un bit programable de una sola vez para evitar más cambios.
Otras ventajas incluyen características útiles como números de serie únicos garantizados.
Esta opción se utiliza en muchos sistemas, como sondas de osciloscopio y baterías, debido a que solo se necesita una línea de datos. La EEPROM puede incluso ser alimentada desde la propia línea de datos.
La principal desventaja es el costo. El costo no es alto, pero en productos producidos en masa, unos pocos centavos pueden importar.
Un ejemplo de tal EEPROM es el DS2431, que almacena 1kb.
awjlogan