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

【中文文档】AN3126_在STM32微控制器家族中使用DAC生成音频...

[复制链接]
STMCU-管管 发布时间:2019-4-1 09:49
前言 ( v# B7 L( X/ D
- @9 B+ m6 u& _" _  P
本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F10xx 微控制器系列产品中。
) ~5 x' K8 e1 r. N) e1 Y' c' o
2 i9 }. X3 D$ [8 v5 h
数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。 3 m2 y; U7 g5 R5 ~2 N+ z& C
8 s3 w# O6 b4 W: B5 J* Z" W& l8 `
STM32 DAC 模块是 12 位字转换器,带有两个支持立体声音频的输出通道。
: ~0 E* h' Y2 |  r* R0 Y

4 ^8 q  Q5 o7 V5 w+ \7 IDAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器 & X1 J4 ?. F7 B

; F* w% b: o1 l6 i7 XSTM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。
+ W; c, q+ b7 `' w! O) q& \" K
$ i% ?' `( K) p$ N& B9 x( K7 G本应用笔记主要包括两部分内容: 0 R0 d7 o# S/ K- h: x# U9 V
● 第 1 节介绍 STM32 DAC 模块的主要特性。 ) h( ]1 o& m. E$ x" k) D+ X( f* _9 s+ Q
● 第 2 节介绍了两个示例。 7 i0 ~* z* T  e, l+ `
   — 在第一个示例中,DAC 用于生成正弦波形。
% ^2 q: ^" a% k  — 在第二个例中,DAC 用于通过 .WAV 文件生成音频。/ A/ l% i8 _' i( _5 S: Z& \
# ?' ^9 L/ I4 @. k0 N8 `7 k
1 DAC 主要特性   @( a. B! L0 @: |2 K, D$ S
( ^( P. {+ |5 n& I
1.1 数据格式
, x' S7 d) w- V( S- b& f" `7 q

4 p2 D0 T- I; IDAC 可以使用以下三种整型格式的数据:8 位右对齐、12 位右对齐以及 12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。
9 d) z: m7 q& D5 k/ i, ~! {8 L, c5 Y5 k" K4 p0 _% H
1.png

, {. r/ x/ ~; s% y
1.2 双通道模式

3 _* F, M% I* U. r
DAC 有两个输出通道,每个通道各有一个转换器。在双 DAC 通道模式下,转换可以单独进行,也可以同时进行。
. V# a+ o! x; b% @2 U$ z& C
当 DAC 通道由同一个触发源触发后,两个通道将组合在一起同步执行更新操作,转换也会同时进行。

) f# g8 q# A% O5 e
1.3 专用定时器

+ o$ n3 \- H7 C) w+ q
除了通过软件和外部触发器触发 DAC 转换之外,还可以通过不同的定时器触发 DAC 转换。

2 l) Q7 ?) s& H1 g: b) ~& D6 O* ]" `
TIM6 和 TIM7 是两个基本定时器,主要用于 DAC 触发。

: N& [: c7 t+ d8 L) D" o7 ]8 \
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。

/ O8 Z9 j/ B+ Q+ J! r" R
1.png
6 L* [+ d- A2 W4 d2 A
1.4 DMA 功能

( l4 ?+ y$ O- c* G
STM32 微控制器配有一个多通道 DMA 模块。每个 DAC 通道都连接到独立的 DMA 通道。对于 STM32F100x 微控制器,DAC 通道 1 连接到 DMA 通道 3,DAC 通道 2 连接到 DMA通道 4。

  X- J" ~- e' u1 K3 \
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU 负责将数据从 RAM 传输到 DAC。

3 T: D4 y% K4 A: M. Z- d+ f* c
1.png
使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。

: ^8 \6 R  Z8 M0 c+ p2 x
1.png
1.5 DMA 下溢错误
$ N  z; W* {5 _" `
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。

' g7 V' [' n4 w, L7 H
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。
* U7 m0 W# Q  H( _' a- h' W; z
1.6 白噪声发生器

; N( Q$ v7 y( L
1.6.1 定义
: t2 u* t4 p8 Z' q5 U
STM32 微控制器 DAC 为用户提供了一个伪随机码发生器。根据移位寄存器上使用的节拍数,在序列重复前,可生成具有最多 2n-1 个数的序列。

6 R6 D9 G/ P8 C# `1 h/ ~3 e* u
1.png

0 D7 ]3 t* s0 M
............

2 o, u1 P' Y2 V+ Y1 v
想了解更多,请下载原文阅读

1 Y+ q3 Y8 X* T1 N$ s  k! L2 i
赞 收藏 1 评论2 发布时间:2019-4-1 09:49

举报

2个回答
Kevin_G 回答时间:2019-4-1 15:57:31
收藏
单片机爱好者 回答时间:2019-5-26 23:13:24
支持~~~~~~~~~~~
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版