(硬件05)电流检测中运放的“虚短”与“虚断”

本文目录

  • 本篇前言
  • 知识点讲解
  • 软件仿真

本篇前言

        运放,全称是运算放大器,一般的用法是用来发大电信号的,本篇讲解到的就是通过运算放大器将大电流流过采样电阻后的电压进行放大后输出给单片机的ADC,单片机根据ADC的值(一般最大为4096)对应着3.3V的电压,根据ADC/4096*3.3获得放大后的电压,再除以放大倍数就得到真实的电压值,根据欧姆定律,I=V/R计算出电流的大小。

知识点讲解

(电流采样电阻)

        为了追求精确度,采样电阻一般选用mΩ级别的电阻,电流流过电阻,会在电阻两端产生压降,电流的方向是从电势高的地方流向电势低的地方,所以流入端为+,流出端为-。对应着上图来说就是,电流流过MOS管,从MOS管流出后,经过采样电阻留回电源的GND。

(运算放大电路)

        图中的U7.4就是一个芯片中的运放的一个模型,咱们看到这个运放是带反馈电阻R80的,所以是一个放大电路,如果运放不带反馈电阻,那一般就用来当做电压比较器。

          “虚断”:就是运放的“-”假设是没有输入的,通道断开了,断路后,原V-的电压为

          V- = Vout * R81/(R81+R80)= Vout * 1 / (1+9.1)= Vout/10.1

          “虚短”:就是运放的“-”与“+”假设可以达到短路的状态,短路后,V- = V+

          V- = V+ = Vin

        结合上面两个公式,那么Vin = Vout/10.1,即Vout = Vin * 10.1,那么我们可以得知运放电路的放大倍数是10.1倍。

(运算偏置电压)

        图中的R86与R85组成了运放的偏置电压。具体计算一下,没有电流流过采样电阻时,MOS_GND对GND的压差为0V,此时,MOS_GND电压为0V,运放“+”端的输入电压Voffset计算如下:

        Voffset = Vin = 3.3V * R85 / (R85+R86) = 3.3V * 1/(1+39) = 3.3 V/ 40 = 0.0825V

        上面我们已经算出了运放的放大倍数,当在MOS_GND电压为0V时,运放的输出电压是

        Vout = Voffset  * 10.1 = 0.833V,这时ADC检测到的值为

        ADC = 0.833 / 3.3 * 4096 = 1034

        为什么要给运放加入偏置电压?

        一个是提高信号的电压值,避免ADC在较低值时因为噪声影响而造成的误差;

        另外一个是当检测的信号具有正负变换的情况时,使用0-3.3V的ADC仍能检测到变化,比如交流电的电压变化,假设我们用1.65V来做基准电压,当交流电为-311V直流时,分压后电压的ADC对应0V,当交流电对应+311V直流时,分压后电压的ADC对应3.3V。

(运放的加法器)

         实际上,运放的偏置电压也是一种加法器电路。下面简单讲解一下。

        如上面的推算结果所示,MOS_GND队GND电压为0V时,Vin = Voffset = 0.0825V

        当我们的电流流过采样电阻,假设加上的是一个10a电流,此时MOS_GND对GND电压为

        V10a =  10 * 0.02 = 0.2V

        因为基尔霍夫电流定律,电路中同一个回路,各处的电流是相等的。计算流过R85的电流

        I_R85 = (3.3V -0.2V ) / (1K+39K) = 0.0000775A

        那么R85两端产生的电压是 0.0000775 * 1000 = 0.0775V

        那么输入的Vin(V+)对GND的电压 = 0.0775 + 0.2 = 0.2775V

        Vout = V+ * 10.1 = 2.80V

        由此可见偏置电压类似于加法器的应用。

(滤波)

        C49是对运放输入电压进行滤波。

        C47与反馈电阻R80形成一个高通滤波器,‌抑制较低频率的信号。

        R82与C48组成一个RC滤波,减少ADC幅值频繁跳动的问题。

      

