STM32|4-20mA输出电路

发布者:Xiangtan最新更新时间:2017-02-19 来源: eefocus关键字:STM32  输出电路 手机看文章 扫描二维码
随时随地手机看文章

  为工业场合开发的设备通常情况下都会具有4-20mA输出接口,在以往没有DAC模块的单片机系统,需要外加一主片DAC实现模拟量的控制,或者采用PWM来摸拟DA,但也带来温漂和长期稳定性问题。在以STM32为中心的设备中,使用它自带的DAC即可非常方便的实现4-20mA的输出接口,具有精度高、稳定性好、漂移小以及编程方便等特点。

  在STM32单片机系统中,100脚以下没有外接出VREF引脚,但这样使得DAC的参考端和VCC共用,带来较大误码差,为解决这一问题,可以使用廉价的TL431来解决供电问题,TL431典型温漂为30ppm,所以在一般应用中已非常足够。选用两只低温漂电阻,调整输出使TL431的输出电压在3V-3.6V之间,它的并联稳压电流可达到30mA,正好能满足一般STM32核心的功耗需求。

  利用TL431解决了供电问题,余下的就是4-20mA的转换电路,如下图:

  

  上图即为非常精确的转换电路,OPA333是一颗非常优异的单电源轨至轨运算放大器,其工作电压为2.7-5.5V,其失调电压仅为10uV,实测最低输出为30uV,最高输出可达VCC-30uV。电路组成压控恒流源,其关键在于OPA333这颗芯片的优异性能,使得以上电路获得了极高的精度和稳定性。DACOUT来自于STM32的DAC1或者DAC2输出,由C25进行数字噪场滤波之后进入运算,进行1:1缓冲,后经过Q2进行电流放大,在R7上形成检测电压,C17进行去抖动处理。4-20mA信号由AN_OUT+/AN_OUT-之间输出。

  上图中,负载中的电流在R7上形成压降,经运放反馈后得到Vdacout=Vr7=I*R7,所以:I=Vdacout/R7,当Vdacout在400mV到2000mV之间变化时,可得到4-20mA的输出。改变R7的大小,便可改变DACOUT的需求范围。电路中,R2的基射极之间将有0.7V左右的偏压,所以Vb[MAX]=2V+0.7V=2.7V,这正好在OPA333的输出范围之内。电路中R14做为输出端的限流电流,使得输出端的最大输出电流Imax=Vcc/(R7+R14),若Vcc取6V,则Imax=6V/200 O=30mA,若没有R14,则最大电流可能有60mA,这时R7上的耗散功率为0.06*0.06*100=0.36W,若选用0805贴片电阻,将导致R7烧坏,或者由于温度升高太严重导致R7阻值变化太大输出引起较大偏差。加入R14之后,R7上的最大耗散功率为:0.03*0.03*100=0.09W,此时在正常的范围之内。

  电路中R14不可省去,C17不可省去,由于外负载可能的微小干扰或波动将导致OPA333组成的深度负反馈电路形成振荡,使输出电流波动,加入C17能抑制这种波动,使输出更稳定,但是C17的值不宜过大。

  使用STM32编程应注意,其内部不应当开DAC缓冲,因以上电路已经为一个高输入阻抗的缓冲电路。由STM32内部缓冲电路将损失掉输出线性度。


关键字:STM32  输出电路 引用地址:STM32|4-20mA输出电路

上一篇:STM32F103ZET6 用定时器级联方式输出特定数目的PWM
下一篇:浅谈STM32的端口输出方式

推荐阅读最新更新时间:2024-03-16 15:33

