Quanto velocemente dovrei campionare con un analizzatore logico?


11

Se ho un segnale digitale da 10 MHz, quanto velocemente devo campionare con un analizzatore logico per evitare errori di bit? La frequenza di campionamento minima aumenta se si desidera collegare un decodificatore di protocollo (ad es. SPI)?

Sono a conoscenza del teorema di campionamento di Nyquist-Shannon e del fatto che un'onda quadrata di 10 MHz ha un'energia significativa a armoniche più elevate (30 MHz, 50 MHz, ecc.). Tuttavia, un analizzatore di logica non ha bisogno di campionare o riprodurre perfettamente un'onda quadra per sapere se si tratta di una logica 1 o 0. Sto cercando ciò che è praticamente necessario per evitare errori di bit o errori di decodifica del protocollo.

Sto usando la Saleae Logic Pro 16.

Risposte:


7

Il minimo che puoi fare è dato dal teorema di Shannon-Nyquist : per poter leggere un segnale, devi campionare almeno il doppio della sua frequenza. Qui, è possibile campionare a 20MS / s (mega campione al secondo). Tuttavia, 2 punti per un periodo sono pochissimi e introducono molto jitter sul segnale ricostruito.

Il tuo analizzatore di logica non condividerà il tuo segnale. Questo è un caso comune nella trasmissione e ti consiglio di fare lo stesso della maggior parte dell'interfaccia UART / SPI / I2C / ...: prendere 3 punti per stato. Ciò consente di filtrare il rumore EMC utilizzando un filtro di maggioranza e, durante l'analisi, consente di vedere una significativa inclinazione tra i segnali. Si noti che l'orologio di un bus SPI a 10 MHz va sia in alto che in basso ogni periodo di 100 ns, quindi è necessario campionare a 6 volte la frequenza SPI (60MS / s).

60MS / s è comune per gli analizzatori logici e ciò consentirà di rilevare un'eccessiva inclinazione (tra i dati e l'orologio) per la maggior parte dei protocolli (incluso SPI). Tuttavia, con un orologio non simmetrico (con tHIGH! = TLOW), dovrai campionare abbastanza velocemente per campionare la parte più breve dell'orologio. Se l'orologio è ALTO per 1µs e BASSO per 9µs, hai un segnale da 100kHz, ma hai bisogno di 3MS / s.

Questa risposta considera solo il segnale che si desidera analizzare. Per problemi di compatibilità elettromagnetica, di solito utilizziamo ambiti analogici con una frequenza di campionamento 10 volte superiore alla frequenza più alta nel sistema, ma è un po 'costoso e fuori tema, considerando che la domanda è decodificare un bus SPI.


1
Uso 6 volte la frequenza di clock come frequenza di campionamento. 4 volte dovrebbero essere sufficienti per vedere qualsiasi inclinazione, ma nella mia esperienza, è più difficile da capire quando si tratta di grandi tempi di salita / discesa.
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.