MCU中的DAC(数字模拟转换器)是什么?
MCU中的DAC(数字模拟转换器)是什么?
在MCU(微控制器单元)中,**DAC(Digital-to-Analog Converter,数字模拟转换器)**是一种将数字信号转换为模拟电压或电流的模块。以下是关于DAC的详细说明:
1. DAC的基本功能
- 作用:将MCU内部的数字值(如二进制代码)转换为连续的模拟信号(如电压或电流)。
- 典型应用:
- 音频输出(如生成正弦波、语音信号)。
- 控制模拟电路(如调节电机速度、LED亮度)。
- 作为参考电压源或波形发生器。
2. DAC的核心特性
(1) 分辨率
- 定义:DAC输出的模拟量能分辨的最小变化量,由位数(bit)决定。
- 举例:12位DAC(如STM32的部分型号)可将数字量
0~4095
转换为电压,分辨率 = 参考电压 / 4096。 - 若参考电压为3.3V,则分辨率 ≈ 0.8mV。
- 举例:12位DAC(如STM32的部分型号)可将数字量
(2) 输出范围
- 电压范围:通常为
0V~Vref
(参考电压),部分DAC支持双极性输出(如±2.5V)。 - 输出类型:
- 电压输出:直接驱动高阻抗负载。
- 电流输出:需外接运算放大器转换为电压。
(3) 转换速度
- 更新速率:从数字输入到稳定模拟输出的时间,影响动态性能。
- 低速DAC:用于静态控制(如调光)。
- 高速DAC:用于音频、通信(需MHz级速率)。
(4) 触发方式
- 软件触发:通过写寄存器启动转换。
- 硬件触发:通过定时器或外部事件同步转换(如PWM同步)。
3. DAC在MCU中的实现方式
(1) 专用DAC模块
- 特点:集成在MCU内部,直接提供模拟输出引脚。
- 示例:
- STM32的
DAC_OUT1
(PA4)、DAC_OUT2
(PA5)。 - ESP32的8位DAC(GPIO25、GPIO26)。
- STM32的
(2) PWM模拟DAC
- 原理:通过PWM波滤波生成模拟电压(低成本替代方案)。
- 缺点:分辨率低、响应慢,需外接RC低通滤波电路。
- 适用场景:LED调光、简单信号生成。
4. DAC的典型应用代码(以STM32为例)
(1) 初始化DAC(输出正弦波)
#include "stm32f4xx_hal.h"DAC_HandleTypeDef hdac;void