为什么这个比较器不输出方波?

电器工程 比较器 面包板
2022-01-02 06:39:23

我有一个来自 IC 的 4.43MHz 正弦输出,我想将其转换为 TTL 方波以用作时钟。该信号具有大约 2.5V 的 DC 偏移,并且具有大约 0.5V 峰峰值的幅度。

我尝试使用带有该电路的 TLV3501 高速比较器将其转换为 0-5V 方波。

tlv3501 更新原理图

比较器似乎按预期工作:RV1 在一个极端,SQ_OUT 的输出为 0V,在另一个极端为 5V,在大致中间的一点我看到一个波形。然而,它有一个直流偏移,看起来不像方波。

不是方形的

(以上为 0.5V/div,DC 偏移接近 2V)。

数据表显示了从 50MHz 信号产生的方波,所以很明显我做错了什么。我使用的是面包板,但 IC 位于适配器上,C1 和 C2 焊接到引脚上。我还尝试从面包板上断开 SQ_OUT 并测量引脚上的输出,但看到了相同的结果。我怎样才能得到一个0-5V的方波?

编辑

按照此处的建议,我为比较器提供了 500hz 到 20000hz 范围内的信号并偏移 2.5VDC。我主要观察到相同的结果:RV1 在一个极端,5V 平坦线,在另一个,0V,以及大约 0.5Vp/p 的波形和大约 2.5V 的偏移之间(偏移取决于 RV1)。

500赫兹

我最接近预期的输出在 5V 处有平坦的峰值,但仍然没有在 0 和 5V 之间摆动。

100赫兹

这似乎排除了范围问题,因此它必须是电气环境(我使用的是面包板)或者我接线错误(我对此表示怀疑,但我肯定会进行三重和四重检查)。或者可能是一个无用的芯片,这似乎也不太可能。

我想知道这些问题是否可能是一个因素:

  • 我正在使用面包板(虽然 SQ_OUT 没有连接到面包板)。
  • 除了示波器探头外,没有连接负载。以前当我馈送 4.43MHz 时,连接了一个负载(AD724 上的时钟输入)。
  • 20K分压器的RV1会不会电阻太大?

编辑 2

我相信我的问题是由嘈杂的电源(5V 未经过滤的 USB)引起的,并且由于面包板的杂散电容而加剧。使用 USB 电源时,比较器似乎有 3 种状态:0V 平坦化、5V 平坦化或输入电压。即使没有任何信号也是如此,只有 2.5VDC。我猜“中间状态”是高频振荡。我设法通过用电池为电路供电来获得预期的输出,当我将它完全从面包板上取下时,我得到了最好的结果。直到那时我才得到没有“中间状态”的 0V 或 5V 扁平线。在面包板上并提供 1000hz 信号,我看到一个 0-5V 方波,在 2.5V 附近有一些曲折和曲折,表明输出不是干净的。我想如果我想继续使用这个设备,我 必须把它放在自己的板上并过滤电源。感谢所有做出贡献的人。

粗糙的正方形

4个回答

这将是两件事之一,而且很可能两者兼而有之:

  1. 您使用的探头不适合,无论是频率还是补偿(探头侧面的小螺丝)。

    在此处输入链接描述

  2. 10 MHz 示波器对于 4.5 MHz 信号来说太慢了

以下是高达 100 次谐波(4.43 MHz 基金)的方波的累积:

在此处输入图像描述

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()

如果采集只能达到 10 MHz,则贡献者将被衰减和相移,从而产生与您所看到的波形相似的失真波形。

级联两个 10MHz“滤波器”(一个在探头中,一个在示波器输入端)将进一步扭曲波形,导致信号更接近示波器上看到的信号。

0-5V 方波的平均值为 2.5V。如果您的示波器作为“平均输入”,它也会产生类似的波形并趋向于 2.5V。我已经被抓住了很多次看 PWM 只是看到一个非常奇怪的行走波形只是发现有人弄乱了我的示波器并启用了“16sample averaging”

