Por que minha forma de onda começa antes do gatilho?


10

Estou aprendendo a analisar o relógio e os dados do barramento SPI usando um osciloscópio de armazenamento digital básico. Estou usando um BK Precision 2542B para medir a saída do relógio e as linhas MOSI de um Netduino que utiliza um microcontrolador ARM.

Imagem do osciloscópio

Nesta imagem, tenho o relógio no canal 1 (amarelo) e o MOSI no canal 2 (azul). O gatilho está configurado para usar o canal 1, usando um gatilho de borda ascendente de 1,44V. A amplitude da onda quadrada do relógio é de cerca de 3,3V.

O indicador de disparo está no centro da tela horizontalmente, mas tenho um pulso à esquerda. Eu esperava que o primeiro pulso do relógio iniciasse no local do gatilho. Sei que um osciloscópio de armazenamento digital permite que você veja eventos antes e depois do disparo, mas estou confuso por que o primeiro pulso não está onde eu pensava que seria.

O meu entendimento de acionamento está incorreto ou estou apenas usando um escopo estranho?

Edit: O trem de pulso tem 300μs de largura, repete-se a intervalos de 2ms, e eu tenho um valor de retenção de gatilho de 500μs. O ajuste da retenção não mudou o fato de que um pulso precede o gatilho.

Edição 2:

Após mais análises do sinal, incluindo o uso do osciloscópio analógico, acho que determinei que algumas vezes a duração do pulso é de cerca de 350μs em vez de 300μs. Isso pode ser uma falha no código que gera quadros.

Descobri que um tempo de espera de 352μs produzirá o resultado esperado, mas de vez em quando um pulso extra precede o gatilho.

Valor de retenção

Gravei alguns quadros para mostrar o pulso ausente e presente:

Pulso principal ausente Pulso principal presente

Se eu definir a base de tempo horizontal por tempo suficiente para ver a duração dos pulsos, sempre parecerá haver pelo menos 1,7ms entre eles:

Pulsos de dados a 1ms por div

Portanto, embora eu pense que o pulso inicial seja o resultado de uma "falha" da fonte, ainda não tenho certeza de como uma retenção de disparo> 360μs ainda produz o pulso inicial inesperado.


2
Verifique o menu do seu gatilho - você pode estar disparando com o pulso baixo por => um certo tempo e isso corresponderá à captura de tela que você mostrou. Tente ativar a borda.
Andy aka

Eu também tenho um escopo de "nível de entrada", Owon SDS7102, e às vezes ele também perde o primeiro gatilho. O comportamento parece depender das configurações da base de tempo / taxa de amostragem / memória e frequência do sinal. Talvez você também possa ser afetado pelas configurações da base de tempo / taxa de amostragem?
AndrejaKo

11
Vi escopos de US $ 18.000 serem incapazes de se virar e voltar a disparar em menos de 5 ms. Muito triste, sério. Com um intervalo de 2s, pelo menos, esse não deve ser o seu problema.
darron

11
@darron Por acaso os 2s foram um erro de digitação - os pulsos estão em intervalos de 2ms. Eu acho que o escopo está reajustando o gatilho rápido o suficiente, mas outros fatores estão em jogo, como mencionei na atualização da pergunta.
JYelton

Respostas:


3

Você provavelmente tem algum tipo de filtragem de gatilho ou atraso ativado. Caso contrário, um gatilho de borda ascendente regular deveria ter captado o primeiro pulso, e não esperado até o segundo. Olhe atentamente pelo menu do acionador e desligue qualquer coisa chamada "filtro", "atraso", "retenção" e similares.


Eu editei a pergunta. O fluxo de dados se repete a cada 2ms, não a 2s. Eu garanti que a filtragem não está ativada e esse gatilho é um pouco mais longo que o trem de pulsos. Meu osciloscópio analógico (BK 2190B) dispara muito bem no primeiro pulso de clock. O digital, no entanto, sempre sente falta. Não tenho certeza do que mais fazer, exceto devolver o escopo digital, ele não parece muito capaz.
JYelton

3

Esse mesmo sinal é acionado muito bem usando uma Tektronix TDS3014, com valores de retenção de acionador que variam de 350μs a 1,5ms ou mais.

Resultado Tek TDS3014

Penso que a resposta, portanto, é checar sinais com mais de um escopo quando algo não parece certo.

Eu nunca consegui fazer com que o BK 2542B mostrasse o relógio corretamente, sem perder o primeiro pulso ou mostrar "falhas" ou "lixo" aleatórios, tornando o pulso incontável.


0

Cara, o barramento SPI é sincronizado na queda da linha do relógio, não no aumento, é por isso que tudo parece mal colocado!

Atenciosamente, Max


Aposto que o escopo não se importa sobre como SPI é sincronizado, tudo o que vê é sinal de A e B. sinal
Dmitry Grigoryev

0

Bem, tecnicamente, seu escopo não fez nada de errado: você queria sincronizar com o aumento do limite do relógio e todas as suas capturas de tela. Ninguém lhe disse que será o primeiro pulso . Se o osciloscópio começar a gravar suficientemente cedo, o gatilho deverá atingir o primeiro pulso, se não for - azar, você obtém a imagem # 2.

O que não consigo entender é por que você quer o seu gatilho no CLK, e não no sinal SS. A vantagem no SS garante que você está no início da transação, mas a vantagem no CLK não aumenta.

EDIT: considerando que você parece sempre perder exatamente um pulso, parece um bug no escopo, afinal. Ainda assim, veja se o acionamento no SS ajuda.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.