数控恒流源电路简单讲解

news2024/9/21 5:40:24

(1)最近课设是做一个可步进的恒流源,所以查查找了很多资料之后。说一下自己对于恒流源电路的简单理解。

(2)我只是会将怎么使用和调整数据进行讲解,至于为什么这样只会讲我懂的部分。本人知道的也不是很多,有大佬的话可以在评论区写上自己的想法。

(3)本次恒流电路实验会使用到的芯片:74HC190,DAC0832,LM358N。还需要一个IRF840的场效应管。

(4)本次实验仅仅用于仿真实验!本人并没有做出实物!所以要做实物的兄弟,建议先在面包板上按照电路图连接测试一下!

(5)这个实验存在的缺陷:需要输入12V,5V和-1.6V的三路电源,比较麻烦。而且因为老师主要是让我们学习Altium Designer的使用并且画出一个PCB,所以本人只完成了任务1,任务2和3并没有做检验。你可以在本人电路上稍作调整。

(6)如果想学习如何AD画板子,可以看我的专栏:PCB设计—AD20和立创EDA设计(1)创建项目;

(7)邀请加入嵌入式社区,您可以在上面发布问题,博客链接,公众号分享,行业消息,招聘信息等。

目录

思路

译码电路

CD74HC190芯片简单介绍

仿真图 

RCO与MAX/MIN简单介绍

数模转换

DAC0832芯片简单介绍

引脚介绍 

数据手册上一些比较重要的图

电路图

电路调节

U/I电路部分

加负载没有问题的电路图

不能加负载的电路图


思路

 

 

译码电路

CD74HC190芯片简单介绍

(1)CD74HC190芯片可以向上计数,也可以向下计数。详情看表二。

(2)如果LOAD,CTEN,D/U为指定电平,那么CLK引脚每接收到一次上升沿,就会有一次计数

(3)异步预置的意思就是说,如果是处于此状态,那么引脚3,2,6,7的电平对应引脚15,1,10,9

(4)无变化就是说引脚3,2,6,7的电平不会变化,也就是说不会计数。

(5)CD74HC190的工作电压是2 V至6 V,此处选择5V作为供电电压

(6)RCO与MAX/MIN引脚后面讲,RCO与MAX/MIN此刻不用理会

 

 

 

仿真图 

(1)根据上述讲解,我们就可以马上连接好电路图了。

(2)D0-D3这三个引脚电平随便接,因为我不打算使用异步预置的功能。

(3)引脚14,4,5,11按照上述所说连接。

(4)引脚3,2,6,7作为输出电平,给DAC0832输入信息,同时连接四个LED用于显示当前译码结果。

(1)当我们需要向下计数的时候,需要按下K2(注意,不能松手,所以建议购买自锁按钮)。如果是想向上计数,那么K2松开即可。

(2)因为每次计数需要给CLK一个上升沿,所以这里模拟一个上升沿电路。

(3)这一部分可以直接变成连接5V电压。这个作用就是,如果需要开启异步预置就按下即可。

(4)可以删掉。主要是为了解释引脚12,13的进位功能的。

(5)连接4个LED显示译码结果,同时将其连接到DAC0832用于控制输出电流。

RCO与MAX/MIN简单介绍

(1)74HC190是十进制加/减计数器。RCO与MAX/MIN引脚用于提示是否要进位或者退位了。

(2)比如9+1需要进一位为10的时候,RCO为低电平,MAX/MIN为高电平。当0-1需要退位的时候,RCO为低电平,MAX/MIN为高电平。

(3)这两个引脚可以用于需要进行100位译码的时候,利用两个74HC190芯片,加上这个进位信号可以10*10=100的译码。

(4)所以引脚13,14此刻不用理会

(5)如果想了解更深一点点,我们可以看时序图和手册介绍。看不懂就多看几遍,实在不明白也没关系。

如下:

