
简介 本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F0xx 微控制器系列产品中。 数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。 STM32 DAC 模块是 12 位数据转换器,带有一个支持单声道音频的输出通道。 DAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器。 STM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。 本应用笔记主要包括两部分内容: ●第 1 节介绍 STM32 DAC 模块的主要特性。 ●第 2 节介绍两个示例。 —在第一个示例中,DAC 用于生成正弦波形。 —在第二个示例中,DAC 用于通过 .WAV 文件生成音频。 1 DAC 主要特性 1.1数据格式 DAC 可以使用以下三种整型格式的数据:8 位右对齐、12 右对齐以及12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。 ![]() 1.2 专用定时器 除了通过软件和外部触发信号触发 DAC 转换之外,还可以通过定时器触发 DAC 转换。 TIM6 是一种基本定时器,主要用于触发 DAC 转换。 每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。 ![]() 1.3 DMA 功能 STM32 微控制器配有一个多通道 DMA 模块。DAC 通道连接到独立的 DMA 通道。对于STM32F0xx 微控制器,DAC 通道会与 DMA 的通道 3 相连接。 未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU负责将数据从 RAM 传输到 DAC。 ![]() ![]() 1.4 DMA 下溢错误 DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。 可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。 1.5 缓冲的输出 为了在不使用外部运算放大器的情况下驱动外部负载,DAC 通道内嵌一个输出缓冲器,可以根据用户应用情况进行使能和禁止。 如果未对 DAC 输出进行缓冲,当用户应用电路中存在负载时,实际电压输出会低于预期电压输出。启用缓冲器后,实际电压输出会与预期电压输出非常接近。 ![]() 完整版请查看:附件 |
DM00049125_ZHV1.pdf
下载981.47 KB, 下载次数: 0