你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

使用 STM32 微控制器系列中的 DAC生成音频和波形

[复制链接]
STMCU小助手 发布时间:2022-7-25 21:40
前言
本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在STM32F10xx 微控制器系列产品中。
数模转换器 (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 为最大值。

1UVP]L)DTS8IC_1`XT99B.png


1.2 双通道模式
DAC 有两个输出通道,每个通道各有一个转换器。在双 DAC 通道模式下,转换可以单独进行,也可以同时进行。
当 DAC 通道由同一个触发源触发后,两个通道将组合在一起同步执行更新操作,转换也会同时进行

1.3 专用定时器

除了通过软件和外部触发器触发 DAC 转换之外,还可以通过不同的定时器触发 DAC 转换。
TIM6 和 TIM7 是两个基本定时器,主要用于 DAC 触发。
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。


W7{~BF({[$YKZYA(W5G]ZCR.png


1.4 DMA 功能
STM32 微控制器配有一个多通道 DMA 模块。每个 DAC 通道都连接到独立的 DMA 通道。
对于 STM32F100x 微控制器,DAC 通道 1 连接到 DMA 通道 3,DAC 通道 2 连接到 DMA通道 4。
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU 负责将数据从 RAM 传输到 DAC。





使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。



不存在 DMA 时的 DAC 交互过程使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。

@ME5@TTXM`J(]81C3IS)U.png


1.5 DMA 下溢错误
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。

1.6 白噪声发生器
1.6.1 定义

STM32 微控制器 DAC 为用户提供了一个伪随机码发生器。根据移位寄存器上使用的节拍数,在序列重复前,可生成具有最多 2n-1 个数的序列。


O[_JAG19$)DWBWQ7J71XN8A.png


由噪声发生器生成的噪声具有均匀的频谱分布,可将这些噪声视为白噪声。不过,白噪声分布均匀,不具备高斯输出特性。


6ZDL_4[GL3]BW%~%UEHTV6W.png


噪声波形的偏移量可以编程。使用预配置的偏移量表更改此偏移量(信号模式),用户可获得与信号模式和噪声波形之和相对应的波形。


JML5N8EO`0TN1%CO}5WYG[H.png


1.6.2 典型应用
STM32 微控制器具有采样率高达 1 M/ 秒的 12 位增强型 ADC。在大多数应用中,这种分辨率已经足够,但在一些需要更高精度的情况下,可以利用过采样和抽选输入信号的概念,以减少外部 ADC 解决方案的使用并降低应用功耗。
STM32 应用笔记 AN2668 中标题为“使用白噪声进行过采样”一节中详细介绍了这些方法的详细信息。
白噪声发生器还可用于产生电子音乐,通常直接产生或作为滤波器的输入来形成其它类型的噪声信号。白噪声发生器广泛用于音频合成,通常用于再现钹等打击乐器的效果,这些乐器在其频域内具有较高的噪声量。
白噪声发生器可用于控制工程,以及放大器和电子滤波器的频率响应测试。
白噪声是一种通用的合成噪声源,用于通过耳鸣掩蔽器进行声掩蔽。

1.7 三角波发生器
1.7.1 定义

STM32 DAC 为用户提供了具有灵活的偏移量、振幅和频率的三角波形发生器。
理论上说,三角波形是一种由无限组奇次谐波组成的波形。
可以使用 DAC_CR 寄存器中的 MAMPx 位修正三角波形的振幅。


V@S7TU9]PW16$W`4]_Z(JM0.png

S}JYDS7[AKPI7FFZ7){4K.png


三角波形的偏移量可以编程。使用预配置的偏移量表更改三角波形地偏移量(信号模式),用户可获得与信号模式和三角波形之和对应的波形。


]W`O~7KXUYXCMCV{P1%(O6V.png


1.7.2 典型应用
由于三角波发生器的高次谐波下降速度更快,因此其音色比方波柔和,故而三角波发生器经常用于声音合成。
三角波发生器电路还可用于多种调制解调器电路应用。



完整版请查看:附件


CD00259245_ZHV1.pdf

下载

1.23 MB, 下载次数: 5

收藏 评论0 发布时间:2022-7-25 21:40

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版