当计数器发生上溢或下溢时,计数期间为低电平的MAX/MIN输出变为高电平,并在一个时钟周期内保持高电平。此输出可用于高速级联中的先行进位。MAX/MIN输出还启动涟漪这个解释了为什么RCO低电平时间不足一个时钟周期)时钟(RCO)输出,该输出通常为高电平,然后变为低电平,并在时钟脉冲的低电平部分保持低电平。这些计数器可以使用RCO级联。

 

数模转换

DAC0832芯片简单介绍

引脚介绍 

控制信号:

CS(引脚1):CS结合ILE将使能WR1。

ILE(引脚19):ILE结合CS使能WR1。

WR1(引脚2):低电平有效WR1用于将数字输入数据位(DI)载入输入锁存器。当WR1为高电平时,输入锁存器中的数据被锁存。要更新输入锁存器,CS和WR1必须为低电平,同时ILE为高电平

WR2(引脚18):此信号与XFER结合使用,可将输入锁存器中可用的8位数据传输至DAC寄存器。

XFER(引脚17):传输控制信号(低电平有效)。XFER将启用WR2。

其他引脚功能:

DI0-DI7:数字输入。DI0为最低有效位(LSB),DI7为最高有效位(MSB)。

IOUT1(引脚11):DAC电流输出1。IOUT1是DAC寄存器中全1数字码的最大值,DAC寄存器中全0数字码的IOUT1为0。

IOUT2(引脚12):DAC电流输出2。IOUT2为常数减去IOUT1,或IOUT1 +IOUT2 =常数(固定基准电压为满量程)。

Rfb(引脚9):反馈电阻。反馈电阻位于IC芯片上,用作外部运算放大器的分流反馈电阻,外部运算放大器用于为DAC提供输出电压。应始终使用此片内电阻(而非外部电阻),因为它与片内R-2 R梯形电阻中使用的电阻匹配,并在整个温度范围内跟踪这些电阻。

VREF(引脚8):基准电压输入。此输入将外部精密电压源连接到内部R-2 R梯形图。VREF可在+10至− 10 V范围内选择。这也是四象限乘法DAC应用的模拟电压输入。

VCC:数字电源电压。这是器件的电源引脚。VCC的范围为+5至+15VDC。+15VDC时运行最佳。

GND:对于电流开关应用,引脚10的电压必须与IOUT1和IOUT2的地电位相同。任何电位差(VOS引脚10)将导致线性度变化。

数据手册上一些比较重要的图

 

 

 

 

电路图

(1)根据引脚介绍的控制信号部分我们可以知道,引脚1和引脚2必须低电平,引脚19需要高电平,这样才能够更新DAC0832的数据但是如果想锁死DAC0832的输出电压,可以让引脚2为高电平即可

(2)根据引脚介绍的控制信号部分我们可以知道,引脚17和引脚18必须结合,而且必须接地

(3)由数据书册的图可知,引脚12必须接地和接一个运放的P口,引脚11接N口,RFB必须接运放的输出端

(4)VCC供电口可以是5-15V,15V最佳。不过因为绝大多数芯片供电都是选择的5V,所以我这里连接的是5V供电。

(5)DI0—DI7这8个引脚都是属于数据输入引脚。你可以在这个里面输入数据,控制电压输出为多少。

(6)VREF与电压输出值有关。电路调节部分会讲。

 

电路调节

(1)如果我们想要设置自己想输出的电压值怎么办呢?我们只需要调节两个地方第一个是DI0—DI7这八个引脚,他们可以控制输出电压。第二个是VREF

(2)date就是D0-D7从2进制转换为10进制之后的值,256是因为2^8=256。公式:VOUT=-VREF*\frac{date}{256}这个就解释了为什么VREF需要的是负电压了,至于为什么是-1.6V,U/I部分讲。

U/I电路部分

(1)说实话,这一部分我懂的也不是很多,只知道如果想要生成我想要的电流应该调节那一部分。所以我这里就不讲为什么这样连接了,直接讲怎么使用。有明白的大佬,可以写一篇博客,然后私信我一下,谢谢。

