Versión o configuración de codificación en PCB

10

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?

    
pregunta Henrik Hansen

4 respuestas

14

Desde lo alto de mi cabeza, dos soluciones fáciles vienen a mi mente.

  1. Tenga n líneas conectadas al GPIO de su microcontrolador. Ata estos altos o bajos dependiendo de la versión de su tablero. Esto le daría opciones de configuración de \ $ 2 ^ n \ $ board. Esto usaría pines n en su microcontrolador. El consumo de corriente estática sería despreciable.
  2. Tenga una entrada para el ADC del microcontrolador y use un divisor de voltaje con diferentes valores dependiendo de la configuración de la placa. Esto solo usaría un solo pin del microcontrolador. Esto tiene la desventaja de que habrá un consumo de corriente estática a través del divisor. También sería propenso a errores de lista de materiales, mientras que la primera sugerencia está programada para el tablero.

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.

    
respondido por el awjlogan
9

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.

    
respondido por el Colin
7

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.

    
respondido por el R.Joshi
1

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.

    
respondido por el user

Lea otras preguntas en las etiquetas