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

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

[复制链接]
STMCU-管管 发布时间:2019-3-22 11:20
使用STM32F0xx系列的DAC生成音频和特定波形
- C7 K; @6 B8 S& o5 _" n5 H: i6 m6 j2 L  A. i( k
简介
( {# s/ u7 Y' e: [2 B+ ~8 Y8 T

) `# `& H/ Q" f$ i& r2 Y* K本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F0xx 微控制器系列产品中。
& P( {, t, y$ e: ?4 r
. i  a  @" `6 b6 T  |5 @" b
数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。
5 {+ J0 Y$ m' i9 p* f5 K5 m% X& G9 A, P
STM32 DAC 模块是 12 位数据转换器,带有一个支持单声道音频的输出通道。
  n5 D! z3 A5 T2 p/ U- H; h% X6 p7 i& F
DAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器。
$ D1 k/ Z+ k* T6 |9 R$ J

* z/ T8 F" n: k; A& ~& a" ]" YSTM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。本应用笔记主要包括两部分内容:
' H1 G2 k7 L9 q; l  Q* R● 第 1 节介绍 STM32 DAC 模块的主要特性。
$ G6 T, y* X/ V% q7 z' c! p● 第 2 节介绍两个示例。 & ^# K8 D5 b& W/ C! h1 q
   — 在第一个示例中,DAC 用于生成正弦波形。 , y$ s% }* ?) |8 F, q& o/ y
   — 在第二个示例中,DAC 用于通过 .WAV 文件生成音频。. F# Y/ Y0 c  o. j( `

$ Z$ m! _) I, S. C. R) a1 DAC 主要特性 : Y! b' P* U& `
2 O2 f5 `. C3 w* {
1.1 数据格式 8 I& [  x0 x" x. z) r1 V' l( \3 P
4 ?5 P" y  }/ W) y2 P/ d
DAC 可以使用以下三种整型格式的数据:8 位右对齐、12 右对齐以及12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。" l1 b8 z; }6 T" z7 u+ }- O' v

( c  B* i& }5 u3 X: J* k
1.png

* X& {; m# O! P; n) ~2 j  o
1.2 专用定时器
% i) Y; [% g5 |9 ?
除了通过软件和外部触发信号触发 DAC 转换之外,还可以通过定时器触发 DAC 转换。

4 p# \9 P7 N1 \* e8 y) B
TIM6 是一种基本定时器,主要用于触发 DAC 转换。
$ N6 S# n% c" S) U: n. c' M
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。
/ s2 B) t# ?  A3 Q% S% T
1.png
1.3 DMA 功能

; m1 u6 J4 ~" j
STM32 微控制器配有一个多通道 DMA 模块。DAC 通道连接到独立的 DMA 通道。对于STM32F0xx 微控制器,DAC 通道会与 DMA 的通道 3 相连接。
& g8 D. C, Y7 N$ X2 v' M3 n( H
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU负责将数据从 RAM 传输到 DAC。
/ h0 K8 c2 T0 O$ Y7 W7 I$ l) f
1.png
5 ~& {: t; }4 e7 }: j# S: Z
使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。

" h1 X) @2 ]: F. \$ S5 F: n
1.png

3 \2 S3 c3 r6 n$ e6 |! [
1.4 DMA 下溢错误

5 }9 g7 i; m! [$ c' s) E
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。
! O% d4 T1 X/ `  z; i* D

* U6 ?4 n% S" G+ F3 Y
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。

1 t1 `- O) `* h
" b4 d9 c  L4 E1 n% D
..............

- m1 `2 @* J: y! h
想了解更多,请下载原文阅读
! T0 `5 T. E7 g0 P) T
+ ]  k* t* K0 s3 O
  }. v1 o6 ~; q  @. @6 K
收藏 评论1 发布时间:2019-3-22 11:20

举报

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