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?
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?
Se me ocurren dos soluciones fáciles.
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.
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.
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.
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 ).
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.
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.
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
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.
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 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.
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/