Elegir un conector de depuración/programación para un microcontrolador

Resumen TL;DR: para ARM SWD, TI Spy-Bi-Wire, o Microchip ICD, usa la huella de Tag-Connect sin patas con asignaciones de pin/pad estándar, y consigue cables de Tag-Connect.

Al diseñar dispositivos que utilizan microcontroladores, es necesario proporcionar un conector de depuración y programación. Esto podría ser utilizado solo para el desarrollo, cuando se escribe y se depura el software, o también podría dejarse en las unidades de producción, para la programación en fábrica.

Los fabricantes y los fabricantes de herramientas se aseguraron de que vivimos en un mundo donde hay una multitud de conectores de depuración con mucha confusión a su alrededor. Es por eso que terminamos con esto:

Entonces, ¿qué conector elegir para un nuevo diseño?

Este artículo se centra principalmente en los dispositivos ARM que tienen la interfaz SWD (Single-Wire Debug), pero también es aplicable a otros componentes, como el MSP430 de Texas Instruments que utiliza el protocolo Spy Bi-Wire (2-wire JTAG), el ICD de Microchip, o incluso componentes que necesitan un conjunto más completo de pines JTAG.

Conectores de depuración populares

Algunas de las opciones comunes que a menudo se consideran:

  • JTAG de 10 pines en un conector IDC de 0.1". Normalmente se utiliza un conector macho. Desventaja: es enorme, y el conector cuesta dinero.
  • Conector de Depuración Cortex usando un micro conector de 0.05" (10 pines o 20 pines, Samtec FTSH-110 y FTSH-105). El conector de 10 pines es razonablemente pequeño y está disponible como una pieza SMD, pero es más caro que los conectores IDC.
  • Conector IDC de 0.1" de 20 pines. ¿Estás considerando seriamente ese dinosaurio? Es más grande que algunas de las placas que diseñé.
  • Conjunto personalizado de 4 o 6 pines (o vías, o almohadillas de cobre). El problema aquí es la parte "personalizada". Inevitablemente volverá a morderte en el futuro, el día en que tu conector personalizado se rompa en el suelo de la fábrica y tengas que enviar uno nuevo desde el extranjero, mientras la producción está parada.
  • Huella de 6 pines de Tag-Connect en una de las variantes (con patas o sin patas). Nota que no hay conector aquí: sólo una huella estandarizada en la PCB.
  • Tag-Connect de 6 pines + Tag-Connect de 10 pines (para señales ETM): para esta combinación, incluso hay un cable preconstruido disponible, con un conector IDC de 20 pines y asignaciones de pines estándar ARM Cortex de 20 pines.

Una observación inmediata es que la mayoría de estos conectores requieren, bueno, conectores. Eso es un componente adicional que necesitas colocar en la placa, lo cual cuesta dinero. Para las unidades de producción o las tiradas de prototipos más grandes, ese conector solo se utilizará una vez en toda la vida útil del producto, lo cual es un desperdicio.

Las soluciones Tag-Connect o las huellas personalizadas con conectores basados en pines pogo tienen una ventaja obvia aquí en que no requieren que se coloquen componentes en la PCB, por lo que el costo del conector de depuración por placa se desploma a 0, ¡lo cual es genial!

Así es como se ve una huella de Tag-Connect en una placa real:

Y así es como se ve el cable con pines pogo: La segunda consideración principal es el tamaño y los requisitos de espacio de la placa resultante. Los únicos contendientes son el micro-encabezado de 10 pines de 0.05" y una huella de 6 pines de Tag-Connect. El micro-encabezado de 10 pines es en realidad un poco más pequeño en una dirección, pero la diferencia no es significativa. Así es como se ve un micro-encabezado de 10 pines de 0.05" (este es de una placa de desarrollo Nordic Semiconductor nRF52832, la PCA10040):

¿Con Patas o Sin Patas?

Hay dos variantes de un cable conector Tag-Connect: uno con "patas" y uno con "sin patas". ¿Cuál es la diferencia?

Tag-Connect utiliza pines pogo, que tienen resortes en su interior y empujan contra la PCB. Si quieres que el conector se quede en su lugar, tienes que aplicarle fuerza continuamente. Esto está bien para una programación rápida, donde puedes usar una mano para mantener el conector en su lugar y otra para lanzar ese trabajo de programación, pero no funciona tan bien para sesiones de depuración extendidas. Para eso, la huella de "patas" (y conector) funciona mucho mejor. Las patas actúan como pequeños clips, por lo que una vez que insertas el conector, se enganchan en su lugar y mantienen los pines pogo apretados contra la placa, por un tiempo indefinido.

