请选择 进入手机版 | 继续访问电脑版

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

【中文文档】AN4058_使用STM32F0xx系列的DAC生成音频和特定波形

[复制链接]
STMCU-管管 发布时间:2019-3-22 11:20
使用STM32F0xx系列的DAC生成音频和特定波形1 Z+ V9 m: O* X) Y; [5 q

" a% a+ \' T# i6 S简介 $ \6 [& I# b0 A0 y- {
2 e# Q+ Q; K: Z4 P
本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F0xx 微控制器系列产品中。 " e7 \9 c5 F* c. J! S* }- D

1 A9 l9 [. V. l5 _数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。
9 [. R' n. ^& o5 N
. c8 E4 |) n. H1 ESTM32 DAC 模块是 12 位数据转换器,带有一个支持单声道音频的输出通道。
+ c* F. R6 k. V% \. L; X' c4 m4 }9 \
DAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器。
& m. w2 `7 J  N* }% P

$ x. `8 \! {+ B& n3 r  A! SSTM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。本应用笔记主要包括两部分内容: 0 }$ o9 x! W6 J% t! q" Z6 S2 E
● 第 1 节介绍 STM32 DAC 模块的主要特性。
. j7 S6 ]  Y( e# D  g. E● 第 2 节介绍两个示例。
$ |- ]+ K8 @: z& p3 D) K: N   — 在第一个示例中,DAC 用于生成正弦波形。
+ W$ F1 D/ f5 m+ R, ?   — 在第二个示例中,DAC 用于通过 .WAV 文件生成音频。$ t( {9 S/ Z, G# K1 z+ G/ \, t

& c, X0 f* L6 R$ F" t8 W8 h1 DAC 主要特性
9 D6 _  U0 l0 N9 ^# x
4 X8 D4 u; _; t# K6 z" g# r
1.1 数据格式
/ q% ]& i% O& i' }" ?" ^
9 m! r  R: v& D* A% W& B( Y) o7 {DAC 可以使用以下三种整型格式的数据:8 位右对齐、12 右对齐以及12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。- o) [' w/ Q$ I" v, t
4 g- W$ G' ?- X+ `1 R
1.png

7 H; Z( i, ?( t! W- p, o
1.2 专用定时器
( T. H. B& L' z+ m1 X; |
除了通过软件和外部触发信号触发 DAC 转换之外,还可以通过定时器触发 DAC 转换。

6 K: H# |5 V$ r' B/ Z8 @1 l
TIM6 是一种基本定时器,主要用于触发 DAC 转换。
: k% H8 }7 a  o( E8 K
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。

3 P9 w7 _0 r8 i3 w; [5 t( f3 w' E
1.png
1.3 DMA 功能

6 M  W: d/ ^' c5 O1 O
STM32 微控制器配有一个多通道 DMA 模块。DAC 通道连接到独立的 DMA 通道。对于STM32F0xx 微控制器,DAC 通道会与 DMA 的通道 3 相连接。

  |% b! Q$ @0 {5 A+ z1 G
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU负责将数据从 RAM 传输到 DAC。

; K8 G( C1 n- }+ C' `  {1 o0 K
1.png

5 Y8 w" {1 w( p) ^/ Q4 _" D9 |" G5 u
使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。

. ~/ Y, [4 d$ x2 i! J$ O6 h
1.png

: U: I8 j# |, |: g" r8 P5 o, D; W
1.4 DMA 下溢错误

* O- T# Y. V. O. t
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。
* d! U( i8 u7 b2 T, }4 L0 `
5 b% }' Z. ~+ l* b- j
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。

, g/ @3 s  D) c6 e; i8 c$ F+ x! s
% c; b/ y( Q' A8 i$ F: Q/ w
..............

$ V/ o1 I. e+ {0 ]5 \$ g
想了解更多,请下载原文阅读

3 K$ C% l+ S, Y
2 d8 _/ [$ I' s& W5 b4 U

4 P7 x0 n, s1 q+ r# b' N( t( `
收藏 评论1 发布时间:2019-3-22 11:20

举报

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