软件仿真

       无限接近于0的 1nA电流流过采样电阻20mΩ时

        10A电流流过采样电阻20mΩ时

注意事项:

        1.采样电阻功率的问题,考虑到电阻流过大电流,计算公式是P=UI=IR*I假设我们电路中最大的是是10A,那么电阻的产生的功率为 Pr = 10*0.02*10 = 2W,要采用合金电阻等大瓦数的。

        2.运放的选择问题,提到这个,不得不引入一个轨对轨的概念。这里的轨指的是电源轨道,假设运功是3.3V供电,则Vout的输出范围为0-3.3V,因为有的运放输出只能输出到Vcc-1.5V的,这个具体看数据手册了。

        

 数据手册中对于Vout输出电压的最大值描述

  非轨到轨输出波形,“被削顶”的波形

小弟感谢大家的关注!

      (利他之心,原创分享)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Commons-Collections篇-CC7链

前言 和CC5反序列化链相似,CC7也是后半条LazyMap执行命令链不变,但是中间过程通过AbstractMap.equals()触发LazyMap.get()方法 环境 我们可以接着使用之前已经搭建好的环境,具体过程可以看CC1分析文章的环境安装部分 Commons-Collections篇…

leecode-动态规划-基础题目

一、简述 DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的 重点:状态转移公式 二、一维 1、[509]斐波那契数 2、[70]爬楼梯 dp[i]可有dp[i-1]再爬一级台阶dp[i-2]再…

手表名表维修开单系统软件教程,佳易王钟表养护维护保养记录开单软件操作教程

手表名表维修开单系统软件教程,佳易王钟表养护维护保养记录开单软件操作教程 以下软件操作教程以,佳易王钟表养护维修管理系统软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件程序操作教程 1、佳易王钟表维…

第2章 信息技术知识

第2章 信息技术知识 本章简要叙述了信息技术相关基础知识,包含软件工程、面向对象系统分析与设计、应用集成技术、计算机网络技术和新一代信息技术内容。 2.1 软件工程 随着所开发软件的规模越来越大、复杂度越来越高,加之用户需求又并不十分明确&…

k8s上部署单节点apache-lotdb

一、yaml文件 使用的nfs的动态存储类,需要提前搭建。 # cat lotdb.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: logsnamespace: lotdb spec:storageClassName: "nfs-client"accessModes:- ReadWriteManyresources:requests:storag…

Spring Session 多服务Session共享

在新项目中需要开发单点登录功能,单点登录服务端提供方使用的是CAS技术,是根据Session来判断用户是否完成了登录操作的。Session是保存在服务器本地内存中的,而我的项目是需要多服务部署的,这就意味着会部署在不同的服务器中&…

中国百货业元宇宙转型:挑战与机遇并存

在数字化和科技创新的推动下,中国百货业正站在一个新的历史节点上。面对着电子商务的冲击和消费者需求的演变,传统百货业正在经历一场前所未有的转型。而元宇宙,这一全新概念的提出,为百货业的变革带来了无限的想象空间。 **百货…

淘宝商品历史价格查询(免费)

当前资料来源于网络,禁止用于商用,仅限于学习。 淘宝联盟里面就可以看到历史价格 并且没有加密 淘宝商品历史价格查询可以通过以下步骤进行: 先下载后,登录app注册账户 打开淘宝网站或淘宝手机App。在搜索框中输入你想要查询的商…

【Linux操作系统-测试】第二节.Linux 常用指令介绍(下)

文章目录 前言总结 前言 二、查看文件内容 2.1 cat 命令--查看文件内容 2.2 more 命令--分屏查看 2.3 grep 命令--过滤查看 三、linux其他常用命令 3.1 echo 命令--回显 3.2 clear 命令--清屏 3.3 >,>>重定向符号--输出重定向 3.4 管道符号--命令结果传递…

使用 Python 中的 `sklearn` 库实现 KNN 分类

