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 la placa se utiliza.
¿Qué opciones son posibles y cuáles son sus pro / contras?
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 la placa se utiliza.
¿Qué opciones son posibles y cuáles son sus pro / contras?
Desde lo alto de mi cabeza, dos soluciones fáciles vienen a mi mente.
Ambas sugerencias tienen la debilidad de que el usuario final podría modificarlas fácilmente, por ejemplo, para abrir las funciones "bloqueadas". Puede que esto no sea 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 de ahora, si ya estás usando SPI para algo en tu placa, es trivial leerlo.
Si necesita poder cambiar la ID en el tiempo de ejecución, usar una brújula en lugar de unir las entradas con trazas sería una buena idea.
Algunas opciones que se me ocurren: -
Enlaces de resistencia SMD PADS / O OHM. Use un sistema binario para la configuración del hardware para reducir el número de pines de su procesador.
Jumpers. La placa tendría 2xN pines de conector, y agregar 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 la placa según el puente.
Si tiene EEPROM en la placa, es posible que pueda incrustar la configuración en la memoria.
¿Es posible que cambie el firmware utilizando 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 los 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 única línea de datos. La EEPROM incluso puede alimentarse desde la propia línea de datos.
La principal desventaja es el costo. El costo no es alto, pero en productos de producción masiva, unos pocos centavos pueden ser importantes.
Un ejemplo de una EEPROM de este tipo es el DS2431, que almacena 1kb.
Lea otras preguntas en las etiquetas pcb-design firmware