Como as Equipes de Design Embarcado Podem Simplificar E/S e Roteamento

Zachariah Peterson
|  Criada: Janeiro 4, 2023  |  Atualizada: Julho 1, 2024
Como Equipes de Design Embarcado Podem Simplificar I/O e Roteamento

Os produtos eletrônicos reais têm se tornado progressivamente mais inteligentes, tanto pela implementação de uma aplicação embarcada quanto pela conexão com uma plataforma ou aplicação na nuvem. As equipes de desenvolvimento embarcado precisam trabalhar juntas para criar essas novas gerações de produtos. Uma área em que o engenheiro de layout de PCB, o desenvolvedor embarcado e até o engenheiro MCAD podem se atrasar na conclusão de um projeto é na seleção de E/S. Isso acontece sempre que você tem conectores, periféricos e um processador host.

Então, para ajudar a manter as coisas simples para ambos os lados, quero compartilhar algumas das minhas experiências trabalhando com desenvolvedores embarcados para otimizar a seleção de E/S e o processo geral para completar o layout do PCB. Com um pouco de colaboração no início, você pode facilitar o roteamento do PCB e o desenvolvimento embarcado no final.

Quem Faz O Quê no Desenvolvimento Embarcado?

Eu acredito que cada membro da equipe de desenvolvimento deve entender o que os outros membros da equipe precisam para ter sucesso. Isso também diz respeito ao uso eficiente dos recursos, evitando atoleiros de engenharia que levam dias para resolver, e chegando ao mercado rapidamente.

 

O que eles fazem

O que eles precisam

Projetista de PCB

  • Restrições do designer de MCAD
  • Lista de periféricos de
  • Lista de pinos de I/O desejados pelo desenvolvedor embarcado*

Designer de MCAD

  • Criar a caixa/invólucro do dispositivo
  • Definir restrições (áreas proibidas, colocação, etc.)
  • Modelos 3D de conectores
  • Modelos 3D mecânicos
  • Restrições de SI/EMI do designer de PCB

Desenvolvedor embarcado

  • Desenvolver firmware embarcado
  • Definir saídas para aplicação web/nuvem (se utilizada)
  • Usar I/Os requeridos pelo designer de PCB
  • Funções de I/O do designer de PCB
  • Lista de pinos de I/O desejados pelo designer de PCB*

Coloquei um asterisco (*) nas entradas da lista de pinos porque o processo exato para atribuir I/Os depende do componente específico sendo usado para executar a aplicação embarcada. Trata-se de um MCU simples, onde os I/Os disponíveis são fixos em locais específicos, ou é um FPGA que pode ter um pinout personalizado em certos bancos? O outro aspecto são os conectores: o pinout é padronizado, é definido por outra placa no conjunto, ou pode ser personalizado?

É aqui que podemos começar a ver o desafio envolvido em um designer de PCB e um desenvolvedor embarcado trabalharem juntos na seleção de I/O. Como as duas partes podem se unir e definir pinouts, seleção de I/O e, finalmente, o layout do PCB?

Desenvolvedor Embarcado Define os Requisitos do PCB

Na minha opinião, isso funciona melhor quando o pinout no processador principal é flexível, ou seja, a aplicação será instanciada em um FPGA. Neste caso, os I/Os podem ser definidos pelo desenvolvedor na lógica do dispositivo, e o resultado é que o designer de PCB terá que trabalhar com as atribuições de pinos que lhe são dadas.

O problema é o seguinte: se as atribuições de pinos forem dadas individualmente, pode-se não obter um roteamento ótimo, resultando em uma confusão de conexões se cruzando para chegar aos componentes. Em vez disso, se o desenvolvedor embutido apenas fornecer atribuições de bancos ao projetista de PCB, então o projetista de PCB pode escolher pinos dentro de um banco para fazer conexões ótimas.

PCB FPGA
Captura de tela mostrando atribuições de bancos em um FPGA. Certos bancos suportarão diferentes interfaces, e o projetista de PCB pode selecionar alguns pinos dentro desses bancos para troca de pinos.

Ao atribuir bancos em um FPGA em vez de um pinout específico, o projetista pode usar uma ferramenta como troca de pinos para mover atribuições de I/O dentro de um banco de pinos. Se a troca de pinos for desejável, então um símbolo esquemático personalizado pode ser necessário para separar adequadamente os pinos em seus respectivos bancos. Usar um símbolo personalizado permite um agrupamento muito mais rápido de pinos para operações de troca de pinos durante o roteamento do PCB.

