Método para asignar direcciones únicas por tarjeta

18

Estamos diseñando placas transmisoras / receptoras para una aplicación de control remoto de RF. Para evitar hablar entre pares no coincidentes, queremos direcciones únicas por placa. La dirección se especifica para los chips del codificador / decodificador a través de 8 pines de dirección.

Probablemente armaremos un pequeño lote (alrededor de 25) a mano, pero haremos que los PCB se fabriquen profesionalmente.

¿Cuál es tu forma favorita de hacer direcciones únicas por placa en una situación como esta? He ponderado los interruptores DIP, los puentes y las trazas de corte / puenteo. Me estoy inclinando hacia el corte de rastros, pero me gustaría escuchar lo que las personas más experimentadas suelen hacer.

    
pregunta Steven Ourada

6 respuestas

15

Me sorprende que nadie mencione EEPROM. Tuvimos que poner números únicos en los productos un montón de veces, y la mayoría de las veces han ingresado a la EEPROM del procesador o, a veces, a ubicaciones reservadas de la memoria del programa. Esto suele ser algo simple como un paso final de la prueba de producción y el proceso de calibración. Una vez que se considera que la unidad está funcionando y se ha realizado cualquier calibración, el sistema de prueba de producción envía un comando al micro para darle su número de serie, o utiliza la interfaz de programación para escribir el número de serie en la ubicación apropiada directamente. A veces, los archivos HEX que se están programando en el micro se modifican una sola vez del archivo HEX de la plantilla maestra con el número de serie único para ese dispositivo, con sumas de comprobación y posiblemente otra información modificada en consecuencia.

Hace unos años trabajaba con una compañía que producía cientos de miles de pequeñas cositas al año a través de un fabricante contratado en China. Enviamos dos sistemas de prueba completos al fabricante chino. El programa de prueba mantendría un archivo de número de serie y podríamos enviarles nuevos archivos para configurar las unidades para los nuevos rangos de números de serie. Todo salió bastante bien por un tiempo, hasta que un día obtuvimos unidades con números de serie duplicados. Resulta que los chinos hicieron algo estúpido con uno de los sistemas para que no funcionara más. En lugar de decirnos, que tenían órdenes estrictas de hacer si algo salía mal, hicieron una copia del disco completo del sistema operativo al otro sistema. Por supuesto, esto también copió los archivos de números de serie y el estado actual, por lo que a partir de entonces ambos sistemas entregaron la misma secuencia de números de serie. Eso fue un dolor para desentrañar.

Pude diseñar nuevos sistemas de prueba, por lo que me aseguré de que el rango del número de serie y el estado actual se mantuvieran en una EEPROM en el hardware del comprobador y no proporcioné ninguna documentación al respecto al fabricante. Hicimos alrededor de una docena de tableros de prueba, y asignamos cuidadosamente intervalos de números de serie a cada uno. Cuando el fabricante necesitaba actualizarse con un nuevo bloque de números de serie, les enviamos tableros de prueba actualizados. Hasta ahora este sistema ha funcionado muy bien. También facilita la producción de la unidad ocasional aquí o en un sitio de fabricación diferente. Cada lugar tiene su propio probador con su propio rango de número de serie, y solo una persona era el encargado principal de los números de serie y asignaba nuevos rangos a los probadores. Luego, puede seleccionar cualquier probador y usarlo para aprovisionar unidades sin tener que preocuparse por los números de serie.

    
respondido por el Olin Lathrop
15

Mi favorito es Maxim DS2411 . Es una parte pequeña de SOT-23 que contiene un SSN único (Número de serie de silicio). No es muy barato en sí mismo, pero puede ser el más barato en general , cuando piensa en gastos generales de logística y costos de programación en otras soluciones. La solución SSN no requiere ninguna intervención / operación manual además de la selección y colocación automatizadas.
El riesgo de ID duplicados es casi cero.
En un comentario a esta respuesta mikeselecticstuff señaló estas EEPROM de direcciones MAC . Son EEPROM comunes con una identificación única programada en un área protegida contra escritura de la EEPROM. Son más baratos que el DS2411, y les queda algo de almacenamiento para los datos del usuario.

