STM32 实现 4-20mA 压控恒流源电路
在工业场合中,设备通常需要具有 4-20mA 的输出接口,以便于与其他设备进行通信和控制。然而,在以往没有 DAC 模块的单片机系统中,需要外加一主片 DAC 或者采用 PWM 来模拟 DA,但这也带来了温漂和长期稳定性问题。幸运的是,STM32 单片机系统可以使用它自带的 DAC 来实现 4-20mA 的输出接口,该方法具有精度高、稳定性好、漂移小以及编程方便等特点。
在 STM32 单片机系统中,需要解决供电问题,因为 100 脚以下没有外接出 VREF 引脚。这使得 DAC 的参考端和 VCC 共用,带来较大误码差。为了解决这个问题,可以使用廉价的 TL431 来解决供电问题,TL431 典型温漂为 30ppm,在一般应用中已非常足够。
在实现 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 内部缓冲电路将损失掉输出线性度。
- 1
- 2
- 3
前往页