纯手搭!不用专用芯片,如何用通用运放和三极管DIY一个高精度的1V/Oct指数转换器?
在玩模拟合成器(DIY VCO/VCF)的圈子里,1V/Oct(每八度1伏)指数转换器绝对是绕不过去的一座大山。
很多人一听到“指数转换”,第一反应就是去淘那些昂贵又容易停产的专用芯片(比如SSM2164、AS3340,或者各种古董CA3046)。但实际上,用最普通的通用运放(如TL072)加上几毛钱的三极管,只要电路设计得当,完全可以整出一个精度极高、温漂极低的指数转换器。
今天就来彻底拆解一下,如何用最基础的元件手搭一个低失真(高线性度)的1V/Oct指数转换电路。
为什么指数转换这么难搞?
简单科普一下:人类听觉对音高的感知是对数关系的,频程每翻一倍(一个八度),对应电压线性增加1V。而控制振荡器(VCO)的电容充放电通常需要线性电流。所以,我们需要把线性的控制电压(CV)转换成指数分布的电流(I)。
最简单的物理实现方式,是利用三极管(BJT)的 $I_c$ 与 $V_{be}$ 之间的指数关系:
$$I_c \approx I_s \cdot e^{\frac{V_{be}}{V_T}}$$
但这里有两个致命的物理天坑,也就是大家常说的“跑调”和“高音变平”:
- 温漂(Temperature Drift): 公式里的 $V_T$(热电压)与绝对温度成正比。温度每变化1度,音高就会漂移大约 0.33%。如果不做补偿,琴开机半小时后,音高能飞到姥姥家去。
- 大电流非线性(体电阻效应): 在高频段(电流较大时),三极管内部的体电阻(Bulk Resistance)会出来搅局,导致指数曲线在高端变平(高音偏低)。
经典低失真电路设计方案
为了解决上述问题,我们采用经典的**双三极管+温度补偿电阻(Tempco)+高频补偿(HF Trim)**架构。整个电路只需要一片TL072双运放、一对匹配的三极管和一些无源器件。
1. 核心电路原理图(文字描述版)
我们可以将电路分为三部分:
- 输入求和与温标衰减级(运放A): 负责把多路CV(1V/Oct、Pitch微调、FM输入)加在一起,并精确衰减到三极管所需的温度补偿尺度(约 $-18\text{mV/Oct}$)。
- 指数晶体管对(Q1, Q2): Q1作为参考源,Q2作为实际的指数电流输出管。
- 恒流源与偏置级(运放B): 维持Q1的集电极电流恒定(通常为 $10\mu\text{A}$),从而消除三极管基极-发射极电压 $V_{be}$ 的共模温漂。
2. 关键元件选择与参数设计
- 三极管对(Q1, Q2):
千万不要随便抓两个三极管就焊上。必须使用高度匹配的对管。如果没有专用的SSM2212,可以用最便宜的BC847BS(SOT-363封装的贴片双三极管,两个管子在一块硅片上,天然同温且特性一致)。
如果必须用直插,拿两只BC547B,用导热硅脂抹在一起,外面套上热缩管。 - 温补电阻(Tempco):
这是克服 $V_T$ 温漂的灵魂。我们需要一个 $+3300\text{ ppm}/^\circ\text{C}$(或 $+3500\text{ ppm}$)的金属膜电阻。
位置: 把它放在输入运放的反馈回路中(或者作为衰减器的下分压电阻)。当温度升高、三极管增益下降时,温补电阻阻值上升,正好把输入信号放大一点,完美抵消温漂。 - 高频补偿电阻(HF Trim):
在Q2的发射极与地之间,串联一个几十欧姆的电阻(或者用一个 100 欧姆的精密电位器调整)。这个电阻引入了一点点正反馈,补偿了三极管在高电流下的体电阻损失,确保在高频(高音)段依然维持精准的 1V/Oct 关系。
实用电路参数推荐(供手搭参考)
这里给出一组经过验证的实用参数:
- 输入电阻: $100\text{k}\Omega$(1% 精度金属膜,接收 1V/Oct 输入)
- 反馈温补电阻(Tempco): $2\text{k}\Omega$($+3300\text{ppm}$ 规格,必须与Q1/Q2物理贴紧!)
- 分压电阻(与Tempco配合): 串联一个 $1.8\text{k}\Omega$ 电阻和一个 $500\Omega$ 精密电位器(标为 Width/Scale,用于调节 1V/Oct 的斜率)。
- Q1参考电流: 用一个 $1.5\text{M}\Omega$ 电阻接在 $-15\text{V}$ 负电源与运放B的输入端,为Q1提供约 $10\mu\text{A}$ 的恒定电流。
- 高频补偿(HF Trim): Q2基极(或发射极,视具体拓扑而定)串联一个 $100\Omega$ 预调电位器接至地。
调试与校准指南(拒绝玄学)
焊好电路后,按照以下步骤进行校准:
第一步:准备工作
- 拔掉所有的CV输入,开机通电,静置15分钟,让电路达到热平衡。
- 准备一个高精度的万用表(至少四位半)和一个频率计(或者校音器)。
第二步:校准音准宽度(Scale)
- 输入 $0.000\text{V}$ 的控制电压(可以用精准的电位器或DAC源),记录此时VCO输出的基准频率(比如 $100\text{Hz}$)。
- 输入精准的 $1.000\text{V}$ 电压。如果VCO输出不是 $200\text{Hz}$,调节 Scale电位器,直到刚好为 $200\text{Hz}$。
- 输入 $3.000\text{V}$ 甚至更高。重复测试中低音区的翻倍情况,反复微调 Scale电位器。
第三步:校准高频补偿(HF Trim)
- 将输入电压提高到 $5.000\text{V}$ 以上(进入高音区,比如原本应该输出 $3200\text{Hz}$)。
- 你可能会发现实际频率只有 $3120\text{Hz}$(也就是音高偏低了,说明体电阻开始起作用)。
- 调节 HF Trim电位器,把音高“拉”回到标准的 $3200\text{Hz}$。
- 注意: 调节HF Trim会轻微影响中低音区,所以调完HF后,必须回到第二步重新检查一遍低音区的 1V/Oct 关系。通常来回两三次,就能在 5-6 个八度内达到极其完美的线性度。
避坑指南(血泪经验)
- 热耦合是重中之重: 温补电阻(Tempco)必须和双三极管物理贴死。最好抹点电脑CPU用的导热硅脂,然后用热缩管把它们紧紧包在一起。如果它们之间有温度差,这个电路的温补偿就形同虚设。
- 运放的选择: 虽然TL072性价比无敌,但如果预算充足,推荐使用输入偏置电流更低、温漂更小的运放(如OPA2137或LT1013),这能进一步提升极低电流(低频段)下的稳定性。
- 电源噪音: 指数转换器对电源轨的微小波动非常敏感。请确保 $-15\text{V}$ 和 $+15\text{V}$ 经过了良好的去耦(运放电源脚就近并联 104 独石电容)。
用这个电路搭出来的1V/Oct转换器,只要晶体管匹配得好、温补电阻贴得紧,其实际表现完全不输市面上几十块一片的专用集成芯片。手头有元件的哥们可以开搞了,有什么调试问题可以在楼下贴图交流!