Roteamento de sinal USB - Troque linhas de dados usando vias?

16

Estou fazendo meu segundo design USB, mas os pinos D + / D- no MCU (atemga16u2) não estão na ordem certa para o conector micro B. Qual é a melhor prática para direcioná-las para o caminho certo? Minha idéia atual é girar o atmega 180 graus e direcioná-los para baixo, mas parece que os traços são razoavelmente longos.

Eu também poderia colocar uma das linhas embaixo da outra, mas tenho certeza de que isso interferiria nos comprimentos do par diferencial.

Este dispositivo não ultrapassa a velocidade total, para que eu possa sair com um roteamento menos do que perfeito.

Roteamento sob o MCU com vias

monty
fonte
Se você tiver espaço suficiente, mantenha os traços na camada superior e insira o conector do outro lado. Pode valer a pena girar o chip também.
Armandas
Você quer dizer o outro lado como na camada inferior? Infelizmente não posso fazer isso por causa de problemas de espaço.
Monty
Não, do outro lado como de cima (como mostrado na imagem), em vez de de baixo, como você faz agora.
Armandas
Na velocidade máxima do USB, você pode se safar muito. Vias certamente, resistores de 0805 ou 1206 de 0 ohm para conectar um ao outro em uma única camada, etc. Você já possui resistores em linha (como muitos projetos fazem) para poder explorá-los.
Chris Stratton

Respostas:

8

Como é difícil descrevê-lo nos comentários, colocarei como resposta.

Se o espaço permitir, você poderá rotear seus sinais da seguinte maneira:

insira a descrição da imagem aqui

Armandas
fonte
Você acabou de me convencer antes de enviar o meu: i.imgur.com/nELi3dP.png Agora, a folha de dados diz que deve ser uma zona livre de sinal - devo ficar bem?
Monty
@monty Esqueci que o microUSB é todo de metal. Eu aconselho a seguir as instruções da folha de dados sempre que possível.
Armandas
@monty Vou emprestar sua imagem para minha resposta, se estiver tudo bem.
Armandas
Existe algum benefício em rotear os dois rastreamentos dessa maneira? Por que não direcionar a pessoa R2da posição de seis horas do bloco superior para a posição de doze horas do bloco inferior e depois direcionar apenas o traço para o R1redor?
Par
3
O @par USB usa sinalização diferencial, portanto, é necessário combinar os comprimentos dos traços e mantê-los juntos para manter a impedância diferencial. Pode não ter muita importância nesse caso (devido à menor velocidade, como mencionado por outros), mas é uma boa prática e um hábito que se deve desenvolver.
Armandas
23

Como complemento à resposta de Armandas:

Se você deseja usar vias, existe um truque simples para trocar as linhas: Gire as vias em 90 graus, ou seja, coloque-as "acima" uma da outra. Se você inserir as duas vias da esquerda na camada superior e deixá-las à esquerda na camada inferior, as duas linhas serão trocadas sem nenhum custo:

Trocar duas linhas com vias

(Apenas um desenho rápido, pois meu computador esquemático me disse que é absolutamente necessário instalar as atualizações agora ...)

No USB Full Speed, você não precisa se preocupar com a correspondência de comprimento no par diferencial. O sinal elétrico se propaga a cerca de 20 cm / ns no traço.

Como o sinal é transmitido a 12 MBit / s, cada bit tem 83 ns de comprimento. Supondo que a amostragem seja feita no meio de cada período de bit e os tempos de subida e descida dos sinais não sejam superiores a 30 ns (o que é muito conservador), ainda existe uma margem de 41 ns - 30 ns / 2 = 26 ns, correspondente a um comprimento de traço de 5 metros. Diante disso, pode-se supor com segurança que uma incompatibilidade de vários centímetros não é absolutamente um problema.

asdfex
fonte
Outra boa opção.
Armandas
Você poderia fornecer uma foto? Estou tendo dificuldade em imaginar o que você está descrevendo.
vini_i
@vini_i Aqui você vai - adicionou um desenho de traços.
Asdfex
Se tudo estivesse na camada superior, por exemplo, você o soltaria no fundo e eles o trariam de volta com a cruz?
vini_i
11
Você pode explicar brevemente sua equação 41ns - 30 / 2ns? O período inteiro é de 83 ns e você está removendo metade do tempo de subida para obter a quantidade de tempo em que o sinal é 1 ou 0 válido, sim? Por que você também não remove metade do tempo de queda? e por que você está usando apenas 41ns (metade do período de bits) em vez dos 83ns completos? Então, por que não seria 83ns (período completo) -30/2 -30 / 2 = 53ns? Você está basicamente dizendo que tem uma margem de +/- 26ns em qualquer direção para obter 53 ns de margem?
Scuba