Projetista de PCB Define Requisitos Embutidos

Na minha opinião, isso funciona melhor quando o pinout no processador principal é fixo, ou seja, um MCU e seus periféricos. Em um MCU, as localizações de I/O são basicamente fixas. Você pode ter alguma flexibilidade em termos de como cada I/O é usado, por exemplo, ao usar um banco de GPIOs. No entanto, as atribuições de pinos ou funções para interfaces padrão podem ser fixas (por exemplo, pinos SPI, pinos ADC, pinos PWM, I2C, etc.).

Neste caso, acho que é melhor se o projetista de PCB selecionar os pinos que serão usados para combinar com diferentes componentes. O projetista de PCB tem que escolher dentro de um pinout fixo, então ele terá que trabalhar em como posicionar os componentes de tal forma que o layout do PCB seja solucionável. Uma vez colocados e roteados, é trabalho do projetista de PCB informar ao desenvolvedor embarcado quais pinos estão sendo usados para certas funções.

STM32 LQFP pinout
Lista de atribuição de pinos STM32 LQFP48. Podemos ver como diferentes funções de pinos em GPIOs são atribuídas a posições específicas. Isso pode limitar o que é feito no layout do PCB, então o projetista de PCB deve ter a liberdade de selecionar os pinos que deseja usar, e o desenvolvedor embarcado precisará seguir isso ao escrever o firmware.

E se um Pinout de Conector for Padronizado?

Quando o pinout do seu conector é padronizado, então é um pouco de um curinga. Digo isso porque "padronizado" pode significar duas coisas diferentes:

  • O pinout pode ser parte de uma interface padrão (Ethernet, USB, etc.)
  • O pinout pode ser definido por outra placa no conjunto ou sistema

Se nenhum desses casos se aplicar, então seu pinout é personalizável. Em projetos nos quais lidei com outras placas em um conjunto maior, muitas vezes temos a liberdade de definir um pinout, geralmente porque estávamos construindo ambas as placas. De qualquer forma, os dois lados precisam trabalhar juntos para descobrir um pinout "melhor" de forma objetiva para o conector e como isso se alinha com o processador.

Equipes que precisam colaborar em produtos complexos podem acessar um conjunto completo de recursos de design colaborativo ao usar Altium Designer®. Todos os stakeholders envolvidos no design do produto podem acessar um conjunto completo de ferramentas para design de PCB que podem suportar tarefas de desenvolvimento embutido, bem como recursos de design de cabos e chicotes. Quando você terminar seu design e quiser liberar arquivos para seu fabricante, a plataforma Altium 365™ facilita a colaboração e o compartilhamento de seus projetos.

Apenas arranhamos a superfície do que é possível com Altium Designer no Altium 365. Comece seu teste gratuito do Altium Designer + Altium 365 hoje.

Sobre o autor

Sobre o autor

Zachariah Peterson tem vasta experiência técnica na área acadêmica e na indústria. Atualmente, presta serviços de pesquisa, projeto e marketing para empresas do setor eletrônico. Antes de trabalhar na indústria de PCB, lecionou na Portland State University e conduziu pesquisas sobre teoria, materiais e estabilidade de laser aleatório. A experiência de Peterson em pesquisa científica abrange assuntos relacionados aos lasers de nanopartículas, dispositivos semicondutores eletrônicos e optoeletrônicos, sensores ambientais e padrões estocásticos. Seu trabalho foi publicado em mais de uma dezena de jornais avaliados por colegas e atas de conferência, além disso, escreveu mais de dois mil artigos técnicos sobre projeto de PCB para diversas empresas. É membro da IEEE Photonics Society, da IEEE Electronics Packaging Society, da American Physical Society e da Printed Circuit Engineering Association (PCEA). Anteriormente, atuou como membro com direito a voto no Comitê Consultivo Técnico de Computação Quântica do INCITS, onde trabalhou em padrões técnicos para eletrônica quântica e, no momento, atua no grupo de trabalho P3186 do IEEE, que tem como foco a interface de portas que representam sinais fotônicos com simuladores de circuitos da classe SPICE.

Recursos relacionados

Documentação técnica relacionada

Retornar a página inicial
Thank you, you are now subscribed to updates.