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

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

[复制链接]
STMCU-管管 发布时间:2019-3-22 11:20
使用STM32F0xx系列的DAC生成音频和特定波形2 x- N/ d: @: C: w. z9 J

5 a5 P% O& W+ b$ s简介 - i) I1 g1 B: p) w  F' Z

9 d0 X3 E8 X6 Q7 m2 P- U本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F0xx 微控制器系列产品中。 ' O6 l$ f; ]' p5 o. }
, h4 B3 s2 V2 J* E) H
数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。
& {7 ^& p  ]2 j4 u
9 s; g( V1 U7 X3 vSTM32 DAC 模块是 12 位数据转换器,带有一个支持单声道音频的输出通道。 / C: A) o0 F9 i$ U3 h

* I" c" g4 W! M( L0 L! eDAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器。
( \9 b1 a" E9 b' Z; ^

1 u1 z# p  d) q. k% \STM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。本应用笔记主要包括两部分内容: 1 t) a# v$ \. ?) ]) x# \& t
● 第 1 节介绍 STM32 DAC 模块的主要特性。 % {" F- _$ A7 S' O4 p  X$ I3 g
● 第 2 节介绍两个示例。 # r* I0 |  j0 R* ~( ^6 m5 s- v
   — 在第一个示例中,DAC 用于生成正弦波形。
8 f& ~9 R" J6 H- x% D   — 在第二个示例中,DAC 用于通过 .WAV 文件生成音频。
; M3 U3 p2 Z' u2 d  z9 a3 z: N9 Y! v4 }- A0 j8 b7 K
1 DAC 主要特性 , {5 }& y7 ?9 s: w. e" O& O( T+ @
. q+ L1 N% n0 _; b$ i
1.1 数据格式 8 }6 t" L7 J; E: K: u5 \0 }
1 f' l8 B: G5 V- Y' K' W
DAC 可以使用以下三种整型格式的数据:8 位右对齐、12 右对齐以及12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。
& @& P  `0 W$ h* V2 z( u0 C2 N2 n# l9 h. q9 J0 j
1.png

( B' q5 [0 s5 r$ f
1.2 专用定时器

" e9 J$ ~$ h+ Y5 a2 u2 k
除了通过软件和外部触发信号触发 DAC 转换之外,还可以通过定时器触发 DAC 转换。
5 Y; m  q/ ~3 ~( i# b
TIM6 是一种基本定时器,主要用于触发 DAC 转换。
0 l2 D# C6 i$ i2 j+ M0 p
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。
3 `- _' d) |! Y0 N8 l
1.png
1.3 DMA 功能

0 B8 S3 s# @7 F8 r6 Y! \
STM32 微控制器配有一个多通道 DMA 模块。DAC 通道连接到独立的 DMA 通道。对于STM32F0xx 微控制器,DAC 通道会与 DMA 的通道 3 相连接。

% d% N) ^# }/ P: x
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU负责将数据从 RAM 传输到 DAC。
3 d+ J+ @7 F8 D  Q- `7 b5 t
1.png
. F6 X; g) M3 l/ T* e" E  ~- {* W$ |
使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。

( P+ R- y4 q. C9 N: R* X' L/ W
1.png
3 i! S" i1 w3 L, F' O
1.4 DMA 下溢错误
8 {3 X/ h8 b/ ]1 z
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。
( t- F7 A, O% n3 Z0 V* x  `

. \. }/ u& l' P% r
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。
. T0 Y- |* L0 D, a! D

6 K& ^# @( v+ ^5 F0 j
..............

. [$ h/ B3 T0 l- |& p2 B
想了解更多,请下载原文阅读
* W  u7 h+ \5 C8 _& s6 x( I
0 U; N6 m  p" Y% h  g4 J( [( G) O3 ?

. I+ M; `+ s9 j% M+ s+ F
赞 收藏 评论1 发布时间:2019-3-22 11:20

举报

1个回答
Kevin_G 回答时间:2019-3-22 12:47:53
点赞

所属标签

相似技术帖

官网相关资源

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