(2)我找到了两个电路图。第一个电路图加上负载之后会有问题,我也不知道是不是我连接错误的问题。第二个测试了没事。

加负载没有问题的电路图

(1)我们只需要调节R8就调节VOUT与输出电流的值了。

(2)公式:IOUT=\frac{VOUT}{R8}

(3)因为上述公式,我们需要步进增加100mA,那么需要\Delta VOUT/R8=0.1A,让R8=1欧,VOUT只需要每次增加0.1V。

(4)如果VOUT每次增加0.1V,又因为Q0是从DI4开始,所以对于DAC0832而言,就是每一次增加16。那么由DAC0832的公式VOUT=-VREF*\frac{date}{256}可知,VREF为-1.6V时候,恰好可以让VOUT每次步进0.1V。

不能加负载的电路图

(1)一开始我测试的时候,没有考虑加负载,发现电流表能够按照我想的步进增加100mA。后来我写博客的时候,突然想到,如果加负载怎么搞?无论是串联还是并联都行不通,测试了之后也是行不通。于是我就放弃了这个方案。

(2)不过我还是简单介绍一下如果调节这个不步进电流公式:IOUT=\frac{VOUT}{R4}

 

 

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

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

相关文章

【RPA前置知识】 整理并总结ForEach Activity类

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。 🐬个人主页:会敲键盘的肘子 🐰系列专栏:.Net实用方法总结 🦀专栏简介:本专栏介绍如何编写 Windows…

Biopython教程

Biopython教程 参考: https://biopython-cn.readthedocs.io/zh_CN/latest/index.html 蛋白质文件获取 Entrez方法 from Bio import Entrez Entrez.email邮箱名 #如123456789qq.com handleEntrez.esearch(dbprotein,term2rbg) recordEntrez.read(handle) idrecor…

C++PrimerPlus 第八章 函数探幽-8.2 引用变量

目录 8.2 引用变量 8.2.1 创建引用变量 8.2.2 将引用用作函数参数 8.2.3 引用的属性和特别之处 8.2.3.1 临时变量、引用参数和const 8.2.4 将引用用于结构 8.2.4.1 程序说明 8.2.4.2 为何要返回引用 8.2.4.3 返回引用时需要注意的问题 8.2.4.4 为何将const用于引用返…

纳米柱阵列超颖表面构建模块的严格分析

摘要 利用先进的制造技术,人们成功实现了具有高数值孔径的可见波长的超透镜。通常使用空间变化的纳米结构作为模块来构建超透镜。在这个例子中分析了用于组成偏振不敏感超透镜的纳米柱状结构。利用傅立叶模态方法(FMM,也称为RCWA)…

Windows配置开机自启jar包,不显示黑窗口,并输出日志

背景 如果是在 Linux 下开机自启一个服务相对比较简单,这次遇到一个需求是关于 Windows 开机自启的: 在 Windows 环境下开机自动运行一个 SpringBoot 服务;而且由于是一个后台服务,要求对终端用户无感知;为后期维护方…

AC自动机的实现思想与原理

1. 基本介绍 本文最先发布于博客园,原地址:AC自动机的实现与思想原理 - yelanyanyu - 博客园 (cnblogs.com) 1.1案例引入 有一个字典有若干的敏感词 String[] str;,有一个大文章 string,我们要找到大文章中出现的所有的敏感词&…

物联网ARM开发- 6协议 FSMC模拟8080时序驱动LCD(上)

目录 一、常见显示器介绍 1、显示器分类 2、显示器的基本参数 二、TFT-LCD控制原理 1、TFT-LCD结构 2、TFT-LCD控制框图 3、控制原理 LCD数据传输时序 LCD数据传输时序参数 三、SSD1963液晶控制器 1、SSD1963液晶控制器 2、SSD1963内部框图分析 3、8080写时序…

RK3568平台开发系列讲解(音视频篇)FFmpeg公共基础参数

