Perché la mia forma d'onda inizia prima del trigger?


10

Sto imparando come analizzare l'orologio e i dati del bus SPI usando un oscilloscopio di archiviazione digitale entry-level. Sto usando un BK Precision 2542B per misurare l'uscita dell'orologio e delle linee MOSI da un Netduino che utilizza un microcontrollore ARM.

Immagine dell'oscilloscopio

In questa immagine, ho l'orologio sul canale 1 (giallo) e il MOSI sul canale 2 (blu). Il trigger è impostato per utilizzare il canale 1, utilizzando un trigger del fronte di salita di 1,44 V. L'ampiezza dell'onda quadra dell'orologio è di circa 3,3 V.

L'indicatore di trigger si trova al centro del display in orizzontale, ma ho un impulso alla sua sinistra. Mi aspettavo che il primo impulso dell'orologio iniziasse nella posizione del trigger. So che un oscilloscopio a memoria digitale ti consente di vedere eventi pre e post trigger, ma sono confuso perché il primo impulso non è dove pensavo che sarebbe stato.

La mia comprensione del trigger è errata o sto solo usando uno strano ambito?

Modifica: il treno di impulsi ha una larghezza di 300 μs, si ripete a intervalli di 2 ms e ho un trigger che tiene premuto il valore di 500 μs. La regolazione del blocco non ha modificato il fatto che un impulso precede il trigger.

Modifica 2:

Dopo ulteriori analisi del segnale, incluso l'uso dell'oscilloscopio analogico, penso di aver determinato che a volte la durata dell'impulso è di circa 350 μs invece di 300μs. Questo potrebbe essere un problema tecnico nei frame generatori di codice.

Ho scoperto che un tempo di attesa di 352 μs produrrà il risultato atteso, ma ogni tanto un impulso in più precede il trigger.

Valore di blocco

Ho registrato alcuni frame per mostrare l'impulso sia assente che presente:

Impulso principale assente Impulso principale presente

Se imposto la base dei tempi orizzontale abbastanza a lungo per vedere la durata degli impulsi, ci sono sempre almeno 1,7 ms tra di loro:

Impulsi di dati a 1 ms per div

Quindi, mentre penso che l'impulso iniziale sia il risultato di un "glitch" della sorgente, non sono ancora sicuro di come un trigger trigger> 360μs produca ancora l'impulso iniziale imprevisto.


2
Controlla il menu del tuo trigger: potresti essere in grado di innescare un impulso basso per => un certo tempo e questo corrisponderà alla schermata che hai mostrato. Prova invece a innescare i bordi.
Andy aka il

Ho anche un ambito "entry-level", Owon SDS7102, e anche a volte mancherà il primo trigger. Il comportamento sembra dipendere dalla base dei tempi / frequenza di campionamento / impostazioni della memoria e dalla frequenza del segnale. Forse anche il tuo potrebbe essere influenzato dalle impostazioni di base dei tempi / frequenza di campionamento?
AndrejaKo

1
Ho visto $ 18.000 scopes non essere in grado di girare e riattivare in meno di 5 ms. Abbastanza triste, davvero. Con un intervallo di 2 secondi almeno non dovrebbe essere il tuo problema.
darron,

1
@darron In effetti, il 2s era un errore di battitura - gli impulsi sono a intervalli di 2ms. Penso che l'ambito riattivi il grilletto abbastanza velocemente, ma altri fattori sono in gioco come ho già detto nell'aggiornamento alla domanda.
JYelton,

Risposte:


3

Probabilmente hai attivato una sorta di filtro trigger o ritardo. Altrimenti, un normale trigger del fronte di salita dovrebbe aver catturato il primo impulso, non atteso fino al secondo. Guarda attentamente attraverso il menu trigger e disattiva tutto ciò che viene chiamato "filtro", "ritardo", "holdoff" e simili.


Ho modificato la domanda. Il flusso di dati si ripete ogni 2 ms, non 2 secondi. Ho assicurato che nessun filtro è abilitato e che l'attivazione del trigger è leggermente più lunga del treno di impulsi. Il mio oscilloscopio analogico (BK 2190B) si innesca perfettamente al primo impulso di clock. Quello digitale, tuttavia, manca sempre. Non sono sicuro di cos'altro fare se non restituire l'ambito digitale, non sembra molto capace.
JYelton,

3

Questo stesso segnale si innesca perfettamente usando un Tektronix TDS3014, con valori di hold trigger che vanno da 350μs a 1,5ms o più.

Risultato Tek TDS3014

Penso che la risposta, quindi, sia quella di controllare i segnali con più di un ambito quando qualcosa non sembra giusto.

Non sono mai riuscito a far sì che il BK 2542B mostrasse correttamente l'orologio senza perdere il primo impulso o mostrare "glitching" o "immondizia" casuali che rendessero innumerevoli gli impulsi dell'orologio.


0

Amico, il bus SPI è sincronizzato sulla caduta della linea dell'orologio, non sull'aumento, ecco perché tutto sembra fuori posto!

Saluti, max


Scommetto che l'ambito non si preoccupa di come SPI è sincronizzato, tutto ciò che vede è il segnale A e il segnale B.
Dmitry Grigoryev

0

Bene, tecnicamente il tuo ambito non ha fatto nulla di male: volevi sincronizzare sul fronte di clock in aumento, e tutti i tuoi screenshot lo sono. Nessuno ti ha detto che sarà il primo impulso . Se l'oscilloscopio inizia a registrare in modo sufficientemente precoce, il grilletto dovrebbe colpire il primo impulso, in caso contrario - sfortuna, otterrai l'immagine n. 2.

Quello che non riesco a capire è perché vuoi il tuo trigger su CLK e non sul segnale SS. Il fronte di discesa su SS garantisce che sei all'inizio della transazione, l'aumento del bordo CLK no.

EDIT: considerando che sembra che manchi sempre esattamente un impulso, dopo tutto sembra un bug nell'ambito. Tuttavia, vedi se il trigger su SS aiuta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.