Perché non riesco a vedere il rimbalzo di un interruttore su un oscilloscopio?


19

Sto cercando di vedere il rimbalzo di un semplice interruttore su un oscilloscopio.

Ho preparato un semplice circuito breadboard (alimentazione → interruttore → resistenza → terra). Il problema è che viene visualizzato come un quadrato / rettangolo perfetto sull'ambito. Ho allegato una foto dello schermo dell'oscilloscopio e del circuito.

Perché non riesco a rimbalzare l'interruttore sull'oscilloscopio? Non credo sia un interruttore che non rimbalza.

Oscilloscopio

Circuito


Ecco una foto che mostra una scala temporale ingrandita (50 µs / div). Come puoi vedere, sale da 0 V a 9 V entro 150 µs e rimane lì. Ho provato alcuni interruttori diversi. La resistenza nella foto è di 220 ohm, 0,5 watt.

Inserisci qui la descrizione dell'immagine


13
Hai provato a regolare la base dei tempi / la scala orizzontale?
NMF

25
Ho difficoltà a credere che la tua versione ingrandita sia in realtà un nuovo trigger . Nulla sembrerebbe così tranne l'interpolazione interna dell'ambito. Un'interruzione netta con un filtro RC creato dall'ambito mostrerebbe un aumento pulito esponenziale - niente di lineare. Scommetto che hai appena ingrandito la forma d'onda memorizzata.
pipe

3
La mia foto ingrandita proviene da un'altra acquisizione con batteria anziché alimentatore. Ma come dice @pipe, ho acquisito la visualizzazione ingrandita e successivamente ingrandita il fronte di salita. Ora capisco che cambiare la scala temporale prima dell'acquisizione e dopo l'acquisizione è diverso? Non lo sapevo. Dovrò capire come catturare quando la scala temporale è impostata su uSec range.
Deniz,

5
@Deniz Impostare la base dei tempi ragionevolmente veloce (forse 1ms), il trigger dell'oscilloscopio su "singolo" e "fronte di salita", quindi premere il pulsante. Questo dovrebbe essere OK. Potresti anche voler guardare le impostazioni di visualizzazione e cambiare i punti per mostrare solo i punti per ciascun punto o passare a ciascun punto (dando un effetto "scala"). Questo ti impedirà di farti ingannare quando ingrandisci troppo lontano
Graham,

2
Correlati: una guida al debouncing (PDF). (Come HTML - parte 1 e parte 2 ). "I rimbalzi di meno di 100 nsec erano comuni"
Peter Mortensen,

Risposte:


11

Ecco un test che ho fatto con il mio ambito Tek a 200 MHz. Dovresti essere in grado di ottenere risultati simili con il Rigol, questo è un ambito più vecchio con una modesta frequenza di acquisizione 2Gs / s.

Il mio circuito è solo una sonda standard 10: 1 collegata attraverso un interruttore tattico da 6 mm con un pullup da 1K a + 5V di alimentazione.

inserisci qui la descrizione dell'immagine

Non tutte le catture erano così disordinate, alcune erano piuttosto ideali. Spingerlo forte sembrava portare a più disordine. C'è un po 'di squillo nonostante un bypass sull'alimentatore: quel fronte di caduta a causa della chiusura dei contatti dell'interruttore è molto veloce.

Se imposto uno sweep troppo lento (e quindi espando) ottengo solo l'interpolazione tra i campioni, il che potrebbe essere fuorviante. Non ci sono informazioni lì, quindi l'ambito le finge.

La cattura è stata un singolo evento, innescato dal fronte di discesa sul canale attivo, impostato relativamente vicino al livello 5 V (la freccia gialla a destra indica il livello di trigger di 3,68 V). Il centro dello schermo è a -96 ns (spostato per visualizzare un po 'più di dati pre-trigger poiché la maggior parte dell'azione è pre-trigger).


1
L'impostazione di un livello di trigger vicino a 5v ha davvero aiutato. Si innesca presto e consente di catturare più di quello che è successo subito dopo il primo contatto.
Deniz,

