Em um blog anterior, discuti alguns dos pontos básicos na preparação de regras de roteamento para PCBs de 2 camadas para suportar roteamento e layout com sinais digitais. Em particular, olhamos para algumas das regras básicas de empilhamento e roteamento necessárias para suportar uma interface digital como I2C ou SPI em uma PCB de 2 camadas. Ao trabalhar com essas interfaces, algumas diretrizes simples podem ajudar a garantir a integridade do sinal em sua placa e reduzir a EMI.
O que dizer de uma interface controlada por impedância como USB? A necessidade de controle de impedância, e saber quando ela pode ser violada, é o ponto principal para rotear algo como USB em uma PCB de 2 camadas. Neste artigo, mostrarei como você deve rotear um protocolo de alta velocidade como USB. Especificamente, vamos olhar para as regras de design importantes necessárias para o roteamento da placa, particularmente a limitação de comprimento que poderíamos aceitar para trilhas que carregam dados USB. Se você ainda não leu o artigo anterior desta série, dê uma olhada, pois ele estabelece alguns dos fundamentos conceituais necessários para entender os limites que são definidos nos requisitos de roteamento USB.
No artigo anterior sobre roteamento de PCB de 2 camadas, examinamos um procedimento para determinar o comprimento máximo possível de linha que você poderia usar em seu design sem precisar aplicar correspondência de impedância. Descobrimos que o limite de comprimento depende do nível de desvio de impedância de entrada que você pode tolerar ao longo do comprimento da linha de transmissão. Em particular, dependendo se você considera 10% a 25% da distância de viagem do sinal como o fator importante para limitar o comprimento do traço.
Para esta demonstração, quero olhar para o roteamento USB 2.0 nesta placa sob o padrão de Alta Velocidade, e estou focando neste padrão por uma razão específica. USB 2.0 (Alta Velocidade) ainda é usado em alguns sistemas, pois oferece conectividade com dispositivos mais antigos junto com uma taxa de transferência de dados rápida, e ainda é usado em plataformas populares como Arduino com um plugue do Tipo B.
Apenas para ilustrar dois designs possíveis, comparei a taxa de dados e o tempo de subida de duas especificações USB 2.0 (Velocidade Total e Alta Velocidade):
|
|
|
|
|
|
O processo que mostrarei a seguir é realizado para sinais USB 2.0 com o tempo de subida e o desvio de Alta Velocidade, mas você poderia aplicar o mesmo processo ao USB 3.0 ou qualquer outra interface de alta velocidade. Apenas lembre-se: o roteamento em uma placa de 2 camadas não é apropriado para todas as interfaces. Por exemplo, eu não conheço ninguém que recomendaria rotear DDR4 em uma placa de 2 camadas devido aos limites pequenos de comprimento e ao ruído irradiado desses sinais rápidos.
Primeiro, gostaríamos de saber o comprimento crítico para um sinal USB sendo roteado em uma PCB típica de 2 camadas. Para um núcleo de Dk = 4.8 de material FR4, teríamos um atraso de propagação de aproximadamente 150 ps/polegada, ou aproximadamente 6 polegadas/ns. Com nosso tempo de subida de 500 ps para a especificação de Alta Velocidade, isso nos dá uma distância de propagação do sinal de 3 polegadas durante o tempo de subida. Se formos muito conservadores e usarmos um limite de 10% no comprimento crítico, isso nos dá um comprimento crítico de 0,3 polegadas!
A topologia que precisamos rotear aqui é apenas uma linha serial com pares diferenciais. Então, você tem três elementos:
Você pode estar se perguntando, como isso é feito em uma plataforma como o Arduino? Dê uma olhada na imagem abaixo de um Arduino Mega que você pode comprar na Amazon. O controlador USB é colocado próximo ao conector e definitivamente está a menos de 1 polegada.
Você encontrará um posicionamento e roteamento semelhantes em outras placas Arduino. Para evitar uma incompatibilidade de impedância de entrada com o conector, cabo e receptor, gostaríamos de seguir o conselho mostrado acima e manter a rota curta em nossa PCB de 2 camadas. No entanto, não precisamos ser tão conservadores a ponto de aplicar um limite de 10%. Em vez disso, se formos com um limite de 25%, teremos uma distância de roteamento muito mais confortável de 0,75 polegadas, o que é muito mais gerenciável em uma PCB de 2 camadas.
Observe que isso é para a especificação de Alta Velocidade. Sob a especificação de Velocidade Total, temos um comprimento crítico mais relaxado de 2,4 polegadas (limite de 10%) ou 6 polegadas (limite de 25%) para um tempo de subida de 4 ns.
Uma coisa importante a se notar é esta: não existe um limite definido (10%, 25% ou outro) onde temos um comprimento crítico válido, e dependendo do tamanho da sua PCB, você pode estar acima do comprimento crítico e agora precisa projetar para a impedância correta. O limite depende de vários fatores, e determinar a porcentagem correta para o seu comprimento crítico requer o cálculo de múltiplos valores de impedância de qualquer forma. Em vez de desenvolver uma regra baseada neste comprimento crítico, é sempre mais fácil simplesmente projetar para a impedância USB requerida.
Em seguida, precisamos considerar como a saída do driver é terminada. Como estamos falando especificamente sobre USB aqui, observe que a especificação USB 2.0 exige alguns resistores de terminação nas linhas D+ e D- perto do conector para igualar as impedâncias. Estes podem estar integrados no transceptor USB no die, ou podem ser necessários como um componente externo. Os valores típicos são 15 Ohms, 22 Ohms ou 45 Ohms, embora outros valores possam ser usados; certifique-se de verificar a folha de dados do seu componente para ver que terminação é necessária. Apenas como um exemplo, o TUSB2077APTR USB Hub controller usa resistores de terminação de 27 Ohms. Certifique-se de verificar a folha de dados para verificar se você precisa desses resistores externos.
Com um limite de desvio de 100 ps no padrão de Alta Velocidade, agora podemos calcular a diferença de comprimento permitida entre os dois lados do par diferencial (os sinais D+ e D-). Tomando a estimativa aproximada de atraso de propagação de 6 ns/polegada para roteamento na camada superficial e multiplicando pelo limite de desvio, obtemos uma diferença de comprimento de trilha de 0,6 polegada (600 mil). Isso é muito grande! Temos muita liberdade para permitir algum ajuste de comprimento de trilha. No entanto, há um ponto importante aqui: isso inclui todo o comprimento do interconector (sua placa + cabo + placa receptora). Portanto, apenas para estar seguro, faça o melhor possível para limitar o desvio tanto quanto possível, roteando os pares juntos e impondo um pouco de correspondência de comprimento onde possível. Isso é bastante fácil porque os chips controladores USB geralmente colocam os sinais D+ e D- na mesma borda do chip.
Quando a diferença de comprimento é curta, pode não ser necessário implementar o ajuste de comprimento, pois isso ocupa espaço no layout da PCB. Apenas para ver o que outros sistemas funcionais farão, dê uma olhada na imagem do layout da PCB do Arduino UNO mostrada abaixo (nota: isso foi convertido de arquivos Eagle). As linhas USB foram destacadas na imagem. Se medirmos os comprimentos dos lados positivo e negativo dessas linhas (abrangendo cada lado dos resistores de terminação), encontramos que a diferença de comprimento é de cerca de 180 mils. É por isso que essas linhas não estão sendo ajustadas em comprimento entre o Arduino e o conector USB.
Neste espaço apertado, a interface ainda funcionará corretamente porque a diferença nos comprimentos é de apenas cerca de 180 mils, o que é muito menor do que a tolerância de desvio. Mesmo com o pior caso de efeito de tecido de fibra em um laminado de tecido de vidro frouxo, o desvio total (em termos de comprimento) seria apenas equivalente a menos de aproximadamente 230 mils, ainda muito abaixo da tolerância de desvio para esta interface.
Como eu apontei no blog anterior, você não pode usar a largura de traço correspondente à impedância característica em USB 2.0 de alta velocidade e ainda atender à especificação de impedância. Lembre-se, a largura do traço em uma PCB de espessura padrão com duas camadas era de cerca de 110 mils para Dk - 4.8. Como podemos possivelmente atender à especificação de impedância de par diferencial em USB 2.0 de alta velocidade com essa largura de traço?
Na realidade, não precisamos usar essa largura de traço devido à maneira como os traços em pares diferenciais se acoplarão um ao outro. Se você usar o calculador de empilhamento de camadas com uma placa de 2 camadas espessa para calcular a impedância diferencial para microstrips, você descobrirá que a largura de traço real necessária é muito menor e é uma função do espaçamento. Para nossas linhas de microstrip de exemplo em uma PCB de 2 camadas, o Gerenciador de Empilhamento de Camadas no Altium Designer nos diz que a largura do traço é de cerca de 16 mils para um espaçamento de 5 mils.
Você poderia usar trilhas mais finas com esses microstrips diferenciais, mas precisaria usar um espaçamento menor. Neste projeto, estamos próximos ao limite das distâncias de isolamento entre trilhas para a gravação, então manter o espaçamento de 5 mil entre as trilhas está ok, já que estamos atingindo a especificação de modo único e a especificação diferencial com estas larguras de trilha. Como sabemos que estamos atingindo a parte de modo único da especificação? Isso se deve ao fato de: a largura da trilha dada acima ser para a impedância em modo ímpar de uma trilha única, não a impedância característica! É por isso que você precisa manter este valor específico para a largura da trilha e não usar o valor da impedância característica para um microstrip isolado.
Existe uma alternativa que não discutimos: usar pares diferenciais de microstrip coplanares. Ao executar o preenchimento de terra até os microstrips na camada superficial, e colocando o preenchimento de terra abaixo dos sinais na camada inferior, você pode alcançar uma impedância diferencial de 90 Ohms com trilhas de 9,5 mil de largura, espaço de 5 mil entre trilhas e 5 mil de espaçamento para o terra. Podemos ver pelos valores abaixo que conseguimos atingir a impedância de 90 Ohms requerida na especificação USB 2.0 com esses valores.
Com este arranjo, não teremos que nos preocupar tanto com o problema do comprimento crítico e o problema da largura do traço em uma placa de 2 camadas. No entanto, você precisa notar que esta largura e espaçamento devem ser mantidos ao longo de todo o comprimento da rota. O roteamento USB trata os traços como traços simples individuais que apenas acontecem estar transportando um sinal diferencial, então você poderia roteá-los separadamente.
A topologia de roteamento é bastante simples: rotear do chip USB para os resistores de terminação/pull-up/pull-down, e então para o conector, tudo como pares diferenciais. A imagem abaixo mostra a topologia de roteamento de alto nível com resistores de pull-up e pull-down. Alguns capacitores também são necessários sob o padrão USB 2.0, conforme mostrado abaixo.
O roteamento é bastante simples: obedeça às práticas padrão de roteamento de pares diferenciais entre cada parte do sistema e você não terá problemas com registro de sinal ou correspondência de impedância. Mantenha rotas curtas com conexões diretas saindo das linhas de pares diferenciais para fazer conexões com GND/VCC para os resistores de pull-down e pull-up. Certifique-se de verificar o circuito de aplicação para o seu dispositivo em suas folhas de dados, pois as linhas D+/D- podem ter capacitores externos adicionais no dispositivo; você verá isso no dispositivo TUSB2077A que citei acima.
Mostraremos um exemplo real no layout da PCB em um blog futuro. Por enquanto, tente fazer isso você mesmo e veja se consegue rotear o design.
Neste blog e no nosso post anterior, examinamos algumas das regras de roteamento importantes a seguir ao configurar e rotear uma interface de alta velocidade como USB em uma PCB de 2 camadas. Aqui estão nossas diretrizes finais de roteamento:
As diretrizes de roteamento mostradas aqui não garantirão sempre a EMC, há outros aspectos do projeto a considerar, que às vezes são mal executados em PCBs de 2 camadas. No entanto, estas diretrizes certamente ajudarão com a EMI se você estiver trabalhando com a especificação Full Speed. Minha preferência pessoal é usar uma PCB de 4 camadas para barramentos digitais seriais e protocolos de alta velocidade, particularmente se a placa for maior ou se vai entrar em produção em volume.
Se você está usando USB 3.0, então você tem requisitos rigorosos de correspondência de comprimento devido às rápidas taxas de transição, e você deve colocar a interface perto do conector como fizemos com a especificação Full Speed listada acima.
Quando você precisa rotear uma interface como USB em uma PCB de 2 camadas ou em uma placa multilayer mais avançada, use as ferramentas de layout e roteamento de PCB no CircuitMaker. Todos os usuários do CircuitMaker podem criar esquemáticos, layouts de PCB e documentação de fabricação necessários para mover um design da ideia para a produção. Os usuários também têm acesso a um espaço de trabalho pessoal na plataforma Altium 365™, onde podem fazer upload e armazenar dados de design na nuvem, e visualizar projetos facilmente através de um navegador web em uma plataforma segura.
Comece a usar o CircuitMaker hoje e fique atento para o novo CircuitMaker Pro da Altium.