(硬件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。在搜索框中输入你想要查询的商…

【问题记录】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…

12--RabbitMQ消息队列

前言:前面一章内容太多,写了kafka,这里就写一下同类产品rabbitmq,rabbitmq内容较少,正好用来过度一下,概念还是会用一些例子来说明,实际部署的内容会放在概念之后。 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、缺点 一、定义 定义:使用一系列的助记词,利用类名来代表样式。 二、原子化…

uniapp——银行卡号脱敏

样式 代码 {{bankNumber.replace(/(\d{4})(?\d)/g, "●●●● ").replace(/(\d{2})(?\d{2}$)/, " $1")}} 将银行卡号按照每四位一组的方式进行处理,前面的变成 剩下的正常显示

uniapp上架到appstore遇到的问题

1、appstore在美国审核,需要把服务器接口的国外访问权限放开 2、登陆部分 a、审核时只能有密码登陆,可以通过接口响应参数将其他登陆方式暂时隐藏,审核成功后放开即可 b、需要有账号注销功能 3、使用照相机和相册功能时需要写清楚描述文案

在 PostgreSQL 里如何实现数据的自动清理和过期处理?

文章目录 一、使用 TIMESTAMP 列和定期任务二、使用事件触发器(Event Triggers)三、使用分区表(Partitioned Tables)四、结合存储过程和定时任务示例场景实现步骤测试与验证 在 PostgreSQL 中,可以通过多种方式实现数据…

MySQL资源组的使用方法

MySQL支持创建和管理资源组,并允许将服务器内运行的线程分配给特定的组,以便线程根据组可用的资源执行。组属性允许控制其资源,以启用或限制组中线程的资源消耗。DBA可以针对不同的工作负载适当地修改这些属性。 目前,CPU时间是一…

前端开发攻略---webSocket的简单实现与使用

1、演示 2、实现流程 安装依赖 npm i ws 服务端代码 const WebSocket require(ws)// 创建一个 WebSocket 服务器,监听端口 3000 const wss new WebSocket.Server({ port: 3000 })// 监听连接事件 wss.on(connection, function connection(ws) {console.log(客户端…

HTML(29)——立体呈现

作用:设置元素的子元素是位于3D空间中还是平面中 属性名:transform-style 属性值: flat:子级处于平面中preserve-3d:子级处于3D空间 步骤: 父级元素添加 transform-style:preserve-3d 子级定位调整子盒子的位置&a…

【GC 垃圾回收算法和回收器】

作者:ofLJli 链接:https://juejin.cn/post/7003213289425633287?searchId20240709085629749958B21D886D4E67D4 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 概述 在JVM中主要的结构为&…

怎样优化 PostgreSQL 中对 XML 数据的存储和查询?

文章目录 一、数据类型选择二、索引优化三、查询优化四、分区策略五、存储参数调整六、示例代码与解释七、性能测试与监控八、数据清理与压缩九、注意事项 在 PostgreSQL 中处理 XML 数据时,为了实现高效的存储和查询,需要采取一系列的优化策略。以下将详…