利用放大器调整输出信号的共模电压——放大器电路设计思路(图文)

放大器必须掌握的知识

明确设计要求

设计要求

  • 有两路差分信号,假设为sin+/sin-,信号Vpp=0.5V,共模电压=2.5V,要求把差分信号±sin转成单端信号sin,且波形幅值范围在[0, 3.3V]。

波形示意图

在这里插入图片描述

设计一个符合要求的放大器电路应该怎么思考

心路历程

  • step1:
    明确输入波形的最大频率f,最大峰峰值Vpp,能用表达式表示出来那就更好了。例如本文中提出的差分sin,其实是光栅编码器读数头在供电5V时输出的单路共模电压=2.5V,峰峰值=0.5Vpp的sin波,那就很好用表达式表述:
    sin+ = 0.25sin(θ)+2.5;
    sin- = -0.25sin(θ)+2.5;

  • step2:
    对输出波形的要求,就是说想输出什么样的波形,能用表达式表示出来更好。例如本文中要求的输出波形的共模电压=1.65V,峰峰值=3.3Vpp,那是因为ADC的输入信号满量程范围是[0—3.3V].于是也可以用表达式描述:
    sin = 1.65sin(θ)+1.65;

  • step3:
    放大器选型。(根据项目需求的不同,放大器的选型严格程度也不同,不得不承认那是个技术活,主要是那几个参数压摆率SR,满功率带宽积FPBW,偏置电压Offset voltage等等,不是本文重点,不做展开讲解,以后用实际项目再解释放大器选型)

  • step4:
    那么问题来了,怎么样才能将输入波形从共模电压2.5V给降到1.65V呢?于是就会这么想,放大器可以组成很多功能的电路,比如反相放大器器,正向放大器,加法器,积分器,减法器。。。,好像减法器有戏。那减法器长什么样子呢?从网上找一个标准的减法器,如下图(其实是我画的)。
    在这里插入图片描述

  • step5:
    减法器好像能行,那怎么确定那些阻值呢?其实上面那个图基本上就是差分放大器内部结构。
    (其实像这种差分转单端的应用,有专门的差分放大器可用,基本上就是Vout=A-B,倍数也可以调,但也同样面临电阻值设置的问题)

灵魂解法

  • 已经知道了输入输出的表达式;
  • sin(θ)有最大值1,此时应该对应输出的最大值3.3V,最小值-1应该对应输出最小值0;
  • 那么我们有两个已知条件,可以求出两个未知数,即电路中的两个未知电阻值;
  • 人为设定R1=R2=10kΩ,一方面10这个数字好计算,两一方面阻值太大会引入电阻热噪声甚至大幅削弱信号能量,比如用个1GΩ,那信号就阻断了,太小了可能会让放大器震荡,有时候datasheet会推荐这个阻值,有时候凭着经验觉得这个值就行,那就这个值吧(我在实际中测试过了,可行)。令R3=xkΩ,R4=ykΩ;如下图
    在这里插入图片描述
  • 虚短虚断利用起来,得到Vout的表达式;我已经算好了:
    在这里插入图片描述
    把值带进去就得到:
    在这里插入图片描述
    前面已经提到有两个已知条件:
    当sin(θ)=1时,Vout=3.3,
    当sin(θ)=-1时,Vout=0;
    带入公式中,是不是有初中学的二元一次方程组内味了。
  • 我们用matlab解二元一次方程组:
syms x y;
[x y]=solve((x*(10+y))/(10*(10+x))*(0.25+2.5)-y/10*(-0.25+2.5)==3.3,(x*(10+y))/(10*(10+x))*(-0.25+2.5)-y/10*(+0.25+2.5)==0)

得到:x=106.7647kΩ,y=29.7kΩ;

注意事项

  • 本文用的是rail-to-rail 放大器,ADI公司的AD8544

仿真

方法1

用TI的TINA软件仿真,选用rail-to-rail 放大器进行仿真;

方法2

用matlab仿真,不是用Simulink,而是仿真用虚短虚断求出来的Vout公式,

%共模2.5V
sin_p=0.25.*sin(x)+2.5;	%sin+表达式
sin_n=-0.25.*sin(x)+2.5; %sin-表达式
sin=3.63.*sin_p-2.97.*sin_n; %Vout表达式,3.63/2.97是把已知值带进去直接算出来的
plot(sin_p)
hold on
plot(sin_n)
hold on
plot(sin)
max(sin)
min(sin)

在这里插入图片描述
由上图可以看出,求出的R3,R4的值可以满足我们需要的范围[0, 3.3V]。

方法3

实际搭电路测试。我是直接用光栅读数头输出的差分sin进行电路测试,实际结果跟matlab仿真结果基本一致。

总结与展望

  • 本文中设计要求输出范围在[0, 3.3V],在设计时不会把输出值卡的正好,都会留出一定的裕量,例如这次我只把输出范围调在了[0.1, 3.2V],这样可以增加系统的鲁棒性;
  • 一切的仿真都是理论,一定要搭电路测试电路模块的正确性,然后再集成到系统中;
  • 放大器电路的设计思路一般都是从后往前推;
### 以太网接口共模电压输出过大的解决方案 #### 设计原则与方法 为了有效降低以太网口的共模电压输出,可以从多个方面入手优化设计。具体措施如下: 1. **采用合适的网络变压器** 使用高质量的网络变压器能够显著改善共模噪声抑制效果。网络变压器不仅用于信号耦合,还起到隔离作用,防止不同平之间的相互干扰[^2]。 2. **增加滤波元件** 在输入端加入π型低通滤波器或共模扼流圈,可以有效地减少高频共模流进入系统内部。这些器件的选择应基于工作频率范围以及预期衰减水平。 3. **改进PCB布局布线** 合理规划印制板上的走线路径对于控制共模辐射至关重要。保持差分对紧密耦合并远离敏感线路;确保接地层连续无间断;缩短高速信号回路面积有助于提高抗扰度并降低发射强度。 4. **选用具备良好EMI特性的元器件** 对于连接器、磁珠等关键部件,在选型阶段就需考虑其磁兼容特性指标,优先选取经过认证的产品型号。 5. **实施屏蔽防护** 如果条件允许的话,还可以对外部RJ45插座采取金属外壳包裹的方式实现物理屏障保护,进一步削弱外界环境带来的不利影响。 通过上述综合手段的应用,通常可以使以太网接口处产生的共模电压得到有效遏制,从而保障通信链路的质量和稳定性。 ```python # Python代码仅作为示意,并非实际解决问题的方法 def reduce_common_mode_voltage(): """ 函数描述:模拟如何编程调整硬件参数来尝试减轻共模电压问题, 实际操作中需要依赖具体的子工程实践而非软件算法。 返回值:提示信息字符串 """ adjustments = [ "Selecting appropriate network transformer", "Adding filtering components like pi-type low-pass filters or common mode chokes", "Improving PCB layout and routing strategies" ] for adjustment in adjustments: print(f"Applying {adjustment}...") return "Adjustments completed." print(reduce_common_mode_voltage()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值