12 votos

Versión de codificación o configuración en la placa de circuito impreso

Necesito codificar la información sobre la versión o la configuración en la placa/electricidad, para que el firmware pueda detectar la disposición de la placa que se utiliza.

¿Qué opciones son posibles y cuáles son sus ventajas e inconvenientes?

1 votos

También está esta pregunta de hace un tiempo, las respuestas son similares a las ya dadas (¡lo cual es bueno!): electronics.stackexchange.com/questions/41757/

15voto

Potato Monster Puntos 6

Se me ocurren dos soluciones fáciles.

  1. Tenga n líneas conectadas al GPIO de su microcontrolador. Ate estas líneas en alto o en bajo dependiendo de la versión de su placa. Esto le daría \$2^n\$ opciones de configuración de la placa. Esto utilizaría n pines en su microcontrolador. El consumo de corriente estática sería insignificante.
  2. Tener una entrada al ADC del microcontrolador y utilizar un divisor de tensión con diferentes valores dependiendo de la configuración de la placa. De este modo, sólo se utilizaría un único 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 los errores de la lista de materiales, mientras que la primera sugerencia está conectada a la placa.

Ambas sugerencias tienen un punto débil, ya que el usuario final podría alterarlas fácilmente, por ejemplo, para abrir funciones "bloqueadas". Puede que esto no le preocupe, pero hay que tenerlo en cuenta.

1 votos

También existe una combinación de [1] y [2]. Puedes usar un pin del microcontrolador para el ADC, pero usar componentes del mismo valor conectados en paralelo para formar un divisor de tensión. Así, por ejemplo, puedes tener cuatro resistencias de 10k formando 10k/float (pull to vcc), float/10k(pull to gnd), 10k/10k(vcc/2), 5k/10k(2/3 de vcc), 10k/5k (1/3 de vcc). Así que en resumen: una línea en la lista de materiales, sólo una cantidad diferente y una entrada ADC requerida. También ayuda visualmente.

2 votos

Puedes librarte del consumo de corriente estática de la solución ADC si puedes prescindir de un segundo pin: En lugar de un divisor de voltaje entre VCC y GND, reemplaza VCC o GND con el segundo pin - sólo necesitas leer la configuración de la placa una vez, al inicio del programa, así que pon el pin alto/bajo como sea necesario para habilitar el divisor de voltaje, haz la medición del ADC, luego cambia el pin para que ambos extremos del divisor de voltaje estén al mismo potencial y no fluya la corriente.

1 votos

La versión GPIO también es propensa a los errores de la lista de materiales, porque normalmente se configura con enlaces de cero ohmios. Podrías hacerlo en el esquema y el diseño, pero eso es más caro (tiempo de diseño costes ).

10voto

shanyu Puntos 4775

He usado un registro de desplazamiento con pines atados en alto y bajo para codificar la revisión de la placa antes, si ya estás usando SPI para algo en tu placa es trivial leerlo.

Si necesitas poder cambiar el ID en tiempo de ejecución, entonces usar puentes en lugar de atar las entradas con trazos sería una buena idea.

0 votos

Estaba buscando en Google la variante de número de serie de silicio no única, pero esta es una alternativa inteligente. Especialmente si lo combinas con un expansor IO de un solo cable.

0 votos

¿Cómo se cargan los datos de la versión en el registro de desplazamiento?

1 votos

Si utilizas un 74xx165 (o un registro paralelo similar), puedes conectar sus entradas a Vdd y Vss para establecer lo que obtienes cuando sincronizas los datos

7voto

Simon Sarris Puntos 33799

Algunas opciones que se me ocurren:-

PADS SMD/ O OHM Resistor Links. Utilice un sistema binario para la configuración del hardware para reducir el número de pines de su procesador.

Saltos. La placa tendría 2xN pines de conexión añadiendo un jumper en el pin correcto te permitiría seleccionar tu 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 jumper.

Si tienes una EEPROM en la placa, es posible que puedas incrustar la configuración en la memoria.

¿Es posible hacer que cambie el propio firmware usando un #define o algo similar? Entonces no necesitas espacio en la placa ni pines extra para la detección de la versión.

2voto

Godisemo Puntos 204

Las EEPROMs de un solo cable son una buena solución porque sólo 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). Muchas tienen un pin de protección contra escritura o un bit programable de una sola vez para evitar más cambios.

Otras ventajas son funciones útiles, como la garantía de un número de serie único.

Esta opción se utiliza en muchos sistemas, como sondas de osciloscopio y baterías, debido a que sólo se necesita una única línea de datos. La EEPROM puede incluso alimentarse desde la propia línea de datos.

La principal desventaja es el coste. El coste no es elevado, pero en productos fabricados en masa unos pocos céntimos pueden importar.

Un ejemplo de este tipo de EEPROM es el DS2431, que almacena 1kb.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X