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

Resumen TL;DR: para ARM SWD, TI Spy-Bi-Wire o Microchip ICD, use la huella Tag-Connect No-Legs con asignaciones de pines/pads estándar, y obtenga cables Tag-Connect.

Al diseñar dispositivos que utilizan microcontroladores, es necesario proporcionar un conector de depuración y programación. Este podría usarse solo para el desarrollo, al escribir y depurar software, o también podría dejarse en unidades de producción, para la programación en fábrica.

Los fabricantes y creadores de herramientas se aseguraron de que vivamos 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 dispositivos ARM que tienen la interfaz SWD (Single-Wire Debug), pero también es aplicable a otros componentes, como el Texas Instruments MSP430 que utiliza el protocolo Spy Bi-Wire (JTAG de 2 hilos), Microchip ICD, 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 cabezal IDC de 0.1". Generalmente se usa un cabezal macho. Desventaja: es enorme y el cabezal cuesta dinero.
  • Conector Cortex Debug usando un micro cabezal 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 componente SMD, pero es más caro que los conectores IDC.
  • Conector IDC de 20 pines y 0.1". No estás considerando seriamente ese dinosaurio, ¿verdad? Es más grande que algunas de las placas que diseñé.
  • Conjunto personalizado de 4 o 6 pines (o vías, o pads de cobre). El problema aquí es la parte "personalizada". Inevitablemente volverá para morderte en el futuro, el día que tu conector personalizado se rompa en la planta de producción y tengas que enviar uno nuevo desde el extranjero, mientras la producción está detenida.
  • Huella Tag-Connect de 6 pines en una de las variantes (con patas o sin patas). Ten en cuenta que no hay conector aquí: solo 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. Ese es un componente adicional que necesita colocar en la placa, lo que cuesta dinero. Para unidades de producción o series de prototipos más grandes, ese conector solo se usará 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 pogo-pines tienen una ventaja obvia aquí, ya que no requieren que se coloque ningún componente en la PCB, por lo que el costo del conector de depuración por placa cae a 0, ¡lo cual es genial!

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

Y así es como se ve el cable con pogo-pins: La segunda consideración importante es el tamaño y los requisitos de espacio resultantes en la placa. Los únicos contendientes son el micro-cabezal de 10 pines de 0.05" y una huella Tag-Connect de 6 pines. El micro-cabezal 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-cabezal 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 otro "sin patas". ¿Cuál es la diferencia?

Tag-Connect utiliza pines pogo, que tienen resortes en su interior y presionan contra la PCB. Si desea que el conector permanezca en su lugar, debe aplicar fuerza continuamente sobre él. Esto está bien para una programación rápida, donde puede usar una mano para sostener el conector en su lugar y otra para lanzar ese trabajo de programación, pero no funciona tan bien para sesiones de depuración prolongadas. Para eso, la huella con "patas" (y el conector) funciona mucho mejor. Las patas actúan como pequeños clips, por lo que una vez que inserta el conector, encajan en su lugar y mantienen los pines pogo apretados contra la placa, por un tiempo indefinido.

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

Para unidades de producción, donde la conexión probablemente solo se realizará una vez en la vida útil de un producto, y se puede sostener fácilmente con la mano todo el tiempo, no hay duda: definitivamente prefiere la huella "sin patas", que ahorra espacio en la placa. ¿Pero qué hacer con los prototipos? Por un lado, puede permitirse el espacio en la placa, pero por otro lado, no quiere rediseñar la PCB solo porque necesita eliminar los orificios 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 zócalos que encajan en 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 ir siempre 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.

Usar una asignación de señales estándar

He visto hardware en el mundo real, donde los diseñadores usaron una huella Tag-Connect para ARM SWD (en un Cortex-M0), pero asignaron las 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, lo que inevitablemente causará problemas en el futuro.

Aspectos prácticos

Tag-Connect recomienda que no se coloquen componentes (o se enruten trazas) en el otro lado de la huella. Si bien esa es una buena recomendación, uno no siempre 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. Sugeriría usar un trozo de aislante entre los componentes y el clip de retención, sin embargo, 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 prototipo (disculpe la calidad de soldadura del prototipo) donde los componentes se colocan dentro del área de la huella de depuración:

Crítica

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 busca. Se ofrece una multitud de variantes, y aunque la mayoría de la gente necesitará un solo tipo de cable, no se muestra de manera destacada. 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 Tag-Connect, pero afirma que:

Estos archivos se proporcionan 'TAL CUAL' y sin garantía de que estén completos, libres de errores o adecuados para su uso. Verifique cuidadosamente las calcomanías importadas con la última hoja de datos proporcionada en el sitio web de Tag-Connect (ver abajo). En particular, verifique los tamaños de los agujeros, la numeración de los pines y preste mucha atención a la capa de máscara de pasta de soldadura para asegurar que no se deposite pasta de soldadura en las almohadillas de la huella.

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

Creo que Tag-Connect debería limpiar esta biblioteca y proporcionar un conjunto de huellas compatibles, al menos para los paquetes CAD más populares, sin un descargo de responsabilidad. 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 lista para usar. Recomendaría estandarizar su uso e implementarlo en todos sus diseños.

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

PartsBox es una aplicación en línea que le permite tomar el control de su inventario de componentes electrónicos, precios de BOM y producción a pequeña escala. Mantiene un registro 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

KiCon 2019 (2019-03-27)
Etiquetas (2016-04-26)