1
@Deniz potresti trovare in alcune situazioni che l'attivazione in prossimità della tensione di stato stazionario può causare errori di attivazione in base al rumore elettrico. poiché la transizione è rapida, un'alternativa è spostare l'offset del trigger (offset orizzontale) verso sinistra. In una cattura preesistente ciò ha l'effetto di "ritagliare" il segnale in orizzontale e può sembrare indesiderabile, ma al riavvio l'oscilloscopio inizia a spostare la cattura in modo che il punto di trigger sia a dire il 10% anziché a metà strada. In alcune catture non è auspicabile sacrificare metà del buffer per il pretrigger
crasico

17

L'oscilloscopio ricorda solo punti sufficienti per visualizzare la traccia alla risoluzione originale . Se acquisisci una traccia e poi ingrandisci, "allarga" i punti, quindi li collega con segmenti di linea retta. Questo può far sembrare che le funzionalità ad alta velocità non siano nemmeno lì.

Per trovare quello che stai cercando, inizia con il segnale acquisito. Quindi "ingrandisci" su quel fronte di salita regolando la base dei tempi. Quando inizi ad avvicinarti, inizierai a vedere la pendenza crescente del segnale.

Mentre lo fai, perderai la risoluzione sul segnale acquisito. Per compilare i dettagli, è possibile acquisire nuovi campioni di quel fronte di salita utilizzando il meccanismo di attivazione dell'oscilloscopio.

Una volta che puoi vedere la pendenza crescente, cattura un nuovo campione . Qualsiasi rimbalzo / superamento / rumore dovrebbe diventare evidente.


Ho aggiunto una foto con scala temporale ingrandita di 50uSec. Come puoi vedere nessun rimbalzo. Proverò anche a leggere il pulsante con un micro controller per vedere se sta effettivamente rimbalzando o meno.
Deniz,

12
Se si ingrandisce una forma d'onda memorizzata, potrebbe non avere campioni intermedi e solo interpolare. È possibile vedere il bordo più nitido se si memorizza un nuovo campione con l'impostazione della base dei tempi superiore. Come accennato, gli interruttori buoni o nuovi potrebbero avere pochissimo rimbalzo rilevabile.
KalleMP

12
@Deniz nessuna chiusura dell'interruttore si tradurrà in un impulso lineare a tratti - che deve essere uno zoom-in di qualcosa campionato ad una velocità inferiore (probabilmente 150 s, perché è il tempo impiegato per salire). μ
TimWescott,

3
@Deniz Per convincersi, cambia la modalità di visualizzazione dell'oscilloscopio in punti se possibile
crasic

14

Questo è un problema con l'impostazione dell'ambito e l'incomprensione di come interpretare le acquisizioni dell'ambito. È necessario acquisire il fronte di salita di un singolo impulso a una risoluzione ragionevolmente piccola utilizzando un singolo trigger. La buona notizia è che questo è esattamente ciò che gli oscilloscopi sono progettati per fare

La procedura generica è:

  1. Impostare il trigger su edge (su) e il livello di trigger a circa metà scala della tensione del pulsante
  2. (Opzionale) Spostare l'offset (orizzontale) del trigger sulla mano sinistra dello schermo per massimizzare la porzione di acquisizione dopo il trigger
  3. Passare il trigger su "normale" e "modalità singola" per attivare il trigger per una singola acquisizione
  4. Premi il tuo pulsante
  5. Se si utilizza il trigger continuo, si ottiene una nuova acquisizione a ogni pressione del pulsante
  6. Se non si utilizza la modalità normale, si potrebbe perdere il segnale acquisito a causa dell'aggiornamento dell'anteprima (in genere attivato a 60 Hz per avere una modalità "segnale live" simulata), la modalità "normale normale" congela l'ambito dopo l'acquisizione

La maggior parte degli ambiti di acquisizione digitale registra un numero fisso di punti in ogni momento, quindi la frequenza di campionamento è determinata da una combinazione di base temporale e profondità di acquisizione (che può essere configurata) e limitata dalla frequenza di campionamento massima. Sul mio oscilloscopio Tektronix l'oscilloscopio visualizza sia il tempo per div che la frequenza di campionamento effettiva.

