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.
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.
|
|
|
|
|
|
|
|
|
|
|
|
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?
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.
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.
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.
Quando o pinout do seu conector é padronizado, então é um pouco de um curinga. Digo isso porque "padronizado" pode significar duas coisas diferentes:
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.