关于运放失调电压调试及其反思

2024-04-08 09:08

本文主要是介绍关于运放失调电压调试及其反思,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上周关于项目中一个运放输出,存在+-20mV左右的失调电压——即输出电压与输入电压可能有20mV左右的偏差,
而且不同板子还不一样。有些是在+20mV,有些是-20mV,有些就没有偏差。由于系统要求较高,对于这个偏差,从芯片本身理论上是在2mV以内。

为了找到引起这个输入失调的原因,上个周花了将近半周的时间,来测试电路。确定问题本质所在。
首先运用基本的计算运放的知识,经过KCL以及运放的虚短虚断,首先做理论上的分析。发现理论上的计算,输入与输出是一致的,没有误差的引入。当然,这时在计算过程中,很多都是理想化的。电阻没有考虑误差,没有考虑芯片本身的输入失调电压,只是理论上的计算,得除了Vo = Vda。在这个计算上,在理论上验证了电路的成立。

一开始,根据理论化的计算,测试电路时,无处下手。因为不知道,哪里会是问题的所在。不知道哪里最有可能引起误差。
在没有思路的时候,就先修改电路测试看看。
首先,将后级电路断开,以去除后级电路对于电路的影响,之后测量两个板子的输入与输出。发现和后级电路没有断开的时候一致。这样说明,问题就出在运放这一块。

然后,断开输入级电路,并将运放的输入直接接地,观察运放的输出情况。这个时候发现运放的输出不是零,而是28mV,这样可以确定问题跟运放的前级电路DA输出也没有关系,那么就将问题锁定到运放电路这一块。

之后,试着将运放本身的误差参数带入计算过程,得出了Vo= Vda+E;E是因为运放原因可能带入的误差。计算发现,根据运放的Datasheet,E是其运放本身的失调电压和虚短时的V+和V-压差的差值,这个差值最大可能是在6mV。但是,实际测试发现,这里的实际值E只有不到5mV。

那么问题的原因还是没有找到。

最后考虑到电阻的原因,将所有电阻都没有理想化直接带入计算。最终得到了一个结果
Vo = (R3/R2)*Vda + (1+R3/R2+R3/R2)*E1 - E2 + R3(R4*R2-R5*R1)*Vc/(R1*R2(R4+R5))
E1 = V+ - V-;(V+正向输入,V-反向输入)
E2 = 1mV(Typevalue);
Vc电源电压5V
根据这个结果,发现输入电阻上如果R4*R2-R1*R5的值如果不为零,可能带入一个较为糟糕的误差。
于是对调了板子上的R1和R2发现运放的输出确实和不一样了。失调变小了。
又试了几块板子,发现有些调整后失调值不到1.5mV,但是有些反而由原来的正向失调,变为了负向失调。

由于这里的修改修正了一些问题,暂时,将问题锁定到这里。

这周,再次将整个系统上的参数整体计算了一遍,发现由于在使用时会对运放的输出进行一个校准,之后会减去这个校准值,这样的话,使用时中断显示处对于运放输出的处理就变为了V =(R3/R2)*(V1 - Vo)
V1 本次运放输出;
Vo校准时运放输出;
由于后边的误差值是固定的所以就消掉了。这样,即使有失调电压,影响也不是很大。只要运放负向失调电压不为负就可以。

通过对于这次失调电压的整个测试过程有几点感想如下:
  1. 分析问题时,理论的计算可以再理论上验证是否可行。对于实际电路问题的分析,可以先理想化,首先在理论上验证,一般而言理论上不通过的,实际上很有可能出问题。如果没有问题,再将去理想化,进行实际分析,将所有因素(或者部分因素)考虑在内,得出结果,找到影响因素最大的一个。
  2. 在验证计算的分析时,要先验证前后级的影响,排除外围造成的影响。
  3. 分析问题时,需要从整体系统上来考虑。如果单单看运放输出这一部分,确实很糟糕。但是,由于终端的标定操作,将失调电压这一部分消掉了。反而,失调电压对于结果的影响却很小。如果一开始从整个系统的角度分析,找到对于结果影响最大的量,那么就不会在发现失调电压的时候,那么紧张。因为它对于结果的影响很小。
写在最后:
当我们解决问题时,要找到影响我们问题的关键部分,本质部分。如果找到这些,可能就不必纠结于某些细节。如果没有找到,即使做了很多努力,可能对于问题结果并没有太大帮助。

但是,对于没有看到问题本质的努力与付出,对于学习本身而言很有价值,它促进我们去思考,去反思。会促进我们本身能力的提升。很多划时代的理论与发明,是在错误中产生的。

如果只从解决问题而言,没有找到问题本质的努力或许是白费的;但是对于一个提升个人思考来说,没有发现问题本质,可能会更激发思考,创造更多。

结果重要,过程一样重要。短期看,结果更重要;长远看,过程更重要。结果决定了当前,过程决定了下一个结果。

现在没有看到本质的思考,是为了以后看到本质的锻炼。现在直接看到问题本质的思考,是以前思考的结果(但是少了创新的可能,就会出现知识越多,创新越少)。

这是一个矛盾。如何平衡?

直接解决问题,带来的是效率。
间接解决问题,带来的是思维。

犯错,给了我们学习的机会。我们学的越多,我们犯错越少。犯错越少,我们学习的机会就越少。我们学的少了,我们就会再次犯错。再次犯错,给了我们再次学习的机会……
这是一个平衡。

这篇关于关于运放失调电压调试及其反思的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885158

相关文章

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

起点中文网防止网页调试的代码展示

起点中文网对爬虫非常敏感。如图,想在页面启用调试后会显示“已在调试程序中暂停”。 选择停用断点并继续运行后会造成cpu占用率升高电脑卡顿。 经简单分析网站使用了js代码用于防止调试并在强制继续运行后造成电脑卡顿,代码如下: function A(A, B) {if (null != B && "undefined" != typeof Symbol && B[Symbol.hasInstan

php 7之PhpStorm + Nginx + Xdebug运行调试

操作环境: windows PHP 7.1.10 PhpStorm-2017.2.4 Xdebug 2.5.4 Xdebug helper 1.6.1 nginx-1.12.2 注意查看端口占用情况 netstat -ano //查看所以端口netstat -aon|findstr "80" //查看指定端口占用情况 比如80端口查询情况 TCP 0.0.0.0:8

可选择的反思指令微调

论文:https://arxiv.org/pdf/2402.10110代码:GitHub - tianyi-lab/Reflection_Tuning: [ACL'24] Selective Reflection-Tuning: Student-Selected Data Recycling for LLM Instruction-Tuning机构:马里兰大学, Adobe Research领

【2025】基于Python的空气质量综合分析系统的设计与实现(源码+文档+调试+答疑)

博主介绍:     ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。 技术范围:     我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT

VS Code 调试go程序的相关配置说明

用 VS code 调试Go程序需要在.vscode/launch.json文件中增加如下配置:  // launch.json{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information,