为工业场合开发的设备通常情况下都会具有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编程为何内部不应开DAC缓冲
推荐阅读最新更新时间:2026-03-13 20:03
单通道无缓冲电压输出DAC—AD5791
AD5791是一款单通道、20位、无缓冲电压输出DAC,采用最高33V的双极性电源供电。正基准电压输入范围为4V至VDD – 2.5V,负基准电压输入范围为VSS + 2.5 V至0V。相对精度最大值为±1 LSB,保证工作单调性,微分非线性(DNL)最大值为±1 LSB。
这款器件采用多功能三线式串行接口,能够以最高50 MHz的时钟速率工作,并与标准SPI™、QSPI™、MICROWIRE™、DSP接口标准兼容。它内置上电复位电路,确保DAC输出上电至0V并保持已知输出阻抗状态,直到对该器件执行一次有效的写操作为止。禁用特性可将输出置于已定义的负载状态。
特性
● 分辨率:1ppm
[电源管理]
采用AD8129/AD8130的DAC缓冲器
差分放大器: AD8129和AD8130差分转单端放大器(图1)用于第一个电路(图2).它们在高频下具有极高的共模抑制性能.AD8129在增益为10或以上时保持稳定,而AD8130则在单位增益下保持稳定.它们的用户可调增益可以由, RF 和 RG.两个电阻的比值来设置.AD8129和AD8130在引脚1和引脚8上具有很高的输入阻抗,不受增益设置的影响.基准电压 (VREF, 引脚4)可以用来设置偏置电压,该偏置电压被乘以与差分输入电压相同的增益. 图1. AD8129/AD8130差动放大器 图2. 采用AD8129/AD8130的DAC缓冲器
[模拟电子]
TI 推出单通道16 位缓冲电压输出DAC
2007 年 12 月 11 日,北京讯 日前,德州仪器宣布推出一款单通道 16 位缓冲电压输出数模转换器 (DAC),该器件具备1 LSB 最大线性度 (INL)、低噪声 (24 nV/rtHz ) 以及快速建立时间 (5.0 uS) 等。DAC8881 具备 5mW 超低功耗,从而为工业过程控制、自动测试设备、数据采集系统以及通信应用提供了一种极具吸引力的可选方案。 DAC8881 能够在 +2.7V 至 +5.5V 的单电源电压范围内工作,并提供单极输出。输出电压建立在选定基准电压的基础之上,电压范围为 1.25V 至 5.5V,因此可用于多种应用。由于采用了可用于偏移的外部运算放大器,该器件还能提供具有二进制互补编码的双极
[新品]
TI 推出单通道16 位缓冲电压输出DAC
2007 年 12 月 11 日,北京讯 日前,德州仪器宣布推出一款单通道 16 位缓冲电压输出数模转换器 (DAC),该器件具备1 LSB 最大线性度 (INL)、低噪声 (24 nV/rtHz ) 以及快速建立时间 (5.0 uS) 等。DAC8881 具备 5mW 超低功耗,从而为工业过程控制、自动测试设备、数据采集系统以及通信应用提供了一种极具吸引力的可选方案。 DAC8881 能够在 +2.7V 至 +5.5V 的单电源电压范围内工作,并提供单极输出。输出电压建立在选定基准电压的基础之上,电压范围为 1.25V 至 5.5V,因此可用于多种应用。由于采用了可用于偏移的外部运算放大器,该器件还能提供具有二进制互补编码的双极
[模拟电子]
STM32汇编程序闪烁LED灯1
在main函数中添加如下代码: AREA |.text|, CODE, READONLY GPIOB_CRL EQU 0X40010C00 GPIOB_CRL_OUT EQU 1 21 ;1 21 GPIOB_ODR EQU 0X40010C0C GPIOB_ODR_OUT EQU 1 5 ;1 5 GPIOB_BSRR EQU 0X40010C10 GPIOB_BSRR_OFF EQU 1 5 ;1 5 GPIOB_BSRR_ON EQU 1 21 ;1 21 RCC_APB2ENR EQU 0x4002
[单片机]
【STM32 LL库编程】端口复用与重映射
0x01 什么是端口复用 STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。 一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。 端口复用 通过上图我们可以将 PA9、PA10 复用为 USART1_TX UASRT1_RX 或 定时器 TIM1的通道2和通道3 0x02 端口复用 端口复用步骤包括 使能端口时钟 使能复用的端口时钟 对应的端口模式设置 在配置复用端口时如何选择端口模式 ? 在 IO 复用位内置 外设功能引脚的时候,必须设置GPIO 端口的模式,至于在复用功能下 GPIO 的模式是怎么对应,这个可以查看手册《 STM32 STM
[单片机]
ch32可以用keil吗?ch32和stm32编程有区别吗?
CH32是山外电子推出的一款基于RISC-V架构的32位微控制器芯片,其具有性价比高的特点,适用于一些成本敏感的产品。而STM32则是意法半导体推出的一款基于ARM Cortex-M架构的32位微控制器芯片,其具有丰富的外设资源和高性能的特点,适用于一些性能要求较高的产品。本文将对CH32和STM32进行比较,并回答读者的问题:ch32可以用keil吗?ch32和stm32编程有区别吗? 一、CH32和STM32比较 1.架构比较 CH32采用了RISC-V架构,而STM32采用了ARM Cortex-M架构。RISC-V架构是一种开源的指令集架构,其具有可定制性强、可移植性好等优点,但是目前在市场上的占有率较低。ARM Cort
[单片机]
STM32编码器接口 以及应用编程
Ⅰ 关于编码器 编码器的种类有很多,什么增量式编码器、绝对值编码器,有轴或者无轴编码器,电压输出、推拉输出、集电极开路输出等等。但不管什么类型的编码器,其目的都类似,得到转动的角度,角速度、位移等。 本文讲述常见的增量式编码器,增量式编码器也可以叫正交编码器,也就是说可以通过其A、B的相位知道编码器是正转,还是反转,还可以根据编码器参数得出旋转了多少角度等。 常见的增量式编码器A、B、Z三根线代表什么意思呢?使用过编码器的人不难理解,这里简单给初学者讲述一下: A、B两线提供相位相差90度的脉冲信号,用其来计算旋转的角度;Z线为过零点线,也就是说每转一转,经过某一点都会输出一个脉冲信号,主要用于“过零校正”,三线的信号大致
[单片机]