Estamos diseñando placas de transmisor / receptor 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 ensamblaremos un pequeño lote (aproximadamente 25) a mano, pero tendremos los PCB fabricados profesionalmente.
¿Cuál es tu forma favorita de hacer direcciones únicas por tarjeta en una situación como esta? He reflexionado sobre los interruptores DIP, puentes y rastros de corte / puente. Me inclino por cortar las huellas, pero me gustaría escuchar lo que suelen hacer las personas más experimentadas.
pcb-design
addressing
Steven Ourada
fuente
fuente
Respuestas:
Me sorprende que nadie haya mencionado EEPROM. Hemos tenido que poner números únicos en los productos muchas veces, y la mayoría de las veces han ido a la EEPROM del procesador o, a veces, a ubicaciones reservadas de la memoria del programa. Esto suele ser algo simple de hacer como un paso final de la prueba de producción y el proceso de calibración. Una vez que se considera que la unidad funciona 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 adecuada directamente. A veces, los archivos HEX que se programan en el micro se modifican de forma única desde el archivo HEX de la plantilla maestra con el número de serie único para ese dispositivo, con sumas de verificación y posiblemente otra información modificada en consecuencia.
Hace unos años, estaba trabajando con una empresa que producía cientos de miles de pequeñas cositas al año a través de un fabricante por contrato 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 nuevos rangos de números de serie. Todo salió 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 se ejecute más. En lugar de decirnos, que tenían órdenes estrictas de hacer si algo salía mal, hicieron una copia completa del disco del sistema de trabajo 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.
Pude diseñar sistemas de prueba más nuevos, así que me aseguré de que el rango de números de serie y el estado actual se mantuvieran en una EEPROM en el hardware del probador y no proporcioné ninguna documentación al respecto al fabricante. Hicimos alrededor de una docena de placas de prueba y asignamos cuidadosamente rangos de números de serie separados a cada una. 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úmeros de serie, y solo una persona era el guardián principal de los números de serie y asignaría nuevos rangos a los probadores.
fuente
Mi favorito es el Maxim DS2411 . Es una pequeña parte SOT-23 que contiene un SSN (número de serie de silicio) único . No es muy barato en sí mismo, pero puede ser el más barato en general , cuando se piensa en gastos generales de logística y costos de programación en otras soluciones. La solución de SSN no requiere ninguna intervención / operación manual además del pick-and-place automatizado.
El riesgo de duplicar las identificaciones es casi cero.
En un comentario a esta respuesta, mikeselecticstuff señaló estas EEPROM de dirección MAC . Son EEPROM comunes con una ID ú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.
El operador simplemente tiene que colocar una gota de soldadura sobre ambas mitades para "programar" un bit. Menos de la mitad del tiempo (un punto de soldadura en lugar de dos, y ningún componente para elegir y colocar), y no se requieren componentes. Entonces ahorras dos veces. Y como dice Olin, con el tamaño y el espacio adecuados, son fáciles de unir y destrabar.
Si su placa tiene un microcontrolador (¿qué placa no tiene actualmente?), El servicio de programación puede programar un número de serie . El costo logístico de su lado es mínimo: solo tenga en cuenta con qué serie deben comenzar en cada lote de programación.
El riesgo de errores que resultan en ID duplicados es bajo, dependiendo de qué tan bien esté organizado el servicio de programación, pero sé que sucede.
Sabía lo siguiente, pero no recordaba cómo se llamaban, y también pensé que necesitaba una imagen para explicarlo mejor.
Aparentemente esto se llama una derivación DIP programable . Lo usa como un interruptor DIP, pero en lugar de usar interruptores en miniatura, usa conexiones débiles que puede "programar" rompiéndolos con un bolígrafo o un destornillador pequeño.
Esto tiene la misma gran desventaja que las soluciones de soldadura selectivas: el operador debe decidir qué conexiones romper y cuáles deben dejarse intactas, y luego el error humano nunca está lejos. Fiabilidad en lo que respecta a la unicidad: baja.
fuente
Las EEPROM de I2C son buenas y pequeñas. Existen chips de número de serie de 1 cable.
fuente
Si alguien con capacidad de soldadura debe establecer la dirección, puede diseñar una huella de resistencia de montaje en superficie para cada pin y soldar selectivamente en puentes de 0 ohmios.
fuente
Para el direccionamiento simple de 8 bits, generalmente 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 generalmente lo hago en la pizarra:
Cada enlace es una almohadilla (pero eso es una limitación de mi software; preferiría que no se estañe) para que no tenga máscara de soldadura, y solo 5 mils (en comparación con los 10 mils para el resto de la pista) 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 está usando un paquete de resistencias como resistencias pull-up. Obviamente, podrías reemplazar esto con lo que quieras.
Solo recuerda asegurarte de que no haya una máscara de soldadura sobre ellos.
Otra opción es (como alguien más mencionó) usar almohadillas de resistencia SMT y unirlas. Pero, si solo va a ir a las resistencias para que actúen como pull-ups, ¿por qué no simplemente dejar las resistencias a las que no se conectaría en primer lugar?
fuente
Si tiene algún dispositivo 1-Wire en su circuito, su placa nacerá con un número de serie.
Tengo una placa de inversor de corriente y, dado que los MOSFET tienden a calentarse mucho, agregué un sensor de temperatura DS18B20 en el disipador de calor, que detecta la temperatura de los MOSFET. Esto también le dio a mi inversor un número de serie, asignado al sensor de temperatura.
También puede usar algunos fusibles en su placa y apagar algunos antes de salir de fábrica para funcionar como un dispositivo de número de serie.
fuente