Escolhendo um conector de depuração/programação para um microcontrolador

Resumo TL;DR: para ARM SWD, TI Spy-Bi-Wire, ou Microchip ICD, use a pegada Tag-Connect No-Legs com atribuições padrão de pin/pad, e obtenha cabos Tag-Connect.

Ao projetar dispositivos que usam microcontroladores, é necessário fornecer um conector de depuração e programação. Isso pode ser usado apenas para desenvolvimento, ao escrever e depurar software, ou também pode ser deixado em unidades de produção, para programação em fábrica.

Fabricantes e fabricantes de ferramentas garantiram que vivemos em um mundo onde há uma infinidade de conectores de depuração com muita confusão ao redor deles. É por isso que acabamos com isso:

Então, qual conector escolher para um novo design?

Este artigo se concentra principalmente em dispositivos ARM que possuem a interface SWD (Single-Wire Debug), mas também é aplicável a outros componentes, como o Texas Instruments MSP430 que usa o protocolo Spy Bi-Wire (2-wire JTAG), Microchip ICD, ou até mesmo componentes que precisam de um conjunto mais completo de pinos JTAG.

Conectores de depuração populares

Algumas das escolhas comuns que são frequentemente consideradas:

  • Conector JTAG de 10 pinos em um cabeçalho IDC de 0,1". Geralmente é usado um cabeçalho macho. Desvantagem: é enorme, e o cabeçalho custa dinheiro.
  • Conector de depuração Cortex usando um micro cabeçalho de 0,05" (10 pinos ou 20 pinos, Samtec FTSH-110 e FTSH-105). O conector de 10 pinos é razoavelmente pequeno e disponível como um componente SMD, mas mais caro do que os conectores IDC.
  • Conector IDC de 20 pinos de 0,1". Você está seriamente considerando esse dinossauro, não está? É maior do que algumas das placas que projetei.
  • Conjunto personalizado de 4 ou 6 pinos (ou vias, ou pads de cobre). O problema aqui é a parte "personalizada". Inevitavelmente voltará para te morder no futuro, no dia em que seu conector personalizado quebrar no chão da fábrica e você tiver que enviar um novo do exterior, enquanto a produção está parada.
  • Footprint Tag-Connect de 6 pinos em uma das variantes (com pernas ou sem pernas). Note que não há conector aqui: apenas um footprint padronizado na PCB.
  • Tag-Connect de 6 pinos + Tag-Connect de 10 pinos (para sinais ETM): para esta combinação, até existe um cabo pré-construído disponível, com um conector IDC de 20 pinos e atribuições de pinos ARM Cortex 20-pin padrão.

Uma observação imediata é que a maioria desses conectores requer, bem, conectores. Esse é um componente adicional que você precisa colocar na placa, o que custa dinheiro. Para unidades de produção ou protótipos maiores, esse conector só será usado uma vez na vida útil do produto, o que é um desperdício.

As soluções Tag-Connect ou footprints personalizados com conectores baseados em pinos pogo têm uma vantagem óbvia aqui, pois não requerem que nenhum componente seja colocado na PCB, então o custo do conector de depuração por placa cai para 0, o que é ótimo!

É assim que uma pegada Tag-Connect se parece em uma placa real:

E é assim que o cabo com pogo-pins se parece: A segunda consideração principal é o tamanho, e os requisitos de espaço na placa resultantes. Os únicos concorrentes são o micro-cabeçalho de 10 pinos de 0,05" e uma pegada Tag-Connect de 6 pinos. O micro-cabeçalho de 10 pinos é na verdade um pouco menor em uma direção, mas a diferença não é significativa. Aqui está como se parece um micro-cabeçalho de 10 pinos de 0,05" (este é de uma placa de desenvolvimento Nordic Semiconductor nRF52832, a PCA10040):

Pernas ou Sem Pernas?

Existem duas variantes de um cabo conector Tag-Connect: uma com "pernas" e uma sem "pernas". Qual é a diferença?

Tag-Connect usa pinos pogo, que têm molas internas e pressionam contra a PCB. Se você quiser que o conector fique no lugar, você tem que aplicar força continuamente nele. Isso é bom para programação rápida, onde você pode usar uma mão para segurar o conector no lugar e outra para iniciar o trabalho de programação, mas não funciona tão bem para sessões de depuração prolongadas. Para isso, o footprint (e conector) "legs" funciona muito melhor. As pernas agem como pequenos clipes, então uma vez que você insira o conector, eles se encaixam no lugar e seguram os pinos pogo firmemente contra a placa, por tempo indefinido.

