Estou usando o driver de LED TLC5945 . O microcontrolador (estou usando o LPC1343 ) deve fornecer um relógio para o temporizador / contador PWM interno. A velocidade máxima permitida do relógio é especificada como 30MHz.
Vou ter várias placas com TLC5945 daisychained. As placas serão conectadas através de conectores placa-a-placa ou cabos de fita curtos, a largura de uma placa é de 10 cm. Vou ter no máximo 4 deles conectados em série.
Provavelmente não usarei 30MHz completos, mas, no entanto, quero fazê-lo corretamente - como rotear / condicionar o sinal do relógio mantendo-o intacto?
Se eu adicionar um buffer como 74HC245 na saída de todas as placas, recebo um atraso de 10ns após cada buffer, não quero isso. Devo usar buffers de relógio especializados para "atraso zero"? Que tipo de esquema de rescisão devo empregar?
fonte
Respostas:
30 MHz é suficiente para que você precise tratar o sinal como um problema na linha de transmissão. Você precisará prestar atenção ao layout da placa em todo o design, incluindo e principalmente nos conectores. Você precisará trazer pinos de aterramento extras junto com o sinal de 30 MHz ou possivelmente usar conectores especiais.
Você precisará de informações sobre o layout da sua placa, número de camadas e coordenar com o fabricante da placa pretendida, para que eles possam direcionar uma impedância característica específica para você ou apenas para obter parâmetros como constantes dielétricas.
Parece que você está ciente de muitos desses problemas, mas achei melhor resolvê-los, porque se você não tomar cuidado, poderá obter um design que seja funcional, mas emita muita RF e nunca passará por um problema. Teste EMI.
Diretrizes para rotear o sinal:
Obviamente, em um design do mundo real, talvez você precise quebrar algumas dessas diretrizes.
A maioria dessas regras segue a observação de que em altas frequências, a corrente de retorno tentará se aproximar do sinal, portanto, você deve fornecer um caminho para a corrente de retorno. Se a corrente de retorno estiver fisicamente separada, você estará criando uma antena parasita. O plano de terra (ou potência!) Que fornece um caminho para a corrente de retorno é chamado de referência. Não deixe o plano de referência. Se você precisar passar por uma via, o plano de referência muda. O capacitor de desvio é definido entre os planos de referência novos e antigos.
Seus conectores apresentarão um problema, pois provavelmente terão uma impedância diferente da PCB, causando reflexos e degradando o sinal. Uma opção pode ser usar um conector controlado por impedância que corresponda à impedância da placa.
No lado do firmware, pode ser necessário experimentar a força da unidade para controlar a taxa de borda. A força máxima da unidade geralmente é a resposta errada. Seu fornecedor de IC deve poder fornecer um modelo IBIS , com o qual você pode simular o circuito para estimar a integridade do sinal. Estritamente falando, não é a freqüência do relógio que causa problemas de integridade do sinal ou EMC, mas a taxa de borda (o tempo de transição entre alto e baixo), porque as bordas rápidas se manifestam como transientes de banda larga no domínio da frequência. Reduzir a força da unidade e / ou a taxa de giro reduzirá a taxa de borda e reduzirá as emissões harmônicas, enquanto (provavelmente) aumenta o tremor do relógio. Verifique as folhas de dados para ver qual é a taxa de borda aceitável para os receptores do relógio.
Meu senso é que, se você fizer sua lição de casa, provavelmente não precisará de nenhum tipo de repetidor de sinal. Considere o SCSI, por exemplo, que é um enorme barramento paralelo de alta velocidade distribuído por cabos a cerca de 100 MHz. Se possível, considere investir em um programa como o HyperLynx para simular seu layout.
Altera tem um excelente guia para problemas de roteamento de alta velocidade.
fonte
Não vai machucá-lo a fazer todas as coisas que jbarlow e David sugerem, mas deixe-me tentar facilitar um pouco as coisas para você (ou talvez seja mais difícil, porque eu vou dizer que você provavelmente pode se safar muito) de coisas, mas não vou prometer ).
Uma regra prática clássica é que você pode considerar um circuito agrupado se nenhuma das dimensões for maior que 1/10 do comprimento de onda do sinal de interesse de frequência mais alta. Se for um circuito fixo, você pode considerar suas trilhas apenas como conexões entre elementos discretos. Se não é um circuito concentrado, você precisa se preocupar com os efeitos do circuito distribuído e considerar seus traços como linhas de transmissão.
Você está falando de uma frequência de clock de 30 MHz, correspondente a um comprimento de onda de 10 m. Se propagando através do FR4, esse comprimento de onda será reduzido para cerca de 4,7 m. E um comprimento de circuito de 40 cm. Portanto, para o fundamental do sinal do relógio, você está no limite da antiga regra geral.
Problema: Você não precisa apenas se preocupar com a frequência do relógio, mas com quantos harmônicos dessa frequência precisam ser transmitidos para dar o tempo de subida e descida que você deseja. Se você desacelerar deliberadamente as bordas que transmite, provavelmente poderá se dar bem com o 1º e o 3º harmônicos (David mencionou isso quando ele mencionou não usar necessariamente a força máxima do acionamento).
Isso fornece uma frequência de interesse máxima de 90 MHz e comprimento de onda correspondente (em FR4) de cerca de 1,6 m. Portanto, a distância crítica é de 16 cm. Isso significa que, em geral, você deseja fornecer um caminho de retorno intimamente acoplado, designar suas trilhas como linhas de transmissão e terminar com uma impedância apropriada etc.
Mas você provavelmente não precisa pagar mais pela impedância controlada. Se você projetar com traços acima da largura mínima disponível pelo seu fornecedor (por exemplo, 8 ou 10 mil), as tolerâncias normais provavelmente fornecerão um desempenho adequado.
E se, ao longo do caminho, você tiver que passar por uma via ou percorrer um curto espaço no plano de terra, ou não conseguir colocar um capacitor de desvio próximo a uma peça de carga, não se preocupe demais. Se você deseja executar suas trilhas diretamente de conector para conector, com alguns centímetros de ponta para alcançar os chips de carga em cada placa, tudo ficará bem. Se o comprimento da parte não controlada do caminho (ou a fenda no plano do solo) for inferior a alguns centímetros, isso não vai estragar o seu dia. Mesmo que tenha 10 cm, é provável que você se safe, mas não se esforce.
Por exemplo, isso significa que quando você se conecta entre placas, não há necessidade de um conector controlado por impedância de alto custo. Até alguns centímetros de cabo de fita ficarão bem. Um padrão de aterramento do sinal de aterramento ou de sinal de aterramento do sinal de aterramento na fita é uma boa idéia, mas não se preocupe com cabos ou coaxiais de pares trançados com impedância.
Por outro lado, se você decidir usar um buffer em cada placa, isso permitirá que você praticamente trate o circuito em cada placa (com 10 cm de comprimento) como um circuito agrupado. Você desejará gerenciar a inclinação do buffer, como David descreveu, e terá que limitar os tempos de subida e descida de cada buffer, mas obterá muita flexibilidade no layout de cada placa sem degradar a funcionalidade. Dito isso, quanto mais você faz para manter os caminhos de retorno próximos aos traços de sinal, menor a probabilidade de ter uma surpresa desagradável quando se trata de testes EMC.
fonte
Eu acho que a resposta de @ jbarlow é bastante clara. Quero acrescentar um pouco, mas não vou me incomodar em repetir o que ele disse.
A única coisa que eu discordaria de @jbarlow é o uso de repetidores ou o buffer de todos os sinais. O que ele diz está correto, "se você fizer sua lição de casa ...". Mas esse é o problema, fazendo sua lição de casa. Você pode fazer isso, mas precisará de cabos e conectores relativamente caros - e então será apenas "realmente difícil".
Não parece que adicionar 10 ns de atraso para armazenar o relógio em cada PCB seja realmente um problema. É difícil para mim dizer com certeza, pois você deixou de fora muitos detalhes sobre outros sinais como BLANK e XLAT. Mas mesmo que seja um problema, você sempre pode armazenar em buffer TODOS os sinais. Todos os portões do 74xx245 tenderão a ter o mesmo atraso (ou pelo menos semelhante) e, portanto, o tempo geral no driver do LED permanecerá bom.
(Nota: verifique as planilhas de dados. Um bom chip listará dois números diferentes de atraso de propagação. Um para um portão individual e outro mostrando a diferença ou desvio no atraso entre os portões do mesmo chip. Não aceite minha palavra. Você ainda será necessário fazer uma análise de tempo adequada.)
Obter a terminação e impedância dos sinais entre as placas de circuito impresso é fundamental para fazer esse projeto funcionar. Controlar a impedância em cabos multicondutores é sempre difícil, e executar um único sinal através de vários PCBs e cabos está apenas causando problemas. Você terá uma alteração na impedância em muitos pontos ao longo do comprimento do sinal, o que criará problemas de integridade do sinal. O buffer de todos os sinais entre PCBs ajudará a gerenciar isso. Pelo menos os comprimentos de rastreamento e as alterações de impedância em cada sinal serão mantidos no mínimo.
O uso de buffers de atraso zero não é necessário e pode realmente piorar as coisas (e mais caro). Os buffers de atraso zero são realmente PLLs (Phase-Locked-Loops) e requerem um design cuidadoso para funcionar perfeitamente. Na maioria dos casos, isso não é grande coisa, mas certamente pode ser um problema se o seu relógio não for perfeito. Seria melhor evitá-los para esta aplicação. Além disso, um buffer de atraso zero não é adequado para armazenar nada além de um relógio em execução contínua - portanto, não ajuda a armazenar em buffer outros sinais.
fonte