El problema con la huella "legs" es su tamaño: es significativamente más grande que la variante "no-legs". Lo que es peor, necesita cuatro agujeros grandes en la placa. Los agujeros grandes siempre son un problema: necesitan (obviamente) pasar a través de todas las capas, y necesitas un área de exclusión a su alrededor también. Esto significa que el impacto de una huella "legs" en tu diseño es mucho mayor que el de la variante "no legs".

Para las unidades de producción, donde la conexión probablemente solo se realizará una vez en la vida útil de un producto, y puede ser sostenida a mano todo el tiempo, no hay duda: definitivamente prefieres la huella "sin patas", que ahorra espacio en la placa. ¿Pero qué hacer con los prototipos? Por un lado, puedes permitirte el espacio en la placa, pero por otro lado, no quieres rediseñar la PCB solo porque necesitas eliminar los agujeros en la revisión final.

Afortunadamente, hay otra solución. Tag-Connect vende un pequeño clip de retención. Es una pieza de PCB con tres enchufes que se ajustan a los pines del cable Tag-Connect. No es una solución mecánicamente perfecta y los clips tienden a desgastarse con el tiempo (¡también son increíblemente fáciles de perder!), pero en la práctica funciona bastante bien.

Mi recomendación es siempre ir con la huella "sin patas" y cables, comprar un montón de clips de retención, y ahorrar en espacio de placa y rediseño de las placas.

Utilice una asignación de señal estándar

He visto hardware en el campo, donde los diseñadores usaron una huella de Tag-Connect para ARM SWD (en un Cortex-M0), pero asignaron señales de manera diferente. Es probable que la motivación fuera ofuscar la interfaz.

Esto no es algo que recomendaría: la ofuscación se descubre fácilmente, y uno termina con una huella incompatible, que inevitablemente causará problemas en el futuro.

Prácticas

Tag-Connect recomienda que no se coloquen componentes (o se tracen rutas) en el otro lado de la huella. Aunque esa es una buena recomendación, no siempre se tiene ese lujo, especialmente en placas pequeñas con restricciones de diseño ajustadas.

Como he descubierto, puedes salirte con la tuya colocando componentes en el otro lado, incluso cuando usas el clip de retención para mantener el cable en su lugar. Sin embargo, sugeriría usar un pedazo de aislante entre los componentes y el clip de retención, para prevenir posibles cortocircuitos (el papel funciona bien). Aunque no es la práctica recomendada, esto funciona, aunque fijar el conector de depuración en su lugar se vuelve un poco más complicado.

Aquí hay un ejemplo de una placa de prototipo (por favor, disculpe la calidad del soldado del prototipo) donde los componentes se colocan dentro del área de la huella de depuración:

Críticas

No todo es color de rosa con Tag-Connect. El sitio web no está bien organizado, por lo que es difícil encontrar la información que estás buscando. Hay una multitud de variantes ofrecidas, y aunque la mayoría de las personas necesitarán un solo tipo de cable, no se muestra de manera prominente. Desafortunadamente, esto parece ser una tradición con las empresas que fabrican equipos de depuración y programación en el mundo embebido.

La segunda queja que tengo es que la empresa ofrece bibliotecas CAD descargables con huellas de Tag-Connect, pero afirma que:

Estos archivos se proporcionan 'TAL CUAL' y sin garantía de que estén completos, libres de errores o aptos para su uso. Comprueba cuidadosamente los decalques importados contra la última hoja de datos proporcionada en el sitio web de Tag-Connect (ver abajo). En particular, verifica los tamaños de los agujeros, la numeración de los pines, y presta especial atención a la capa de la máscara de pasta de soldadura para asegurarte de que no se deposita pasta de soldadura en las almohadillas de la huella.

Si miras en los archivos ZIP proporcionados, normalmente habrá varias variantes de huella para un CAD dado. ¿Cuál uso? ¿Y por qué es mi responsabilidad verificarlo?

Creo que Tag-Connect debería limpiar esta biblioteca y proporcionar un conjunto de huellas soportadas, al menos para los paquetes CAD más populares, sin una renuncia. Debería ser parte del valor de esta solución.

Conclusión

Considerando todo, Tag-Connect sigue siendo la mejor solución de depuración y programación disponible en el mercado. Recomendaría estandarizar su uso en todos tus diseños.

Entradas de blog anteriores: KiCon 2019 (2019-03-27)
Entradas de blog posteriores: Novedades: Mayo 2020 (2020-05-16)

PartsBox es una aplicación en línea que te permite tomar control de tu inventario de componentes electrónicos, la fijación de precios de BOM y la producción a pequeña escala. Mantiene un seguimiento de dónde se almacenan los componentes, cuáles son los niveles de stock actuales y qué componentes se utilizan en qué proyectos/BOMs.

Índice del Blog