Perché questo comparatore non emette un'onda quadra?


21

Ho un'uscita sinusoidale da 4,43 MHz da un circuito integrato che voglio convertire in un'onda quadra TTL da utilizzare come orologio. Il segnale ha un offset CC di circa 2,5 V e un'ampiezza di circa 0,5 V picco-picco.

Ho provato a convertirlo in un'onda quadra 0-5 V usando un comparatore ad alta velocità TLV3501 con questo circuito.

tlv3501 schematico aggiornato

Il comparatore sembra funzionare come previsto: con RV1 ad un estremo l'uscita a SQ_OUT è 0 V, all'altra è 5 V, in un punto all'incirca nel mezzo vedo una forma d'onda. Tuttavia ha un offset DC e non assomiglia molto a un'onda quadra.

non quadrato

(Sopra è 0,5 V / div e ha un offset CC di quasi 2 V).

Il foglio dati mostra un'onda quadra generata da un segnale a 50 MHz, quindi ovviamente sto facendo qualcosa di sbagliato. Sto usando una breadboard ma l'IC è su un adattatore con C1 e C2 saldati ai pin. Ho anche provato a disconnettere SQ_OUT dalla breadboard e misurare l'output sul pin, ma ho visto lo stesso risultato. Come posso ottenere un'onda quadra 0-5 V?

modificare

Seguendo i suggerimenti qui ho alimentato il comparatore con segnali che vanno da 500Hz a 20000Hz e offset di 2,5VDC. Per lo più ho osservato lo stesso risultato: con RV1 ad un estremo, una linea piatta da 5 V, all'altra, 0 V, e tra una forma d'onda di circa 0,5 Vp / p e offset a circa 2,5 V (l'offset variava a seconda di RV1).

500Hz

Il risultato più vicino che abbia mai raggiunto all'uscita prevedeva picchi piatti a 5 V ma ancora non oscillanti tra 0 e 5 V.

100hz

Ciò sembrerebbe escludere i problemi relativi all'ambito, quindi deve essere l'ambiente elettrico (sto usando una breadboard) oppure ho sbagliato a collegarlo (cosa che dubito, ma sarò sicuramente un controllo triplo e quadruplo). O forse un chip dud, che sembra anche improbabile.

Mi chiedo se questi problemi potrebbero essere un fattore:

  • Sto usando una breadboard (SQ_OUT non è però connessa alla breadboard).
  • Non è collegato alcun carico, ad eccezione della sonda dell'oscilloscopio. In precedenza, quando stavo alimentando 4.43MHz, c'era un carico collegato (input di clock su un AD724).
  • RV1 che è un partitore di tensione da 20K potrebbe essere troppa resistenza?

Modifica 2

Credo che i miei problemi siano stati causati da un alimentatore rumoroso (USB non filtrato a 5 V) e esacerbato dalla capacità parassita della breadboard. Con l'alimentazione USB, il comparatore sembrava avere 3 stati: flatline a 0 V, flatline a 5 V o tensione in ingresso. Questo è stato il caso anche senza alcun segnale, solo 2,5 V CC. Immagino che lo "stato medio" fosse un'oscillazione ad alta frequenza. Sono riuscito a ottenere il risultato atteso alimentando il circuito da una batteria e ho ottenuto i migliori risultati quando l'ho rimosso completamente dalla breadboard. Solo allora ho ricevuto solo linee piatte 0V o 5V senza "stato intermedio". Sulla breadboard e fornendo un segnale da 1000Hz, vedo un'onda quadrata di 0-5 V con alcuni zig e zag intorno a 2,5 V, a dimostrazione del fatto che l'uscita non è pulita. Suppongo che se voglio continuare con questo dispositivo, Dovrò metterlo sulla propria scheda e filtrare l'alimentatore. Grazie a tutti quelli che hanno contribuito.

Quadrato grezzo


La forma d'onda sembra che il comparatore non sia abbastanza veloce per il tuo carico. C'è qualche capacità di carico sull'uscita? perché non utilizzare un condensatore (0,1uF o giù di lì) sull'ingresso e bloccare la corrente continua di ingresso sinusoidale? Ciò dovrebbe rendere l'ingresso variabile con O DC e quindi avere una tensione di riferimento appropriata?
rsg1710,

SQ_OUT sta fluttuando o c'è un carico alla fine durante la misurazione?
Albero

Nessun carico, SQ_OUT è collegato solo al probe dell'oscilloscopio. @ rsg1710, il comparatore ha una valutazione di 4.5ns, dovrebbe essere abbastanza veloce.
Batperson,

1
Il tuo oscilloscopio è di tipo analogico o digitale (campionamento)? Se è analogico, la classificazione a 10 MHz è in genere alla larghezza di banda di -3dB dello strumento. Per un segnale di ingresso da 4,43 MHz, un oscilloscopio analogico da 10 MHz probabilmente comprimerà l'ampiezza del segnale e causerà un arrotondamento ai bordi ascendente e discendente del segnale. Si noti che se il segnale di ingresso dell'onda quadra ha un tempo di salita di, diciamo, 10 ns, quel tempo di salita corrisponde a una frequenza (larghezza di banda) di circa 35 MHz, che è ben al di là della risposta in frequenza di 10 MHz dell'oscilloscopio, e quindi l'oscilloscopio distorcere i bordi ascendente e discendente del segnale.
Jim Fischer,

3
Le breadboard sono famose per la capacità parassita. I comparatori ad alta velocità sono molto sensibili alla capacità parassita. Prova a creare il prototipo di stile dead bug. Componenti e fili di saldatura direttamente ai pin. Tenere l'output lontano dall'input. Controlla anche l'onda sinusoidale in uscita rispetto all'onda sinusoidale in ingresso. Verifica che l'output non sia solo oscillante.
user125718

Risposte:


3

Un tempo di salita dell'oscilloscopio a 10 MHz dovrebbe essere 0,35 * 1000/10 = 35 nS.

Il tempo di semiciclo a 4,43 MHz è 500 / 4,43 = 113 nS che è oltre 3 volte il tempo di salita dell'oscilloscopio che mostra l'oscilloscopio dovrebbe essere adeguato per visualizzare l'escursione completa del segnale di uscita. Tuttavia, la traccia dell'ambito fornita sembra CR / tempo di salita limitato in eccesso. Pertanto la prima cosa da guardare è il caricamento dell'uscita e poiché la scheda tecnica LM393 mostra un parametro per la corrente di dissipazione dell'uscita, suggerirei in primo luogo di provare una resistenza di pull up da 4,7k tra +5 volt e SQ_OUT. Quando si lavora correttamente emettendo un'onda quadra pulita, mi aspetto che la forma d'onda di uscita dell'oscilloscopio sia simile a quella inferiore simulata da JonRB - a causa del limite di larghezza di banda dell'oscilloscopio - sebbene le scale di tensione differiscano. Sebbene l'ottimizzazione della sonda dell'ambito sia importante per il lavoro digitale, credo che in questo caso sia un'aringa rossa.

AGGIORNARE

@Batperson nel tuo commento a seguito della risposta di ovirt hai dichiarato di aver sostituito un LM393 che ha un output open collector, da cui il suggerimento pullup. Tuttavia, questo è un circuito banale e non dovrebbe essere difficile da inchiodare. Innanzitutto un consiglio. Quando ci sono problemi e ti ritrovi a rispondere "dovrebbe" piuttosto che "fa", devi controllare in quanto vi è un elemento di dubbio. C'è spesso una grande differenza tra cosa dovrebbe e cosa sta realmente accadendo. ad es. questo circuito DOVREBBE produrre un'uscita ad onda quadra.

Quello che descrivi non ha senso. Si dispone di un segnale di ingresso 0,5 Vp-p distorto a + 2,5 V a terra collegato all'ingresso del comparatore e si sta spostando il riferimento del comparatore tra gnd e + 5 V. Una volta che la tensione di riferimento supera la polarizzazione dell'oscillatore più circa 0,25 V, l'uscita dovrebbe essere piatta vicino a gnd. Al contrario, una volta che il riferimento scende al di sotto del bias meno di circa 0,25 V, dovrebbe essere piatto vicino a + 5 V. ad es. l'uscita dovrebbe essere piatta quando il riferimento è al di fuori dell'intervallo del segnale di ingresso. Dopo aver esaminato questo, appendere una ceramica C da 0,1 uF tra ref e terra vicino ai pin IC e riprovare. Quindi sostituire l'ingresso dell'oscillatore con due 10k R in serie e collegare tra gnd e + 5V l'ingresso del comparatore collegato al punto centrale. Cerca l'uscita che cambia tra flatline + 5V e gnd mentre l'arbitro passa attraverso il punto medio.

PENSIERI PIÙ

@Batperson dopo aver pensato a qualcosa in più, mi rendo conto che le tue tracce dell'ambito non hanno senso. L'unico modo (diverso dal feedback di -ve) che il circuito mostrato può avere una polarizzazione dell'uscita vicino al punto medio è che l'uscita passi lo stesso tempo a + 5 V e gnd (il livello risultante è la media). Ciò non è evidente nelle immagini dell'oscilloscopio 1 e 2 - sembra più come dovrebbe essere l'input - quasi come se l'IC di terra non fosse collegato. I test che ho suggerito ieri dovrebbero aiutare a risolvere questo problema. Sarebbe utile se hai intitolato le immagini 2 e 3 con punti di riferimento di tensione e scala o frequenza poiché non è chiaro dal tuo testo. Forse anche una foto della tua breadboard.


se noti la mia risposta, l'ambito conduce (frequenza o compensazione). i cavi forniti con un ambito da 10 MHz saranno adatti fino a 10 MHz. Ciò che avrai quindi sono due filtri a 10 MHz del 1 ° ordine in cascata. Consentitemi di aggiornare la mia risposta per sovrapporre l'impatto dei due filtri
JonRB il

Grazie @JonRB e Venustas. Sono abbastanza sicuro ora dopo aver testato con segnali da .5-20 kHz che non è l'ambito (anche la sonda è sintonizzata e visualizza un'onda quadra perfetta usando il segnale di test dell'oscilloscopio che IIRC è 10kHz). La parte è un TLV3501 con un'uscita push-pull quindi non dovrebbe essere necessario un pullup? Ho confuso tutti facendo uno schema rapido con una lib Eagle LM393 ma ora è corretta.
Batperson,

42

Sarà una delle due cose e molto probabilmente entrambe:

  1. La sonda che stai usando non è adatta, sia in frequenza che nella sua compensazione (la piccola vite sul lato della sonda).

    Inserisci qui la descrizione del link

  2. Un ambito da 10 MHz è troppo lento per un segnale da 4,5 MHz

Ecco l'accumulo di un'onda quadra fino alla 100a armonica (fondo a 4,43 MHz):

inserisci qui la descrizione dell'immagine

import numpy as np
from matplotlib import pylab
F= 4.43e6
t = np.arange(0, 2/F, 1e-12)
x = np.sin(2*np.pi*F*t) 
pylab.subplot(3,1,1)
pylab.title('Sinewave of increasing frequency: Fourier content of a squarewave')
pylab.plot(t,x)
pylab.grid(True)

for i in range(3,100,2):
    a = (1/i)*np.sin(2*np.pi*F*i*t)
    pylab.plot(t,a)
    x +=a

pylab.subplot(3,1,2)
pylab.title('Equivelent squarewave for summation of its harmonics')
pylab.plot(t,x)
pylab.grid(True)

y= np.zeros(len(t))

A= 10e6*2*np.pi*t[1]/(10e6*2*np.pi*t[1]+1)
for i in range(1,len(t)):
    y[i] = y[i-1] + A*(x[i] - y[i-1])
pylab.subplot(3,1,3)
pylab.plot(t,y,label='4.43MHz through 1 filter')
x = y
y= np.zeros(len(t))
A= 10e6*2*np.pi*t[1]/(10e6*2*np.pi*t[1]+1)
for i in range(1,len(t)):
    y[i] = y[i-1] + A*(x[i] - y[i-1])
pylab.plot(t,y)
pylab.plot(t,y,label='4.43MHz through 2 cascaded filters')

pylab.title('Result of passing a 4.43MHz squarewave through 1 & two 10MHz 1st order filters')
pylab.legend()

pylab.grid(True)
pylab.show()

Se l'acquisizione è in grado solo di 10 MHz, i contributori saranno attenuati e sfasati producendo una forma d'onda distorta simile a quella che stai vedendo.

La cascata di due "filtri" da 10 MHz (uno nella sonda, uno sull'ingresso dell'oscilloscopio) distorcerà ulteriormente la forma d'onda risultando in un segnale più vicino a quello visto sull'oscilloscopio.

La media di un'onda quadra 0-5 V è di 2,5 V. se l'oscilloscopio come "input medio" produrrà anche una forma d'onda simile e tenderà a 2,5 V. Sono stato sorpreso diverse volte guardando PWM solo per vedere una forma d'onda ambulante molto strana SOLO per trovare qualcuno incasinato con il mio campo di applicazione e aver abilitato la "media 16sample"

inserisci qui la descrizione dell'immagine


Grazie, il risarcimento dovrebbe essere corretto, ma controllerò di nuovo. Mi chiedevo se potessero essere coinvolti artefatti dell'oscilloscopio, quindi mi sono assicurato di includere "Oscilloscopio a portata di mano 10MHz" nella foto :-) Tuttavia, è principalmente l'offset apparente a 2 V CC che mi preoccupa. Potrebbe essere anche questo un artefatto?
Batperson,

L'offset DC è un po 'dubbio. I test a una frequenza molto più bassa in cui l'oscilloscopio funziona bene dovrebbero chiarire i dubbi ...
peufeu,

3
@Batperson un'onda quadrata 0-5 V ha un componente DC medio di 2,5 V, quindi non c'è assolutamente nulla di sbagliato lì. Una risposta in frequenza insufficiente aumenterà i trogoli (apparenti) tanto quanto abbassa i picchi (apparenti).
Hobbs,

esattamente, il segnale di esempio che ho è un segnale + -1V, il comparatore con un segnale 0-5V.
JonRB,

Il manuale per il mio ambito non dice nulla sulla media, certamente non lo ha come funzionalità che può essere abilitata. Queste sono tutte informazioni utili per me sapere però.
Batperson,

32

Dovresti capire che un'onda quadrata da 4,43 MHz ha una larghezza di banda molto più grande di 10 MHz.

Un'onda quadra "corretta" da 4,43 MHz conterrà frequenze fino a 50 MHz e oltre. Questo perché un'onda quadra è formata da un'intera somma di frequenze (al contrario di un'onda sinusoidale che è solo una frequenza, ecco perché gli EE la usano molto).