在ubuntu下利用eclipse搭建stm32开发环境和st-link调试
一、下载eclipse: 我们选择的工具为Eclipse IDE for C/C++ Developers,官网下载地址在 https://www.eclipse.org/downloads/packages/release/helios/sr2/eclipse-ide-cc-developers 若网址打不开或下载速度慢,可选用百度云链接: https://pan.baidu.com/s/10bMkwr1hyL0FDf-NXaruAA 解压安装包并复制到自己安装的安装目录。 二、下载gcc-arm-none-eabi: 在终端输入 sudo apt-get install gcc-arm-none-eabi
[单片机]
在ubuntu下利用eclipse搭建<font color='red'>stm32</font>开发环境和st-link调试
STM32不止于芯”: 2023年STM32中国峰会暨粉丝狂欢节重磅回归深圳
2023年5月12日,中国深圳 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;)将于5月12-13日在深圳蛇口希尔顿酒店举行2023年STM32中国峰会暨粉丝狂欢节。 STM32中国峰会是展示STM32产品技术和解决方案的行业盛会,2023年,我们迎来了第六届STM32中国峰会。本届峰会以“STM32不止于芯”为主题,将专注于边缘AI、网络连接、信息安全、生态系统与开发者优先计划,重点展示STM32创新产品技术如何赋能各种应用。 本届峰会将举办50多场专题会议,其中包括高管主题演讲、技术研讨会,以及ST和生态系统合作伙伴的demo演示。此外,新品展区将是本届
[单片机]
STM32 DSP库 使用注意点
DSP库 使用注意点 我们平常所使用的CPU为定点CPU,意思是进行整点数值运算的CPU。当遇到形如1.1+1.1的浮点数运算时,定点CPU就遇到大难题了。对于32位单片机,利用Q化处理能发挥他本身的性能,但是精度和速度仍然不会提高很多。 现在设计出了一个新的CPU,叫做FPU,这个芯片专门处理浮点数的运算,这样处理器就将整点数和浮点数分开来处理,整点数交由定点CPU处理而浮点数交由FPU处理。我们见到过TI的DSP,还有STM32F4系列的带有DSP功能的微控制器。前者笔者没有用过,不作评论,而后者如果需要用到FPU的浮点运算功能,必须要进行一些必要的设置。 首先,由于浮点运算在FPU中进行,所以首先应该使能FPU运
[单片机]
STM32—TIMx输出PWM信号驱动MG996R舵机
一.前言 利用STM32的TIM3的通道1、通道2,输出俩路PWM信号,驱动MG996R舵机。 涉及到:TIM定时器基本原理,TIM定时中断、TIM输出PWM信号、MG996R舵机驱动原理 二.MG996R舵机简介 MG996R舵机单线驱动,是一款360°舵机,180°舵机与360°舵机的区别就是:180°舵机可以直接控制舵机旋转的角度,但舵机只能够旋转180°;360°舵机无法直接控制其旋转角度,只能控制其转动方向和速度。 舵机的驱动信号由周期为20ms的脉冲来控制: 当高电平持续时间为0.5~1.5ms时,舵机正转,时间越小转动越快 当高电平持续时间为1.5~2.5ms时,舵机反转,时间越大转动越快 当高电平持续时间为
[单片机]
<font color='red'>STM32</font>—TIMx<font color='red'>输出</font>PWM信号驱动MG996R舵机
STM32重难点-IIC原理及应用详细步骤
IIC概述 IIC介绍 I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。是半双工通信方式。 IIC特性 相对于UART,IIC的优点在于可以一对多,缺点在于无论主从器件均不对消息进行确认。 模拟IIC优点是可以任意选择SDA和SCL,不受管脚限制而比较灵活。它的缺点是不可用DMA。 硬件IIC优点是可用DMA减轻CPU负担,速度也比模拟IIC快,但是实际调试时可能会出现死
[单片机]
<font color='red'>STM32</font>重难点-IIC原理及应用详细步骤
关于STM32串口通信使用printf发送数据的配置方法
开发环境: Keil RVMDK 在 STM32 串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做哪些配置。 有两种配置方法: 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含 stdio.h (标准输入输出头文件)。 2、在main文件中重定义 fputc 函数。如下: // 发送数据 int fputc(int ch, FILE *f) { USART_SendData(USART1, (unsigned char)
[单片机]
关于<font color='red'>STM32</font>串口通信使用printf发送数据的配置方法
ST扩展STM32MP1生态系统,促进AI和IoT应用开发
意法半导体宣布进一步扩大资源丰富的STM32MP1*双核微处理器开发生态系统,增加新软件包,系统可支持最先进的开源安全计划。 通过提供实现OP-TEE(开放式便携式受信任执行环境)和TF-A(可信固件-A)项目等安全机制的软件代码,意法半导体帮助STM32MP1开发人员分析解决在实际应用开发中遇到的重要的信息安全概念:机密性、完整性、可用性和真伪验证。此外,意法半导体还与Sequitur Labs公司合作扩大嵌入式安全授权合作伙伴名单。 Sequitur Labs 的EmSPARK™ Security Suite for STM32MP1安全套件可简化安全启动、设备验证等保护技术的固件开发。Sequitur Labs
[单片机]
ST扩展STM32MP1生态系统,促进AI和IoT应用开发
STM32学习笔记之电容触摸2
(4)在led.c文件中添加以下代码 (5)在tpad.c文件内添加以下代码 #include tpad.h #include delay.h /*************************************************** Name :TPAD_Get_Value Function :触摸按键值获取 Paramater :None Return :获取的充电时间 ***************************************************/ u16 TPAD_Get_Value() { //电容放电 GPIOA- CRL &= 0xFFF
[单片机]
<font color='red'>STM32</font>学习笔记之电容触摸2
热门资源推荐
热门放大器推荐
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved