Projeto Pi.MX8 - Layout da Placa Parte 4

Lukas Henkel
|  Criada: Julho 23, 2024  |  Atualizada: Julho 24, 2024
Projeto PIMX8 - Capítulo VI

Capítulos

1
Introduction and Overview
| Created: January 18, 2024
2
Component placement and layout planning
| Created: February 06, 2024
3
Board Layout Part 1
| Created: February 22, 2024
4
Board Layout Part 2
| Created: March 21, 2024
5
Board Layout Part 3
| Created: June 24, 2024
6
Board Layout Part 4
| Created: July 23, 2024
7
PCB Assembly
| Coming Soon

Bem-vindo a uma nova atualização sobre o projeto do módulo de computação Pi.MX8 SoM! Nesta atualização, estaremos dando os toques finais ao nosso design de PCB e preparando o design para a produção de protótipos.

Test of button

No último artigo concluímos o roteamento das camadas de sinal. Essa foi a parte mais demorada do layout do PCB para o módulo Pi.MX8. No entanto, ainda temos duas tarefas pela frente que exigem tanto cuidado quanto: roteamento dos planos de alimentação e ajuste do atraso de sinal.

Planos de Alimentação

Vamos começar com os planos de alimentação. Eu geralmente gosto de fazer o ajuste de atraso como os últimos passos, pois as meandras necessárias para o ajuste de comprimento muitas vezes preenchem o espaço restante na placa. Por exemplo, colocar VIAs adicionais (o que às vezes pode ser necessário ao rotear redes de alimentação) pode exigir que ajustemos os primitivos de ajuste de comprimento para criar o espaço necessário. Preenchendo o espaço restante com primitivos de ajuste de comprimento por último, podemos evitar retrabalho adicional.

Available power plane layers

Camadas de plano de alimentação disponíveis

Olhando para o empilhamento de camadas, podemos ver que temos duas camadas dedicadas a planos de alimentação disponíveis. Essas camadas são separadas das camadas de terra adjacentes por um prepreg fino. Esse empilhamento aumenta a capacitância do plano de baixa indutância e pode ajudar a diminuir a impedância da rede de distribuição de energia (PDN) em altas frequências.

Primeiro, vamos rotear os trilhos de alimentação de alta corrente. No nosso caso, estes são os trilhos do núcleo e de memória para o SoC i.MX8 e o controlador DRAM com o IC LPDDR4.

PMIC core and memory supply for the SoC

Suprimento de núcleo e memória do PMIC para o SoC

Os trilhos VCC_ARM e VCC_SOC usam sensoriamento remoto, o que significa que o nó de feedback dos conversores buck não é roteado para os capacitores de saída perto do MIC, mas para os pads de alimentação do i.MX8. Isso serve para compensar a queda de tensão através do plano de alimentação ou polígono. Como a corrente nesses trilhos pode ser relativamente alta e o PMIC precisa regular essas tensões com precisão, é importante "medir" a tensão diretamente na carga. A figura a seguir mostra a queda de tensão através de um polígono de alimentação:

Voltage drop across power polygon

Queda de tensão através do polígono de alimentação

O polígono de potência para o trilho VCC_ARM é roteado na camada 6. O traço roteado próximo ao contorno do polígono é o sinal de detecção remota. Idealmente, gostaríamos de medir a tensão de forma diferencial para compensar os efeitos parasitas introduzidos pela corrente do caminho de retorno e para tornar o feedback menos suscetível a ruídos, mas no nosso caso isso não será necessário. Seguiremos as recomendações do projeto de referência.

VCC_SOC polygon

Polígono VCC_SOC

O traço de feedback usa um 'net-tie' próximo aos pinos do SoC para conectar a rede de feedback à rede de potência. Sem usar um net-tie, teríamos que garantir manualmente uma isolamento limpo entre o traço de feedback e o polígono de potência. Esta abordagem é propensa a erros. O net-tie é simplesmente uma impressão consistindo de um segmento de traço curto com dois pequenos pads em cada extremidade. Ao definir o tipo de componente para net-tie, o Altium Designer não criará um erro de curto-circuito para este componente.

