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

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

[复制链接]
STMCU-管管 发布时间:2019-4-1 09:49
前言 & ^" a3 s. Q+ @

% k' ~% t( ^9 h2 }' {% {本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F10xx 微控制器系列产品中。 5 X3 `: Q+ G4 z
. u5 M/ V" e6 M) m; e5 a/ O2 |% [
数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。 3 M; c% K& _: L8 H* H7 z
" N6 W% v% t. C$ H7 U7 s9 i
STM32 DAC 模块是 12 位字转换器,带有两个支持立体声音频的输出通道。
$ r8 R3 k7 F# T- L+ c/ C9 k
" g! a3 h& w: F. K" {: J  }
DAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器
1 T! F* v* I2 U" R+ E% m
2 H2 t1 `" ~6 P; f, D
STM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。
  A# K2 x0 D' i7 c* [+ ^
- G' @( u( u3 @+ \; h本应用笔记主要包括两部分内容:
# g4 }% }2 A  O4 l, L& @( y  }● 第 1 节介绍 STM32 DAC 模块的主要特性。 ! e4 J: T' j5 w0 B5 {, Y* P- w
● 第 2 节介绍了两个示例。
; t* C; k) p, a5 N2 u   — 在第一个示例中,DAC 用于生成正弦波形。 ' q5 l! q: h$ g: T5 [$ @
  — 在第二个例中,DAC 用于通过 .WAV 文件生成音频。
7 E9 [' a; v% x0 I: j. D- l; w5 S
4 q4 g8 O- F$ |) d" _: Y1 DAC 主要特性 * S, t  o& A. q: h7 S

1 q* V  F  @5 o% W* L! T1.1 数据格式
8 C( V$ [1 E# v+ l

8 p3 K! W& E! e$ S* aDAC 可以使用以下三种整型格式的数据:8 位右对齐、12 位右对齐以及 12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。+ e2 v; w' `, g& A/ V( d% G

* ^0 z) @0 h4 {8 y7 U2 ~& ~7 {& ~
1.png
, }9 E) {' Z: T/ A8 Y  R
1.2 双通道模式

2 e) U. e8 u8 }  y* {1 V
DAC 有两个输出通道,每个通道各有一个转换器。在双 DAC 通道模式下,转换可以单独进行,也可以同时进行。

- |7 g- S: g* Q% c5 j+ I3 ]
当 DAC 通道由同一个触发源触发后,两个通道将组合在一起同步执行更新操作,转换也会同时进行。

# X! Y) e5 U+ T( V- |5 x$ [9 b
1.3 专用定时器
" m2 q# u8 D3 |- T* K# Z8 ^" p
除了通过软件和外部触发器触发 DAC 转换之外,还可以通过不同的定时器触发 DAC 转换。
3 }- I! `+ s2 Q2 G9 ]$ P
TIM6 和 TIM7 是两个基本定时器,主要用于 DAC 触发。

- Y# P# p( y' H! U5 b
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。

" y  I- u0 L* q
1.png
, m0 j! n/ c" b$ O
1.4 DMA 功能

# W+ p1 P/ L' `+ ^( n8 a/ s5 i3 R5 G. ?
STM32 微控制器配有一个多通道 DMA 模块。每个 DAC 通道都连接到独立的 DMA 通道。对于 STM32F100x 微控制器,DAC 通道 1 连接到 DMA 通道 3,DAC 通道 2 连接到 DMA通道 4。
& \) J, b/ z9 d: [% \$ y' d
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU 负责将数据从 RAM 传输到 DAC。
" \) r; b" N( k) I
1.png
使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。
1 W( C4 ?' q$ C0 e5 O* o
1.png
1.5 DMA 下溢错误
3 d- S3 _6 q/ E! R* J' M
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。
9 A0 i8 F. t2 B, F
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。

8 i6 E9 L# b" ]3 r6 g
1.6 白噪声发生器
0 w( E) x% u  S7 ]% B9 @1 L
1.6.1 定义
+ O$ J$ P0 ]) K
STM32 微控制器 DAC 为用户提供了一个伪随机码发生器。根据移位寄存器上使用的节拍数,在序列重复前,可生成具有最多 2n-1 个数的序列。
6 i# p6 }1 T# W6 e
1.png
  x4 n+ I1 j8 H
............

7 C6 B1 G2 E3 u
想了解更多,请下载原文阅读
; i$ p4 w1 B7 ]8 E/ t3 Z; J
收藏 1 评论2 发布时间:2019-4-1 09:49

举报

2个回答
Kevin_G 回答时间:2019-4-1 15:57:31
收藏
单片机爱好者 回答时间:2019-5-26 23:13:24
支持~~~~~~~~~~~

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版