O problema com a pegada "legs" é o seu tamanho: é significativamente maior do que a variante "no-legs". O que é pior, precisa de quatro grandes furos na placa. Grandes furos são sempre um problema: eles (obviamente) precisam passar por todas as camadas, e você precisa de uma área de exclusão ao redor deles também. Isso significa que o impacto de uma pegada "legs" em seu design é muito maior do que da variante "no legs".

Para unidades de produção, onde a conexão provavelmente será feita apenas uma vez na vida útil de um produto, e pode ser facilmente manuseada o tempo todo, não há dúvida: você definitivamente prefere a pegada 'sem pernas', que economiza espaço na placa. Mas o que fazer sobre os protótipos? Por um lado, você pode se dar ao luxo de ter espaço na placa, mas, por outro lado, você não quer redesenhar a PCB apenas porque precisa remover os furos na revisão final.

Felizmente, existe outra solução. Tag-Connect vende um pequeno clipe de retenção. É um pedaço de PCB com três soquetes que se encaixam nos pinos do cabo Tag-Connect. Não é uma solução mecanicamente perfeita e os clipes tendem a se desgastar com o tempo (eles também são incrivelmente fáceis de perder!), mas na prática funciona muito bem.

Minha recomendação é sempre optar pelo footprint "sem pernas" e cabos, comprar um monte de grampos de retenção e economizar no espaço da placa e no redesenho das placas.

Use uma atribuição de sinal padrão

Eu vi hardware no campo, onde os designers usaram uma pegada Tag-Connect para ARM SWD (em um Cortex-M0), mas atribuíram sinais de maneira diferente. É provável que a motivação tenha sido obfuscar a interface.

Isso não é algo que eu recomendaria: a ofuscação é facilmente descoberta, e acaba-se com uma pegada incompatível, que inevitavelmente causará problemas no futuro.

Praticidades

Tag-Connect recomenda que nenhum componente seja colocado (ou traços roteados) no outro lado do footprint. Embora essa seja uma boa recomendação, nem sempre temos esse luxo, especialmente em pequenas placas com restrições de layout apertadas.

Como descobri, você pode se safar colocando componentes do outro lado, mesmo quando usa o clipe de retenção para segurar o cabo no lugar. Eu sugeriria usar um pedaço de isolante entre os componentes e o clipe de retenção, no entanto, para evitar possíveis curtos-circuitos (papel funciona bem). Embora não seja a prática recomendada, isso funciona, embora a fixação do conector de depuração no lugar se torne um pouco mais complicada.

Aqui está um exemplo de uma placa protótipo (por favor, desculpe a qualidade da solda do protótipo) onde os componentes são colocados dentro da área da pegada de depuração:

Crítica

Não é tudo rosas com o Tag-Connect. O site não é bem organizado, então é difícil encontrar as informações que você está procurando. Há uma infinidade de variantes oferecidas, e mesmo que a maioria das pessoas precise de um único tipo de cabo, ele não é exibido de forma proeminente. Infelizmente, isso parece ser uma tradição com empresas que fabricam equipamentos de depuração e programação no mundo embarcado.

A segunda reclamação que tenho é que a empresa oferece bibliotecas CAD para download com footprints Tag-Connect, mas afirma que:

Esses arquivos são fornecidos 'COMO ESTÃO' e sem garantia de que estão completos, livres de erros ou adequados para uso. Verifique cuidadosamente os decalques importados contra a ficha técnica mais recente fornecida no site Tag-Connect (veja abaixo). Em particular, verifique os tamanhos dos furos, a numeração dos pinos e preste muita atenção na camada de máscara de solda para garantir que nenhuma pasta de solda seja depositada nos pads do footprint.

Se você olhar nos arquivos ZIP fornecidos, geralmente haverá várias variantes de footprint para um determinado CAD. Qual devo usar? E por que é minha responsabilidade verificá-lo?

Acho que a Tag-Connect deveria limpar esta biblioteca e fornecer um conjunto de footprints suportados, pelo menos para os pacotes CAD mais populares, sem uma isenção de responsabilidade. Isso deveria fazer parte do valor desta solução.

Conclusão

Considerando tudo, o Tag-Connect ainda é a melhor solução de depuração e programação disponível no mercado. Eu recomendaria padronizar seu uso e utilizá-lo em todos os seus projetos.

Postagens anteriores do blog: KiCon 2019 (2019-03-27)
Postagens de blog posteriores: Novidades: Maio de 2020 (2020-05-16)

PartsBox é um aplicativo online que permite que você assuma o controle de seu inventário de componentes eletrônicos, precificação de BOM e produção em pequena escala. Ele mantém o controle de onde os componentes estão armazenados, quais são os níveis de estoque atuais e quais componentes são usados em quais projetos/BOMs.

Índice do Blog