🚀返回专栏总目录 文章目录 一、公共操作部分二、每个文件主要操作部分三、视频操作部分四、音频操作部分沉淀、分享、成长,让自己和他人都能有所收获!😄 📢当我们使用 FFmpeg 时,有一些贯穿 FFmpeg 各个组件的核心参数,在我们查看帮助信息时就可以看到,help 不带参…

基于 Tensorflow 2.x 实现多层卷积神经网络,实践 Fashion MNIST 服装图像识别

一、 Fashion MNIST 服装数据集 Fashion MNIST 数据集,该数据集包含 10 个类别的 70000 个灰度图像。大小统一是 28x28的长宽,其中 60000 张作为训练数据,10000张作为测试数据,该数据集已被封装在了 tf.keras.datasets 工具包下&…

move functions with VS without noexcept

本文所讲对移动函数使用noexcept修饰时带来的效率提升只针对std::vector。而对std::deque来说没有功效。 1. 针对std::vector 1.1 move functions with noexcept 当移动构造函数有noexcept修饰时,在对std::vector进行push_back扩充致使vector的size等于capacity时…

26. GPU以及 没有gpu的情况下使用colab

在PyTorch中,CPU和GPU可以用torch.device(‘cpu’) 和torch.device(‘cuda’)表示。 应该注意的是,cpu设备意味着所有物理CPU和内存, 这意味着PyTorch的计算将尝试使用所有CPU核心。 然而,gpu设备只代表一个卡和相应的显存。 如果…

【大数据技术Hadoop+Spark】Spark SQL、DataFrame、Dataset的讲解及操作演示(图文解释)

一、Spark SQL简介 park SQL是spark的一个模块,主要用于进行结构化数据的SQL查询引擎,开发人员能够通过使用SQL语句,实现对结构化数据的处理,开发人员可以不了解Scala语言和Spark常用API,通过spark SQL,可…

数据挖掘Java——Kmeans算法的实现

一、K-means算法的前置知识 k-means算法,也被称为k-平均或k-均值,是一种得到最广泛使用的聚类算法。相似度的计算根据一个簇中对象的平均值来进行。算法首先随机地选择k个对象,每个对象初始地代表了一个簇的平均值或中心。对剩余的每个对象根…

给 VitePress 添加 algolia 搜索

大家好,我是 Chocolate。 最近在折腾 VitePress,搭建了一个文档项目:ChoDocs,不过文档还不支持搜索功能,虽然目前内容不多,但待我同步完之后,搜索就很有必要了。 之前看 VitePress 官网发现没有…

pikachu靶场暴力破解绕过token防护详解

今天继续给大家介绍渗透测试相关知识,本文主要内容是pikachu靶场暴力破解绕过token防护详解。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调&#x…

基于改进的多目标粒子群算法的微电网多目标调度(三个目标函数)(matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

中央重磅文件明确互联网医疗服务可用医保支付!

文章目录中央重磅文件明确互联网医疗服务可用医保支付!中央重磅文件明确互联网医疗服务可用医保支付! 当下,互联网医疗机构已加入到新冠防治的“主战场”,在分流线下诊疗发挥了很大作用。国家层面也在进一步鼓励互联网医疗行业发…

基于多尺度形态学梯度进行边缘检测(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

C++中的继承

把握住自己能把握住的点滴,把它做到极致,加油! 本节目标1.继承的概念及定义1.1继承的概念1.2 继承定义1.2.1 定义格式1.2.2 继承方式和访问限定符1.2.3 继承基类成员访问方式的变化2.继承中的作用域练习3.基类和派生类对象赋值转换4.派生类的…

Java+SSM网上订餐系统点餐餐厅系统(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用的技术实现如下 后台框架:Spring、SpringMVC、MyBatis UI界面:BootStrap、H-ui 、JSP 数据库:MySQL 系统功能 系统分为前台订餐和后台管理: 1.前台订餐 用户注册、用户登录、我的购物车、我的订单 商品列…