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

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

[复制链接]
STMCU-管管 发布时间:2019-3-22 11:20
使用STM32F0xx系列的DAC生成音频和特定波形
! f5 _$ i& n2 H- ~+ f) R6 v/ V+ b2 j& v4 P7 B
简介
  G; V& _- `) t0 G2 R9 g
0 }4 @2 y! `  }9 G6 C: H
本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F0xx 微控制器系列产品中。 5 _( N5 l7 ?( b& z/ E  `5 X, R

; @% |1 R* r; _) \9 A数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。 ' n! t3 u! C6 L" k* R' K
" c" R' d+ m- t) X8 y" ]6 ]
STM32 DAC 模块是 12 位数据转换器,带有一个支持单声道音频的输出通道。 9 O1 Z4 ]7 ^- L9 n( n: W# I

4 W; g" _4 n) z+ x  p( X3 R4 g% ]/ bDAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器。 8 Z8 O0 M  q& D

0 j1 n3 ~+ l, b, V# lSTM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。本应用笔记主要包括两部分内容:
# V% O4 }! T4 [; Y3 I; r* R" o● 第 1 节介绍 STM32 DAC 模块的主要特性。 9 F& Z% r6 j: Q2 N' W3 B1 P, j
● 第 2 节介绍两个示例。
1 B3 r9 ~' L, R$ W) Y  W* p* A   — 在第一个示例中,DAC 用于生成正弦波形。   {5 o& ]9 p9 }2 L& p' \& H
   — 在第二个示例中,DAC 用于通过 .WAV 文件生成音频。1 p" q7 ?0 ^" _$ }
. _) Q: _- K2 ]  Q  w0 ?
1 DAC 主要特性 6 @6 d) B, i5 F
% n8 N' R0 A$ A1 q% s
1.1 数据格式
/ e# k5 d0 Y2 q; G0 r; \2 a/ f0 [$ g( K7 \6 m$ N
DAC 可以使用以下三种整型格式的数据:8 位右对齐、12 右对齐以及12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。
0 i: e- ?1 n$ X8 |9 l; t4 o
! \3 n$ ~8 p  W2 M- ~% O
1.png

. e- J6 k8 I, O2 b# p
1.2 专用定时器
6 V0 M; q& `: U) d8 ~
除了通过软件和外部触发信号触发 DAC 转换之外,还可以通过定时器触发 DAC 转换。
+ V# d5 B5 D: s: p2 U& r* z! l
TIM6 是一种基本定时器,主要用于触发 DAC 转换。

3 z7 q" w+ ]3 p8 J; z% S- z
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。
3 |! W/ j# U; U: W. ]: h; E
1.png
1.3 DMA 功能
. s  q2 O  P8 {$ g$ p
STM32 微控制器配有一个多通道 DMA 模块。DAC 通道连接到独立的 DMA 通道。对于STM32F0xx 微控制器,DAC 通道会与 DMA 的通道 3 相连接。

* p& c2 q% n8 a8 Q! I( p- \! H
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU负责将数据从 RAM 传输到 DAC。
$ H4 f) W  B8 q+ d6 l
1.png
! V- t- K- i2 Q& o3 d% c- n; }
使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。
( I7 k- x$ a8 A! h6 U. ?& r5 R$ w: t
1.png
8 m+ j1 w' H: T# @* W. R
1.4 DMA 下溢错误
2 z$ y: O' h0 R* k3 I9 A' {- E
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。

+ w* e9 }- q4 g. V* c: x. X$ X: y
* z: J( Y$ t3 ~
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。
% P/ i% m, H. e1 E# L6 N$ r

2 z8 A, N, n: q" M* N4 a6 ?+ c( R9 Q
..............

& z: i3 g* j' u" A. E
想了解更多,请下载原文阅读

0 j( A( u) C, V  Z6 @' ~0 U

4 ?. G- Y* B9 n4 k8 L

# ?4 W& ?6 t, ?! d
赞 收藏 评论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 手机版