Ciò che viene visualizzato può anche essere "finestra" a seconda della modalità, quindi potrebbe non essere sempre chiaro quale sia effettivamente la frequenza di campionamento. Ad esempio, 100K punti nella base dei tempi di 1 secondo con 10 divisioni sullo schermo sarebbero 10 kS / sec. 100k punti in una base temporale di 10 µs con 10 divisioni sullo schermo sarebbero 1 GS / sec. In genere questo è vicino al limite per i comuni ambiti digitali, quindi le basi temporali inferiori a 10 µs vengono spesso "ingrandite" divisioni a 10 µs (ad es. 100k punti in 10 divisioni a 10 µs, ma visualizzano una divisione con 1 µs di base temporale sullo schermo ).

Si noti inoltre che la larghezza di banda analogica (ad esempio "100 MHz") non è direttamente correlata alla frequenza di campionamento digitale.

Un ulteriore stranezza, il trigger non viene eseguito sul segnale (digitale) campionato, ma direttamente sull'ingresso attraverso un sistema di trigger dedicato. Ciò significa che è possibile attivare (a volte) un impulso troppo breve per essere risolto nel segnale digitale. Oppure è possibile aggiungere un ritardo del trigger molto più lungo della profondità del campione (ad esempio, visualizzare l'acquisizione con una risoluzione di 10 µs, ma 1 secondo dopo il trigger). Questo è anche il motivo per cui spesso esiste una porta "aux" o "trigger esterno" che può essere utilizzata per eseguire il trigger, ma mai visualizzata o acquisita.

L'oscilloscopio esegue efficacemente il campionamento continuo in un buffer ad anello e il grilletto arriva e dice ai sistemi di campionamento di memorizzare il buffer. Questa è una grande quantità di dati, quindi richiede un po 'di tempo per memorizzare i dati e riarmare il sistema di campionamento. L'elettronica e la memoria adatta per elaborare continuamente un flusso gigabit sono molto costose, quindi gli ambiti sono progettati per sfruttare la profondità di archiviazione limitata e la larghezza di banda digitale attraverso schemi di attivazione.


+1! Molto più informativo della mia risposta :)
bitsmack il

6

Supponendo che il resistore pull-down sia un valore ragionevole (1k - 10k), la cosa successiva che verificherei è vedere se esiste un filtro attivo su quel canale. Non cercherei la media del segnale: si tratta di un evento a singolo evento e la traccia mostra quel singolo evento. Ma è del tutto possibile che sia presente un filtro passa-basso a frequenza molto bassa che è attivato nell'ambito.

Un altro modo per scoprire se si tratta di un problema di ambito è semplicemente collegare una coppia di fili nei bus per i contatti degli interruttori. Quindi spazzola i due fili dell'interruttore insieme e osserva il rumore (o la mancanza di esso). Rumore significa che l'ambito probabilmente va bene. La rampa regolare indica che l'oscilloscopio non sta visualizzando l'intera larghezza di banda del segnale di ingresso.


5

inserisci qui la descrizione dell'immagine

Figura 1. I ragazzi della fotografia forense hanno trovato questo.

Ci sono diversi fattori:

  • Hai un bel nuovo interruttore pulito che rimbalza molto poco.
  • Il tuo ambito sta caricando il circuito e il 15 pF è sufficiente per aiutarti. Ciò è improbabile, tuttavia, con quello che sembra essere un resistore con un valore in centinaia di ohm. (La resa cromatica della tua foto è scadente.)
  • La base dei tempi è troppo veloce, ma i tuoi commenti dicono che hai controllato questo.

Vorrei andare con la prima e la seconda opzione.


Ho aggiunto una foto con scala temporale ingrandita di 50uSec. Come puoi vedere nessun rimbalzo. Proverò anche a leggere il pulsante con un micro controller per vedere se sta effettivamente rimbalzando o meno.
Deniz,

5
Quindi pensi che il 15pF stia caricando i 220 Ohm con un asintoto RC 3.3ns con conseguente rampa lineare di 150us? Chiedi ai ragazzi forensi di ricontrollare. Il mio ragazzo forense ha detto che puzzava di 220 ohm i.stack.imgur.com/xEwUo.png
Tony Stewart Sunnyskyguy EE75
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.