13 votos

Lo que es una buena manera para que el mcu para determinar qué versión de hardware que se está ejecutando?

Estoy trabajando en un nuevo diseño de producto y probablemente habrá pequeños o grandes cambios de hardware y correcciones durante la vida útil del producto. Para futuras actualizaciones de firmware en el campo que necesita una forma para determinar la revisión de hardware. ¿Qué es una buena estrategia?

Actualmente estoy tirando de los dos pasadores de repuesto arriba/abajo con resistencias externas y comprobación del patrón. Esto sólo permite 4 revisiones de hardware, pero que puede ser suficiente para fines prácticos. Podría convertirse en un problema si necesito uno o ambos de los pines en un futuro la revisión de hardware.

Supongo que una manera más económica podría ser un divisor resistivo conectado a un pin ADC. Cada revisión de hardware pueden tener diferente valor de las resistencias. Por desgracia no me sobra ningún Adc en mi diseño actual.

Supongo que otra forma podría ser para codificar el número de versión del hardware en una EEPROM o la mcu flash durante la producción? (No tenemos esa facilidad en el momento.)

Supongo que estoy buscando sugerencias para una flexible y robusto método.

[EDITAR]

Re. sugerencia de @trav1s: no tengo una dirección de bus de por sí, pero tengo una 24LCxx EEPROM en el bus I2C. La baja de 3 bits de la Dirección de Esclavo es modificable. Supongo que podría cambiar los bits de la dirección y la búsqueda de la EEPROM durante el inicio.

7voto

Witek Puntos 116

Esto es algo de lo que me acuerdo en una base permanente. Hemos hardware muy complejo que ha estado en el campo durante casi 10 años, con diferentes versiones de los diferentes subsistemas. Algunos de los subsistemas de 2-bits de código, pero como usted ha mencionado, que no siempre es suficiente.

La EEPROM sugerencia es buena, pero requiere de una programación de la EEPROM y rellenar la junta con la versión correcta.

Lo que yo sugeriría es de 8 bits en paralelo en la serie del registro de desplazamiento como un 74HC166. El número de versión se pueden establecer en la entrada de la placa de sí mismo atar entradas de ALTA o BAJA y, a continuación, sólo se necesita de 3 pines para cargar y leer el registro de desplazamiento de un MCU.

6voto

rishi Puntos 1

Una opción que el uso de sólo dos pines digitales es algo como esto:

Circuit diagram

Cambiando el R1 y C1 valores que puede tener diferentes tiempos de carga de los condensadores que se puede medir para determinar la versión del hardware.

2voto

djpercent Puntos 86

Si hay algún espacio en el bus de direcciones se puede poner una ROM de registro en el autobús que puede ser leído por el MCU. El registro contendrá el número de versión del hardware. Cuando el MCU se lee de que la dirección del registro de escribir su valor para el bus de datos. El registro podría estar conectado en la placa o si desea ser capaz de cambiar el número de versión con sus manos desnudas podría hacer que los pines que puede ser atado arriba/abajo como usted está haciendo ahora.

1voto

lillq Puntos 4161

Yo no usaría una versión número programado en el microcontrolador. A menos que el software es diferente para las distintas versiones, pero, a continuación, la junta versión parece superfluo para mí. Tienen como algunas versiones del software del microcontrolador como sea posible, idealmente sólo uno. Cada versión diferente puede causar problemas logísticos.

La EEPROM código es una buena idea, ya que permite un montón de diferentes junta de códigos, pero lo saque del microcontrolador, en un dispositivo independiente. La memoria EEPROM es caro para grandes capacidades (mucho más caro por bits de Flash), pero para un par de bytes que puede encontrar barato. Este es sólo de 16 centavos en 100s y sólo necesita 1 e/S línea.

Una manera de disminuir la probabilidad de errores es tener un paquete diferente para cada junta versión. Así que tiene un lote de memorias eeprom programado con un número de versión 1 en SOT-23, la próxima versión 2 en SOIC, etc. A continuación, usted no puede tener una versión de 1 EEPROM en una versión 2 de la junta.

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