查看: 1195|回复: 1

[经验] STM32单片机实现4-20mA的输出

[复制链接]
  • TA的每日心情
    开心
    2019-11-4 13:48
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2020-4-2 10:12:31 | 显示全部楼层 |阅读模式
    分享到:
    为工业场合开发的设备通常情况下都会具有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内部缓冲电路将损失掉输出线性度。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-16 17:32 , Processed in 0.130306 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.