Se avessi un'onda quadrata ideale di 4,43 MHz ma la guardassi attraverso un sistema a larghezza di banda di 10 MHz (come il tuo ambito), vedresti un'onda triangolare distorta. Questo è quello che vedi qui.

Riprova, ma con una frequenza 10 volte inferiore (o addirittura 100 volte inferiore) e vedi cosa ottieni.


Proverò a provarlo usando un segnale a frequenza più bassa. Principalmente voglio confermare che l'uscita oscilla effettivamente tra 0 e 5 V a 4,43 MHz (e non 2 e 2,5 V). C'è un modo per confermare che usando la mia attrezzatura limitata?
Batperson,

A una frequenza più bassa puoi verificarlo facilmente, quindi se il carico all'uscita dell'opamp è abbastanza basso (piccola capacità) puoi supporre che sia anche OK a 4,33 MHz. Per verificare che davvero non solo avresti bisogno di un oscilloscopio con una larghezza di banda di circa 200 MHz, ma anche di una sonda 10: 1 adatta a causa della bassa capacità di ingresso.
Bimpelrekkie,

1
@batperson, forse nella tua caverna di pipistrelli hai alcuni diodi 1n4148 e condensatori ceramici, potresti costruire un rilevatore di picco.
Jasen,

1

Altre risposte hanno coperto le considerazioni sulla larghezza di banda del proprio ambito, ecc.

Dici che stai usando il dispositivo TLV3501 ma il tuo circuito schematico non corrisponde alle configurazioni dei pin mostrate nella scheda tecnica TI TLV3501, TLV3502 - ad es. L'uscita dovrebbe essere sul pin 6 o sul pin 5 a seconda del pacchetto (SOIC o SOT-23 ).

Né il tuo schema mostra una connessione al pin di "arresto" che dovrebbe essere collegato all'alimentazione negativa - "GND" in questo caso.

Se le informazioni fornite nella tua domanda sono accurate, sembrerebbe che il dispositivo non sia collegato correttamente (a meno che tu non sia riuscito a trovare il dispositivo in un pacchetto non elencato nel foglio dati collegato).


1
Avrei dovuto oscurare i numeri dei pin sullo schema, non sono accurati. Ho sostituito una parte LM393 nello schema poiché non ne avevo una per TLV3501. Il dispositivo è collegato correttamente, incluso il pin di spegnimento, e il circuito si comporta come previsto, ma non a 4,43 MHz.
Batperson,

@Batperson - Sospiro. Quindi hai usato una parte diversa e non funziona come previsto. Si prega di leggere la risposta del transistor.
WhatRoughBeast

1
@WhatRoughBeast Ha sostituito una parte diversa quando ha disegnato lo schema , perché il costruttore dello schema non aveva la parte che stava effettivamente utilizzando e non aveva una parte generica.
user253751

Sembra che abbia creato confusione nel farlo, mia cattiva. Lo schema è stato corretto.
Batperson,

@Batperson Ok, grazie per averlo fatto. Commenterò qui poiché non ho ancora un rappresentante sufficiente per farlo su altre risposte. Se l'oscilloscopio (e la sonda) ha davvero una larghezza di banda di 10 MHz, i 4.43 MHz fondamentali dovrebbero essere minimamente attenuati. Quale display fornisce l'oscilloscopio se si osserva il segnale sorgente? In ogni caso il display che hai mostrato per l'uscita (supponendo che il circuito funzioni) suggerisce che il tuo treno di misura è in BW limitato a molto meno di 10 MHz. L'offset è coerente con quello scenario, ovvero offset a metà dell'oscillazione dell'uscita.
Ovirt

1

Come altri hanno sottolineato, è probabile che l'oscilloscopio abbia una classificazione di soli 10 MHz. Volevo spiegare perché questo è un problema in termini più semplici e meno teorici.

La classificazione a 10 MHz significa che può visualizzare un'onda sinusoidale a 10 MHz con attenuazione e distorsione minime. I valori di frequenza sono sempre indicati per le onde sinusoidali, non per le onde quadrate.

Per capire perché un'onda quadrata richiede molta più larghezza di banda per essere visualizzata, devi capire che la frequenza è determinata dalla velocità di variazione nel tempo. Quindi in realtà un'onda quadra è una frequenza molto bassa (vicino a CC o zero) sulle parti piatte, e quindi improvvisamente una frequenza molto alta quando passa da alta a bassa o da bassa ad alta.

Se si guarda il foglio dati per il comparatore, si otterrà la velocità di risposta. Questa è la massima velocità di variazione del suo output. Dipenderà anche dal tuo circuito, ma per il bene di questo esempio diciamo che è 1ns / V. L'uscita oscilla su 5 V, impiegando 5 ns. Quindi la frequenza della parte di transizione dell'onda quadra sarà 1 / 5ns o 200MHz. Poiché l'oscilloscopio ha solo 10 MHz, mostrerà qualcosa come la forma d'onda che stai vedendo, incapace di oscillare su e giù velocemente come l'onda quadra.


0

Una larghezza di banda di 10 MHz completerebbe il segnale in modo che assomigli più a un'onda sinusoidale che a un'onda quadra e probabilmente causerebbe anche una certa attenuazione, ma non spiega perché il segnale sia 10 volte più piccolo di quanto dovrebbe essere.

Una possibile causa di tale comportamento sarebbe avere un ambito configurato per una sonda X1 ma in realtà utilizzando una sonda X10 ma ciò influirebbe anche sul livello di offset CC che sembra stia dicendo che è approssimativamente corretto.

Quindi concludo che il tuo sistema deve avere una larghezza di banda notevolmente inferiore ai 10 MHz stampati sul tuo ambito. Quindi, o il tuo campo di applicazione è realizzato da un produttore che giace (non riconosco il marchio), la configurazione della tua sonda non è adatta per le alte frequenze o c'è qualcosa di sbagliato nel circuito in prova.


Non è 10 volte più piccolo di quanto dovrebbe essere, mi aspetto picchi di 5 V e vedo circa 2,5 V. Non penso che il mio ambito sia configurabile per il probe (è budget come ho detto) e il probe è impostato per X1. Ma il consenso sembra essere che il circuito stia effettivamente funzionando e ciò che vedo è dovuto alle limitazioni del mio ambito (o della sua configurazione). Quando avrò l'opportunità, proverò a confermarlo utilizzando i suggerimenti che le persone hanno avanzato qui.
Batperson,
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.