Si desea "programar" a través de soldadura me saltearía los puentes 0 \ $ \ Omega \ $; soldarlos simplemente lleva demasiado tiempo. En su lugar, coloque dos almohadillas de medio círculo separadas por 0.1 mm.

Eloperadorsimplementetienequecolocarunagotadesoldadurasobreambasmitadespara"programar" un bit. Menos de la mitad del tiempo (un punto de soldadura en lugar de dos, y ningún componente para recoger y colocar), y no se requieren componentes. Así que ahorras dos veces Y como dice Olin, con el tamaño y la separación correctos, ambos son fáciles de salvar y de desunir.

Si su tarjeta tiene un microcontrolador (¿qué tarjeta no tiene en estos días?), puede tener un número de serie programado por el servicio de programación. El costo logístico por su parte es mínimo: simplemente haga un seguimiento de con qué serie deben comenzar en cada lote de programación.
El riesgo de errores que resulten en identificaciones duplicadas es bajo, dependiendo de qué tan bien esté organizado el servicio de programación, pero sé que sucedió.

Sabía lo siguiente, pero no recordaba cómo se llamaban, y también pensé que necesitaba una foto para explicarlo mejor.


Aparentemente,estosedenominaderivaciónDIPprogramable.LousacomouninterruptorDIP,peroenlugardeusarinterruptoresenminiatura,utilizaconexionesdébilesquepuede"programar" al romperlas con un bolígrafo o un destornillador pequeño.
Esto tiene la misma gran desventaja que las soluciones de soldadura selectiva: el operador debe decidir qué conexiones romper y cuáles se deben dejar intactas, y entonces el error humano nunca está lejos. Fiabilidad en cuanto a la singularidad: baja.

    
respondido por el stevenvh
7

Las EEPROM I2C son buenas y pequeñas. Existen chips de número de serie de 1 cable.

    
respondido por el Brian Carlton
3

Si alguien con capacidad de soldadura debe configurar la dirección, puede establecer una huella de resistencia de montaje en superficie para cada pin y soldar selectivamente en puentes de 0 ohmios.

    
respondido por el B Pete
1

Para direccionamiento simple de 8 bits, normalmente uso pistas de corte. Es más permanente que los puentes / enlaces de soldadura, y disuade a las personas de cambiarlo tanto. Así es como normalmente lo hago en la pizarra:

Cada enlace es una almohadilla (pero eso es una limitación de mi software, prefiero que no esté enlatado), por lo que no tiene máscara de soldadura, y solo 5 milésimas de pulgada (en comparación con las 10 milésimas de pulgada para el resto del pista) lo que hace que sea más fácil de cortar. 5 milésimas de pulgada es el mínimo para la señal que llevan en mi caso, podría usar más grueso. En mi ejemplo, solo se usa un paquete de resistencias como resistencias de pull-up. Obviamente, podrías reemplazar esto con lo que quieras.

Solo recuerda asegurarte de que no haya máscara de soldadura sobre ellos.

Otra opción es (como mencionó otra persona) usar almohadillas de resistencia SMT y puentearlas. Pero, si solo vas a ir a las resistencias para que actúen como dominadas, ¿por qué no dejar de lado las resistencias a las que no estarías conectado en primer lugar?

    
respondido por el Majenko
1

Si tiene algún dispositivo 1-Wire en su circuito, su placa nacerá con un número de serie.

Tengo una placa inversora de potencia y, como los MOSFET tienden a calentarse mucho, agregué un sensor de temperatura DS18B20 en el disipador de calor, detectando la temperatura de los MOSFET. Esto también le dio a mi inversor un número de serie, según lo asignado al sensor de temperatura.

También puedes usar algunos fusibles en tu placa y volar algunos de ellos antes de salir de fábrica para funcionar como un dispositivo con número de serie.

    
respondido por el Maxthon Chan

Lea otras preguntas en las etiquetas