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 utiliza.
¿Qué opciones son posibles y cuáles son sus ventajas y desventajas?
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 utiliza.
¿Qué opciones son posibles y cuáles son sus ventajas y desventajas?
Respuestas:
Fuera de mi cabeza, me vienen a la mente dos soluciones fáciles.
Ambas sugerencias tienen una debilidad en que el usuario final podría modificarlas fácilmente, por ejemplo, para abrir funciones "bloqueadas". Esto puede no ser una preocupación para usted, sino 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 trazas.
Algunas opciones que se me ocurren: -
SMD PADS / O OHM Resistor Links. Use un sistema binario para la configuración de hardware para reducir el recuento de pines para su procesador.
Puentes. La placa tendría 2xN pines del conector agregando un puente al pin derecho 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 el tablero dependiendo del puente.
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í mismo usando un #define o similar? Entonces no necesita espacio en el tablero y pines adicionales para la detección de la versión.
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 usa en muchos sistemas, como sondas de osciloscopio y baterías, debido a que solo se necesita una sola línea de datos. La EEPROM puede incluso alimentarse desde la línea de datos en sí.
La principal desventaja es el costo. El costo no es alto, pero en productos producidos en masa, unos pocos centavos pueden ser importantes.
Un ejemplo de tal EEPROM es el DS2431, que almacena 1kb.