STMCU小助手
发布时间:2022-12-4 18:00
|
前言 本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F10xx 微控制器系列产品中。 数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。 STM32 DAC 模块是 12 位字转换器,带有两个支持立体声音频的输出通道。 DAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器2 @$ |+ @# |; e( m. I+ X. { STM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。 本应用笔记主要包括两部分内容:* @) X0 f( Q6 {/ ]2 x. o ● 第 1 节介绍 STM32 DAC 模块的主要特性。 ● 第 2 节介绍了两个示例。# k" ]' F" S* H% {! q/ A — 在第一个示例中,DAC 用于生成正弦波形。3 R& c2 E: L4 Q M0 F5 I* h — 在第二个例中,DAC 用于通过 .WAV 文件生成音频。1 g/ v- [/ @. ^ - m7 {! D" @/ a2 L; E0 @ 1 DAC 主要特性' U4 D+ p: D% G) W 1.1 数据格式 DAC 可以使用以下三种整型格式的数据:8 位右对齐、12 位右对齐以及 12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。 ! ~* s7 n8 V2 j4 A% c
% e5 A$ Y# Y S3 D- j 1.2 双通道模式" t" {9 T2 ]3 q4 C! V+ w DAC 有两个输出通道,每个通道各有一个转换器。在双 DAC 通道模式下,转换可以单独进行,也可以同时进行。3 ~$ x8 s' }0 c& l3 I, d+ m& O) V 当 DAC 通道由同一个触发源触发后,两个通道将组合在一起同步执行更新操作,转换也会同时进行。0 b* Z$ z( F- A2 O/ u* e. W) I , `4 d. X$ _. E* @5 n$ P 1.3 专用定时器; E7 Y3 B; Z4 W# P( S 除了通过软件和外部触发器触发 DAC 转换之外,还可以通过不同的定时器触发 DAC 转换。 TIM6 和 TIM7 是两个基本定时器,主要用于 DAC 触发。 每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。8 X% n- l0 k$ m- a 3 R% u9 `- b& ]9 L2 O
1.4 DMA 功能 STM32 微控制器配有一个多通道 DMA 模块。每个 DAC 通道都连接到独立的 DMA 通道。0 ~( E+ o7 J6 K" J. X- o2 B 对于 STM32F100x 微控制器,DAC 通道 1 连接到 DMA 通道 3,DAC 通道 2 连接到 DMA通道 4。1 D* {( q5 k d: f- }" V 未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU 负责将数据从 RAM 传输到 DAC。5 B) s; X6 _( B- Q : |+ p* [( Q6 y
) [: D/ Y8 q6 X 使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。 % L) J- C- P' E/ ~0 w
1.5 DMA 下溢错误 DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。+ h" m4 _* c5 v7 C) C6 V' x& w! x 可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。 $ a+ D( @) `' \ d6 |7 ^& {3 q 1.6 白噪声发生器% Q# D& C8 M7 o, i 1.6.1 定义; j/ Z+ U$ J& U# } STM32 微控制器 DAC 为用户提供了一个伪随机码发生器。根据移位寄存器上使用的节拍数,在序列重复前,可生成具有最多 2n-1 个数的序列。
由噪声发生器生成的噪声具有均匀的频谱分布,可将这些噪声视为白噪声。不过,白噪声分布均匀,不具备高斯输出特性。 , T5 K, ^ S4 S# T3 {* m2 [
噪声波形的偏移量可以编程。使用预配置的偏移量表更改此偏移量(信号模式),用户可获得与信号模式和噪声波形之和相对应的波形。 , [5 k+ A( |2 I" @8 Z 8 Y! {# S6 w4 j! z/ \
4 t' K. |7 N8 B, O) l6 N k3 u 1.6.2 典型应用 STM32 微控制器具有采样率高达 1 M/ 秒的 12 位增强型 ADC。在大多数应用中,这种分辨率已经足够,但在一些需要更高精度的情况下,可以利用过采样和抽选输入信号的概念,以减少外部 ADC 解决方案的使用并降低应用功耗。 STM32 应用笔记 AN2668 中标题为“使用白噪声进行过采样”一节中详细介绍了这些方法的详细信息。) x* ~2 `$ W7 o+ C! l 白噪声发生器还可用于产生电子音乐,通常直接产生或作为滤波器的输入来形成其它类型的噪声信号。白噪声发生器广泛用于音频合成,通常用于再现钹等打击乐器的效果,这些乐器在其频域内具有较高的噪声量。 白噪声发生器可用于控制工程,以及放大器和电子滤波器的频率响应测试。; U# g7 y8 C$ R! e- U6 k2 n1 q 白噪声是一种通用的合成噪声源,用于通过耳鸣掩蔽器进行声掩蔽。- p6 W* A* Y6 D: S& g( W 完整版请查看:附件 , }/ u! g0 X) y2 l+ y+ Q |
使用 STM32 微控制器系列中的 DAC生成音频和波形.pdf
下载1003.76 KB, 下载次数: 13
【STM32H5 评测】ADC 电压表
经验分享 | 通过STM32 TIMER的PWM功能模拟输出正弦波
STM32H563 ADC+TIM+DMA应用演示
经验分享 | STM32N6 ADC DMA 传输失败案例分享
实战经验 | MC SDK V6.x软件HSO功能ADC采样设计说明
经验分享 | 为什么重启ADC的DMA传输要先停掉ADC?
经验分享 | 为什么重启ADC的DMA传输要先停掉ADC?
经验分享 | STM32 ADC过采样话题
经验分享 | STM32双定时器+ADC+DMA实战案例
经验分享 | STM32U5系列TIMER+DMA+DAC应用演示
微信公众号
手机版