Problema de terminação de barramento SPI

10

Estou trabalhando em um projeto em que um mestre OMAP Linux SPI interage com 6 periféricos SPI slaves (conversores 5x A / D e magnetômetro único).

Posso definir a frequência do relógio SPI e experimentei 50 kHz, 100 kHz e 1MHz.

Anexei um diagrama de fiação / placa mostrando o comprimento do SPI master e de todos os periféricos. O comprimento do barramento SPI (todos os comprimentos de fio) longe do mestre é de aproximadamente 970 mm para o meu caso experimental.

insira a descrição da imagem aqui

O problema que encontrei é que a comunicação com 1 periférico falha quando adiciono mais outros periféricos no barramento. Mesmo se a comunicação chegar ao magnetômetro do outro lado do barramento, a comunicação com os conversores A / D do outro lado falhará até que a ponta do chicote do magnetômetro seja removida e a seção A / D retorne.

Fiz algumas leituras aqui: Considerações sobre a terminação do barramento SPI e aqui: Comunicação de placa curta para placa

onde é recomendado colocar um RC LPF o mais próximo possível de qualquer nó de acionamento, para que SCLK e MOSI no lado mestre e cada um dos meus sinais 6x MISO / SOMI. Eu já vi uma abordagem semelhante feita para USB com rede 47pF / 27R RC. Minha intenção é tentar isso no meu circuito, em um esforço para reduzir a transição rápida da borda afiada ~ 100seg.

Esse é o procedimento correto que estou seguindo aqui com a adição de um RC LPF? Isso parece realmente instável, existe uma prática melhor? Eu vi uma nota de aplicativo da TI, onde eles falam sobre a extensão do SPI para distâncias de ônibus mais longas. Essa é uma solução apropriada aqui ou meu problema é simplesmente uma das harmônicas de alta frequência da transição de borda de alta velocidade? http://www.ti.com/lit/an/slyt441/slyt441.pdf

Obrigado Nick

Uma medição CLK / MISO limpa do magnetômetro

Medição do tempo de transição do relógio do sinal CLK

Esta linha MISO (canal 1) mostra reflexões?  Os níveis não parecem digitais com a escada, são essas reflexões

shraken
fonte
Você tem a capacidade de adicionar resistores em série e alterar a fiação?
perfil completo de efox
Oi efox29, sim, mas será um pouco sujo. Meu mestre SPI está em um SOM montado na minha placa-filha. Minha intenção é reduzir o rastreio para SCK e MOSI e montar um RC de 330 ohms / 47pF 0603/0805 para cada um usando cola epoxi / cola e fazer algo semelhante nas placas A / D e magnetômetro do MISO. Vou tentar fazer o stub GND o mais próximo possível do bloco ou avião GND. Esperando até ouvir mais, mas pretendo tentar amanhã. Não tenho a capacidade de alterar o SPI em uma cadeia ou qualquer coisa do tipo. De qualquer forma, não faria muito bem, as placas precisam estar em lados opostos.
shraken
Como está o seu sistema com um relógio mais lento como 50Khz? Qual é o microcontrolador que você está usando?
perfil completo de efox
Eu sugeriria começar pela linha SCK antes de adicionar Rs e Cs às outras linhas. Afinal, as arestas são importantes apenas na linha do relógio, as outras linhas serão mais tolerantes aos reflexos.
alex.forencich
2
E com esse tipo de problema, é a taxa de giro de borda que é o problema, não a frequência do relógio. Se você vir o mesmo problema independentemente da frequência do relógio, as arestas rápidas são o problema e precisam ser mais lentas.
alex.forencich

Respostas:

5

É difícil responder a isso sem todos os detalhes, mas aqui está uma visão genérica do problema que, acredito, também pode ser o tipo de resposta mais útil para este site.

As redes com vários nós sempre devem ser simuladas. Eles são tão difíceis de prever. E demorou cerca de 3 minutos para ver que seu design talvez não fosse o ideal.

Aqui está a configuração da simulação para o relógio do mestre para todos os dispositivos escravos (os valores são apenas estimativas aproximadas, como seria o caso se você fizesse isso antes de criar qualquer coisa):

insira a descrição da imagem aqui

E o gráfico de simulação resultante (ignoramos o que é o quê, unidades etc., pois obviamente não vale a pena construir):

insira a descrição da imagem aqui

A primeira idéia que vem à mente é uma série de todas as entradas e uma simples terminação paralela. Um esquema de sobrevôo, se você quiser. Isso se parece com isso na configuração da simulação:

insira a descrição da imagem aqui

E o gráfico de resultados parece muito melhor:

insira a descrição da imagem aqui

Se você pode conviver com o aumento do consumo de energia da terminação thevenin e a redução da tensão nas entradas do relógio dos vários dispositivos e ... (apenas você conhece as restrições reais) ... então alguma variação disso pode realmente valer a pena construção.

Existem outras soluções que funcionariam, mas a chave é entender que as redes com vários nós não são fáceis de prever. Os 5 minutos de simulação aqui antes de você criar algo podem economizar muito tempo depois. Infelizmente, esse tipo de simulador não sai barato.

Estou usando o Cadence SigXplorer aqui. O aviso de isenção usual se aplica: eu dou aulas de integridade de sinal e geralmente tenho licenças de software patrocinador da Cadence ou Mentor para essas aulas.

Rolf Ostergaard
fonte
Qual software você está usando para linhas de transmissão sim?
precisa saber é o seguinte
@ efox29 Cadence SigXplorer e Mentor Hyperlynx.
Rolf Ostergaard
@nickishere (OP) Isso respondeu à sua pergunta?
Rolf Ostergaard
Oi Rolf, Obrigado por dedicar um tempo para simular este circuito, realmente aprecio isso. Vou ter que olhar para o Cadence SigXplorer e def. procure uma ferramenta como esta na próxima vez que eu abordar um ônibus grande. Estou marcando sua resposta como correta, pois é a mais detalhada e pertinente. No entanto, devo dizer que acabei usando a topologia empiricamente, portanto não posso dizer que funciona.
shraken