问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

单片机使用数字模拟转换器(DAC)进行音频合成和波形生成

创作时间:
作者:
@小白创作中心

单片机使用数字模拟转换器(DAC)进行音频合成和波形生成

引用
CSDN
1.
https://blog.csdn.net/MUKAMO/article/details/138333681

1 数字模拟转换器(DAC)的主要特点

1.1 概述

本文的MCU基于Arm®公司的Cortex®核心的MCU产品集成了具有不同配置和特点的DAC:

  • 一到三个输出通道

  • 噪声波形生成

  • 三角波形生成

  • DMA(直接内存访问)运行结束标志

专用模拟时钟 有关不同DAC配置的详细信息,请参阅对应的MCU数据手册和参考手册。

1.2 数据格式

如图1所示,DAC接受三种整数格式的数据:8位(数据保持寄存器的低8位),12位右对齐(数据保持寄存器的低12位),以及12位左对齐(数据保持寄存器的高12位)。

模拟输出电压在每个DAC通道输出上由以下公式确定:

$$DACOutput = VREF \times \frac{DOR}{4096}$$

1.3 双通道模式

注意:此特性仅支持至少嵌入两个DAC的产品。

DAC有两个输出通道,每个通道都有自己的转换器。在双DAC通道模式下,转换可以独立或同时进行。 当DAC通道由同一触发源触发时,两个通道将被组合在一起进行同步更新操作,并且转换将同时完成。

1.4 专用定时器

除了软件和外部触发器,DAC转换还可以由不同的定时器触发。 TIM6和TIM7是基本定时器,旨在用于DAC触发。 每当DAC接口在选定的定时器触发输出(TIMx_TRGO)上检测到上升沿时,存储在DAC_DHRx寄存器中的最后数据将被传输到DAC_DORx寄存器(以MCU为示例)。

1.5 DMA(直接内存访问)

MCU至少拥有一个具有多个通道(流)的DMA模块。每个DAC通道(流)都连接到一个独立的DMA通道。例如,微控制器中有4个DAC通道,DAC通道1连接到DMA通道3,而DAC通道2连接到DMA通道4。

当不使用DMA时,CPU被用来向DAC提供与要生成的波形相关的数字代码。这个代码存储在RAM中,或者存储在嵌入式非易失性(NV)存储器中,然后CPU将数据从存储器传输到DAC。

当使用DMA(直接内存访问)时,系统的总体性能会通过释放CPU来提高。这是因为数据是由DMA从内存移动到DAC(数字模拟转换器),而无需CPU进行任何操作。这样,CPU资源就可以用于其他操作。

1.6 DMA运行不足错误

当DMA被用来向DAC提供波形的数字代码时,可能会出现DMA传输速度比DAC转换速度慢的情况。在这些情况下,DAC检测到一部分波形数据尚未接收且无法转换,然后会设置“DMA运行不足错误”标志。

1.7 白噪声生成器

1.7.1 定义

MCU的DAC具有一个伪随机码生成器,如图5所示。 根据移位寄存器上使用的抽头,可以生成最多2^n-1个数字的序列,直到序列重复。

图5 DMA嵌入的伪随机码发生器

图6说明了DAC的伪随机码生成器产生的噪声特性。白噪声是指在所有频率上具有相同功率的随机信号,其频谱是平坦的。这里提到的“平坦的频谱

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号