O polígono VCC_ARM e o trilho de potência DRAM são roteados de forma semelhante na Camada 5.

VCC_ARM highlighted and DRAM power rail in purple

VCC_ARM destacado e trilho de potência DRAM em roxo

Os trilhos de alimentação restantes são distribuídos nas camadas 5 e 6. Os polígonos de alimentação do sistema de 1,8V e 3,3V abrangem toda a placa, pois muitos componentes conectados a esses trilhos estão distribuídos por toda a placa.

O passo final do roteamento do plano de alimentação é configurar uma análise de PDN AC e DC e verificar se os resultados estão dentro dos limites de valor de impedância estabelecidos pelo guia de design de hardware do SoC.

A simulação AC deve incluir os capacitores de desacoplamento com um modelo equivalente preciso, as características de saída do regulador buck e a geometria do layout. Não vamos abordar a configuração da simulação neste artigo, mas precisamos ter em mente como um passo de verificação obrigatório.

Power rails target impedance

Impedância alvo dos trilhos de alimentação

A simulação DC requer apenas a geometria do layout e as características de carga do SoC como entrada para calcular a queda de tensão através dos polígonos de alimentação e destacar áreas de densidade de corrente excessiva.

Ajuste de atraso

Com o layout da rede de alimentação concluído, podemos agora passar para o último item da nossa lista de tarefas - ajuste de atraso.

Existem muitas interfaces no módulo Pi.MX8 que possuem requisitos de tempo rigorosos e requerem ajuste de atraso. Vamos olhar para as interfaces mais críticas e ver como podemos usar X-Signals para ajustar atrasos mesmo através de vários componentes.

Vamos começar com a interface DRAM. O guia de design de hardware i.MX8 fornece todas as informações de que precisamos para o ajuste de atraso. Antes de podermos ajustar quaisquer traços, primeiro temos que verificar se o atraso do pacote está incluído no símbolo da biblioteca esquemática.

A NXP fornece tempos de atraso do pacote, que é o tempo que um sinal leva para viajar da bola BGA do i.MX8 até o chip de silício. Os diferentes comprimentos no interposer afetam o tempo total de atraso, então é importante levá-los em conta.

Pin package delay in the schematic symbol

Atraso do pacote de pinos no símbolo esquemático

Podemos usar o editor de lista da biblioteca esquemática para colar todos os atrasos de pacote de pinos do documento do guia de design de hardware i.MX8 de uma vez usando o diálogo de colagem de grade inteligente.

Pin delays in table format through the SCHLIB List toolbar

Atrasos de pinos em formato de tabela através da barra de ferramentas SCHLIB List

Os requisitos de ajuste de atraso para a interface LPDDR4 estão descritos no guia de design de hardware i.MX8. O guia agrupa as dependências de atraso em grupos de relógio, controle/comando e byte. As janelas de tempo para cada grupo são referenciadas aos sinais de relógio e estroboscópio. Todos os sinais diferenciais devem ser combinados a 1ps entre os sinais complementares no par.

LPDDR4-4000 PCB delay tuning requirements

Requisitos de ajuste de atraso da PCB LPDDR4-4000

Os sinais no grupo de endereço/comando/controle devem atender a dois requisitos de tempo. Um requisito define o atraso máximo entre cada sinal dentro do grupo, enquanto o segundo requisito define a janela de atraso máximo de todo o grupo referenciado ao sinal de relógio.

É por isso que usamos múltiplos grupos de sinais X para garantir que os sinais corretos sejam alvo dentro das regras de design.

X-signal classes for the LPDDR4 tuning

Classes de sinal X para o ajuste do LPDDR4

Ao usar regras de ajuste de atraso intercaladas, gosto de manter também um registro dos valores totais de atraso em uma planilha do Excel para fins de documentação. Este passo é opcional, no entanto, e depende das preferências pessoais, já que os requisitos de tempo podem ser todos definidos dentro da configuração de regras do Altium Designer.

Delay tuning documentation in Excel

Documentação de ajuste de atraso no Excel

Uma vez que as classes de sinais X tenham sido definidas e as regras de design estejam no lugar, podemos começar a ajustar o atraso no layout. Além do ajuste de atraso intra-par, a maioria dos ajustes deve ser feita nas linhas de endereço/comando/controle:

