简介
DAC(Digital-to-Analog Converter,数模转换器)是将数字信号转换为模拟信号的外设,广泛应用于音频输出、波形生成、电机控制等场景。STM32F407 系列芯片配备了 2 个 DAC 通道(DAC1 和 DAC2),支持 12 位分辨率,支持多种触发方式,可输出稳定的模拟电压。本文从 DAC 的基本原理出发,详细讲解 STM32F407 DAC 的配置方法、代码实现、波形生成以及实际应用案例。
一、DAC 核心概念与分类
1.1 基本概念
DAC 是将数字信号转换为模拟信号的外设,其主要特点包括:
- 双通道:支持 2 个独立的 DAC 通道
- 12 位分辨率:可输出 0-4095 级模拟电压
- 多种触发方式:支持软件触发、定时器触发、外部触发等
- 波形生成:支持噪声波形、三角波波形生成
- DMA 支持:支持 DMA 传输,实现连续输出
关键参数:
- 分辨率:12 位,输出范围 0-4095
- 输出电压范围:0-VREF+(通常为 0-3.3V)
- 更新速率:最高可达 1MSPS
- 触发方式:软件触发、定时器触发、外部触发
1.2 STM32F407 的 DAC 资源
STM32F407 系列芯片配备了 2 个 DAC 通道:
| DAC 通道 | 引脚 | 触发源 | 适用场景 |
|---|---|---|---|
| DAC1 | PA4 | 软件触发、TIM2、TIM4、TIM5、TIM6、TIM7、TIM8、EXTI9 | 主要 DAC 通道 |
| DAC2 | PA5 | 软件触发、TIM2、TIM4、TIM5、TIM6、TIM7、TIM8、EXTI9 | 辅助 DAC 通道 |
关键特性:
- 支持 12 位分辨率
- 支持左右对齐
- 支持多种触发方式
- 支持噪声波形生成
- 支持三角波波形生成
- 支持 DMA 传输
- 支持双 DAC 同步转换
二、DAC 工作原理
2.1 基本工作原理
DAC 的基本工作原理是将数字信号转换为模拟信号。
工作流程:
- CPU 或 DMA 将数字数据写入 DAC 数据保持寄存器
- DAC 数据保持寄存器将数据传输到 DAC 数据寄存器
- DAC 数据寄存器将数字数据转换为模拟电压
- 模拟电压通过 DAC 输出引脚输出
2.2 触发方式
DAC 支持多种触发方式:
软件触发:
- 通过软件写入 DAC 数据寄存器触发转换
- 适用于手动控制输出电压的场景
定时器触发:
- 通过定时器事件触发转换
- 适用于周期性输出模拟电压的场景