在此处输入图像描述

您应该意识到 4.43 MHz 方波的带宽比 10 MHz 大得多。

“适当的” 4.43 MHz 方波将包含高达和超过 50 MHz 的频率。那是因为方波由频率的总和组成(与只有一个频率的正弦波相反,这就是 EE 经常使用它的原因)。

如果您有一个理想的 4.43 MHz 方波,但通过 10 MHz 带宽系统(如您的示波器)观察它,那么您会看到一个失真的三角波。这就是你在这里看到的。

再试一次,但频率要低 10 倍(甚至低 100 倍),看看你会得到什么。

10 MHz 示波器上升时间应为 0.35 * 1000 / 10 = 35 nS。

4.43 MHz 的半周期时间为 500 / 4.43 = 113 nS,超过示波器上升时间的 3 倍,表明示波器应该足以显示输出信号的完整偏移。然而,所提供的示波器轨迹看起来 CR / 上升时间受限于超出此范围。因此,首先要看的是输出负载,因为 LM393 数据表显示了输出灌电流的参数,我建议您首先尝试在 +5 伏和 SQ_OUT 之间使用 4.7k 上拉电阻。当正常工作输出干净的方波时,我希望示波器输出波形类似于 JonRB 模拟的底部波形 - 由于示波器带宽限制 - 尽管电压等级会有所不同。虽然示波器探头调整对于数字工作很重要 - 我相信在这种情况下它是一个红鲱鱼。

更新

@Batperson 在 ovirt 的回答之后的评论中,您说您已经替换了具有开路集电极输出的 LM393,因此提出了上拉建议。然而,这是一个微不足道的电路,应该不难确定。先说一句忠告。当出现问题并且您发现自己回答“应该”而不是“做”时 - 您需要检查,因为存在疑问。应该和实际发生的事情之间通常存在很大差异。例如,该电路应该产生方波输出。

你描述的没有意义。您有一个 0.5 Vp-p 输入信号,该信号以 +2.5V 偏置到接地,连接到比较器输入,您正在将比较器 ref 在 gnd 和 +5V 之间移动。一旦参考电压超过振荡器偏置加上大约 0.25V,输出应该在 gnd 附近保持平坦。相反,一旦 ref 低于偏置负约 0.25V,它应该在 +5V 附近保持平坦。例如,只要 ref 超出输入信号范围,输出就会变平。在你调查这个之后,在靠近 IC 引脚的 ref 和接地之间挂一个 0.1uF 陶瓷 C,然后再试一次。接下来用两个串联的 10k R 替换振荡器输入,并将连接到中点的比较器输入连接在 gnd 和 +5V 之间。当参考通过中点时,寻找扁平线 +5V 和 gnd 之间的输出变化。

进一步的想法

@Batperson 虽然还有更多,但我意识到您的范围跟踪没有意义。所示电路可以在中点附近产生输出偏置的唯一方法(除了 -ve 反馈)是输出在 +5V 和 gnd 上花费相同的时间(所得电平为平均值)。这在您的示波器图片 1 和 2 中并不明显 - 它看起来更像输入应该是什么 - 几乎就像没有连接接地 IC gnd。我昨天建议的测试应该有助于解决这个问题。如果您用电压参考点和比例或频率为图片 2 和 3 命名会很有帮助,因为从您的文字中不清楚。也可能是你的面包板的照片。

其他答案涵盖了您的示波器的带宽考虑等。

您说您使用的是 TLV3501 器件,但您的原理图与 TI 数据表TLV3501、TLV3502中显示的引脚配置不匹配- 例如,输出应在引脚 6 或引脚 5 上,具体取决于封装(SOIC 或 SOT-23 )。

您的原理图也没有显示与“关闭”引脚的连接,该引脚应连接到负电源 - 在这种情况下为“GND”。

如果您的问题中提供的信息准确无误,则该设备似乎连接不正确(除非您设法在链接数据表中未列出的封装中找到该设备)。