Método para asignar direcciones únicas por placa

18

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.

Steven Ourada
fuente
¿Qué tan reconfigurables tendrían que ser? ¿Y cuán físicamente robusto? ¿Es seguro asumir desde el control remoto de RF que habrá un ambiente de vibración hostil?
JustJeff
44
Evite los interruptores DIP; la gente los cambiará.
Brian Carlton
@JustJeff, no deberían tener que ser reconfigurados a menos que uno de los controladores falle y necesite ser reemplazado, o algo así. No habrá mucha vibración.
Steven Ourada
@Brian, sí, existe esa posibilidad, pero no me preocupa demasiado.
Steven Ourada
1
Me estoy dando cuenta de que mi pregunta probablemente era demasiado amplia y de opinión. Me gustan las respuestas y he aprendido cosas buenas; Gracias a todos los que han contribuído.
Steven Ourada

Respuestas:

15

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.

Olin Lathrop
fuente
1
Hola Olin Brian mencionó EEPROM en su respuesta, pero no agregó detalles. Su historia señala el punto débil de la asignación programática de identificaciones únicas. Hay una cadena de producción que involucra algunos pasos logísticos donde las cosas pueden salir mal. También nos sucedió una vez cuando el servicio de programación de nuestro disti olvidó incrementar el contador. Tarde o temprano suceden estas cosas. OMI, nada supera el SSN (ver mi respuesta): sin programación, sin administración, sin nada :-)
stevenvh
15

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.

Ω

ingrese la descripción de la imagen aquí

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.

derivación DIP programable
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.

stevenvh
fuente
2
Estoy de acuerdo con los puentes de soldadura si un humano tiene que hacer cada uno. Intenté algunas cosas diferentes, pero encontré dos almohadillas de medio círculo que funcionan mejor. Con el tamaño y el espacio correctos, ambos son fáciles de unir y destrabar. Puede ver algunos de estos en una placa en embedinc.com/products/ready02/qprot05_1280.jpg debajo del extremo derecho del conector DB-9 cerca de la parte superior de la placa.
Olin Lathrop
7

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

Brian Carlton
fuente
Hmm, no había pensado mucho en eso, aunque tendría que diseñar alguna interfaz para leer eso y presentar continuamente la dirección al codificador / decodificador, ya que no tengo acceso a las partes internas de dicho chip. Ahora que lo menciona, sin embargo, parece que el proveedor podría ofrecer eso ya que los codificadores / decodificadores son solo microcontroladores con algún firmware patentado. Puede que tenga que hablar con ellos sobre eso.
Steven Ourada
3

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.

B Pete
fuente
Sí, ese es un camino a seguir. Mi teoría es que es algo más fácil cortar trazas que puentes de soldadura, pero podría estar equivocado.
Steven Ourada
55
@Steven: a primera vista, los rastros de corte pueden parecer más simples ya que no necesita componentes, pero el corte es complicado y es costoso verificar si tiene una interrupción adecuada. Soldar es más barato, especialmente. cuando no necesitas los puentes (ver mi respuesta).
stevenvh
1

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:

ingrese la descripción de la imagen aquí

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?

Majenko
fuente
44
Para responder a su última pregunta: porque los costos de colocación selectiva de componentes son caros; tienes que hacerlo a mano. Es más barato tener el componente colocado por el pick-and-place y soldar 1 punto a mano que pick-and-place manualmente y luego soldar manualmente dos puntos. Además, si coloca todas las resistencias, puede usar una matriz de resistencias (tal como lo hizo), que también es más barata. Costo de colocar 1 resistencia >> costo de la resistencia misma.
stevenvh
2
¿Cómo es cortar más permanente que soldar? Puedo resolver tu corte tan fácil como puedes eliminar mi soldadura. La soldadura también es más confiable (¿cómo sabes que está bien cortada?). Para ser sincero, no me gusta la idea de corte, pero eso era obvio, supongo :-)
stevenvh
Esto es muy cierto. Todavía no uso P&P, mis volúmenes no hacen que valga la pena. Sin embargo, me gustaría construir mi propia máquina P&P algún día ... Pero primero necesito construir una máquina de perforación CNC para los agujeros;)
Majenko
Puedes soldarlo fácilmente, sí. La permanancia es más psicológica que física.
Majenko
Si su P&P podrá hacer 01005s (0.25 mm x 0.12 mm) ¡Quiero venir y echar un vistazo! ¡No tengo idea de cómo lo hacen!
stevenvh
1

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.

Maxthon Chan
fuente