Scikit-Learn 使用 Python 中的 sklearn 库实现 KNN 分类安装 sklearn 库导入库并准备数据使用 sklearn 实现 KNN 分类详细说明重点内容 使用 Python 中的 sklearn 库实现 KNN 分类 K最近邻(K-Nearest Neighbors, KNN)是一种简单且有效的分类算法。在 P…

【问题记录】Windows中Node的express无法直接识别

问题描述 在使用express_generator的时候windows平台中出现无法识别express命令的问题,另外就算添加了全局环境变量也没用。 问题解决 查看官方文档发现在node版本8之前的时候使用的是express,但是之后的版本使用npx,这个工具的出现主要想…

keil mdk注释插件合集格式、时间、日期注释

文章目录 一、前言二、安装步骤2.1 解压tools.zip2.2 tools 文件解释2.3 添加注释带keil 三、配置3.1 格式化代码3.2 文件注释3.3函数注释3.4 当前日期3.5 当前时间 四、编辑注释模板4.1 编辑函数注释模板4.2 编辑C文件注释模板4.3 编辑h文件注释模板 五、为注释功能添加快捷键…

在冰火岛买火车票

题目 小张无忌在冰火岛听了谢逊爷爷讲了许多少林寺的故事,非常仰慕少林寺这样的武学圣地。特别是藏经阁中收藏了大量武学秘籍,金刚指、易筋经、龙象波若功都非常想学。一有空,便缠着谢逊爷爷教他一招半式。今年暑假,张翠山夫妇想…

【Kubernetes安装】从零开始使用kubeadm命令工具部署K8S v1.28.2 集群

文章目录 一、虚拟机配置参数说明二、kubernetes v1.28.2版本介绍三、CentOS 7.9 系统初始化配置3.1 配置CentOS系统基础环境3.1.1 配置hosts3.1.2 永久关闭selinux3.1.3 关闭swap分区3.1.4 所有节点全部关闭防火墙3.1.5 配置ntp server同步时间3.1.6 添加kubernetes镜像源 3.2…

python的类中的super是做什么的

其实就是子类调用一下父类的构造函数(或者其他函数也行)。:   在 Python 中,super() 是一个用于调用父类(或基类)的方法。它通常在子类中使用,以便调用其父类的初始化方法或其他方法,从而确保父类的初始化代码在子类…

spring boot easyexcel

1.pom <!-- easyexcel 依赖 --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency><dependency><groupId>org.projectlombok</group…

uniapp,app端使用echarts不兼容,可以使用iframe来使用echarts

可以新建文件夹 echarts&#xff0c;里面放echart.min.js文件,echarts.html文件生成echarts图&#xff0c;之所以用iframe不用webview&#xff0c;是因为webview容易出问题&#xff0c;最明显问题是层级问题。 <!DOCTYPE html> <html lang"en"> <hea…

Maven依赖 dependencyManagement、 dependencies、 dependency

在Maven项目构建工具中&#xff0c;“dependencies”、“dependencyManagement”和“dependency”这三个概念扮演着重要的角色&#xff0c;它们之间既有区别又有联系。以下是对这三个概念的详细解释以及它们之间的区别与联系&#xff1a; 一、基本概念 dependencies 定义&…

12--RabbitMQ消息队列

前言&#xff1a;前面一章内容太多&#xff0c;写了kafka&#xff0c;这里就写一下同类产品rabbitmq&#xff0c;rabbitmq内容较少&#xff0c;正好用来过度一下&#xff0c;概念还是会用一些例子来说明&#xff0c;实际部署的内容会放在概念之后。 1、基础概念 1.1、MQ消息队…

CSS原子化

目录 一、定义 二、原子化工具 2.1、tailwind 2.1.1、以PostCss插件形式安装 2.1.2、不依赖PostCss安装 2.1.3、修改原始配置 2.2、unocss 三、优缺点 3.1、优点 3.2、缺点 一、定义 定义&#xff1a;使用一系列的助记词&#xff0c;利用类名来代表样式。 二、原子化…