Delay tuning address/command/control lines

Ajuste de atraso nas linhas de endereço/comando/controle

As próprias linhas de dados precisam de muito pouco ou nenhum ajuste. Ao redor dos pares de sinal de relógio roteados na camada superior, temos bastante espaço que podemos usar para o ajuste de atraso:

Clock delay tuning top layer

Ajuste de atraso do relógio na camada superior

Assim como na rede de entrega de energia, precisamos realizar simulações de verificação para a interface DRAM. Estamos particularmente interessados se podemos observar efeitos de diafonia, já que partes dos roteamentos estão relativamente próximas umas das outras. A regra geral é manter uma distância de 3x a espessura do dielétrico para as trilhas vizinhas. No entanto, não vamos abordar a configuração e os detalhes da simulação neste artigo.

Uma vez que o ajuste de atraso da interface DRAM esteja completo, vamos dar uma olhada em outra aplicação para sinais X. A placa PiMX8 possui duas interfaces que podem acionar um display externo - LVDS e MIPI-DSI.

MIPI-DSI também utiliza sinalização diferencial de baixa voltagem (LVDS), então podemos usar um multiplexador para selecionar qualquer uma dessas interfaces, já que elas compartilham as mesmas especificações de hardware. Ao usar um multiplexador para alternar entre as interfaces, também precisamos estar cientes de que qualquer roteamento feito após o multiplexador (no lado comum) afetará o atraso de ambas as interfaces MIPI-DSI e LVDS downstream. Isso pode ser levado em conta criando uma classe de sinal X separada para a interface MIPI-DSI e a interface LVDS, permitindo mais liberdade no ajuste de atraso na PCB.

Neste exemplo, poderia ter sido possível evitar a necessidade dessa abordagem se todo o roteamento no lado comum tivesse sido ajustado para uma janela de atraso apertada, tanto entre pares quanto de par para par. Ao usar duas classes de sinal X separadas, no entanto, temos um melhor controle sobre o orçamento de tempo de cada interface.

Os sinais X nos permitem preencher a lacuna sobre o multiplexador e realizar o ajuste de comprimento em cada interface sobre todo o comprimento do sinal antes e depois do multiplexador.

A mesma abordagem é usada na interface PCIe para preencher a lacuna através dos capacitores de acoplamento AC em série.

LVDS routed to the multiplexer

LVDS roteado para o multiplexador

MIPI-DSI routed to the multiplexer

MIPI-DSI roteado para o multiplexador

Todas as interfaces de alta velocidade na placa Pi.MX8 são ajustadas em termos de atraso usando sinais X, pois eles fornecem um comprimento de caminho mais preciso de todo o sinal. Não vamos analisar cada interface separadamente, pois a configuração da regra de ajuste de atraso e o ajuste de roteamento é uma tarefa repetitiva que não difere muito em sua abordagem geral entre as interfaces.

Este foi o passo final para completar o roteamento na placa Pi.MX8. A próxima etapa é realizar uma verificação completa das regras de design e exportar o conjunto de dados de fabricação.

Na próxima atualização, vamos dar uma olhada nas placas e começar a montar alguns protótipos. Este será o passo final para ligar o módulo Pi.MX8 pela primeira vez, então fique atento!

Sobre o autor

Sobre o autor

Lukas is a passionate hardware designer with more than 10 years of experience in the electronics industry. As a co-founder of his own engineering services company, he has had the privilege of working on many exciting projects, taking on challenges ranging from precision analogue design to high-speed PCB layout and power electronics.

As a strong supporter of the open-source philosophy, Lukas has made it his goal to give anyone interested an insight into the construction and functioning of modern electronic devices. Driven by that goal, he has founded the company Open Visions Technology (OV Tech GmbH), which aims to bring highly repairable, fully documented state-of-the-art consumer hardware to the market.

Lukas firmly believes that with today's online access to know-how and tools, anyone with an idea, drive, and passion can create extraordinary things. He is looking forward to being part of an enthusiastic community and is excited to see how people bring their ideas to life.

Recursos relacionados

Documentação técnica relacionada

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