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

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

[复制链接]
STMCU-管管 发布时间:2019-3-22 11:20
使用STM32F0xx系列的DAC生成音频和特定波形
- y4 I; _1 v4 }! c% ~: c7 b# B( y( ^6 U9 T  B* V9 t5 o9 w+ T' e. R
简介
3 d$ w) f+ T2 L- Z# e
- E0 Z/ Z* ]2 H2 e7 A/ _' U4 B
本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F0xx 微控制器系列产品中。
1 s5 j% u+ n3 c
# j' o* K' G9 K( |, ~" Z/ J; x) |
数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。 0 N# }: L; t* p
7 }6 |& z0 }* u
STM32 DAC 模块是 12 位数据转换器,带有一个支持单声道音频的输出通道。
/ _4 x9 K, Y% Y2 o
5 ], [' M7 n# ]  tDAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器。 ; y% g9 w+ ?  K1 A! r4 S
1 X4 ]3 E0 [) V$ d' _- _. u
STM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。本应用笔记主要包括两部分内容:
* E+ H7 R9 X6 K; @● 第 1 节介绍 STM32 DAC 模块的主要特性。
) z4 W. ~+ i3 H6 u5 p5 l5 ^$ u" Y● 第 2 节介绍两个示例。
3 W$ I5 K! C( |- q. U- B5 o   — 在第一个示例中,DAC 用于生成正弦波形。
6 b5 {9 J, f2 h3 ]; T# |# q   — 在第二个示例中,DAC 用于通过 .WAV 文件生成音频。
# h7 s: S- s/ t( o8 K: G$ `
! h8 x3 M1 F; a' U% z1 DAC 主要特性
$ V; F' z; U, }9 x/ i, l5 {

! ~+ f. o$ ~. G0 }, P9 v, E. d0 q1.1 数据格式 ' h7 U4 g# Q) |: [. N+ r

7 H1 X/ D1 Z( R5 R0 }5 rDAC 可以使用以下三种整型格式的数据:8 位右对齐、12 右对齐以及12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。
( o; V( `+ [# t* d& x% m& @! F
3 [1 Q. {4 {3 _$ t/ s
1.png

, K! `5 j, b) Q7 \5 O, x4 P" i
1.2 专用定时器
" ?; k" D$ \( W: Y# B; E
除了通过软件和外部触发信号触发 DAC 转换之外,还可以通过定时器触发 DAC 转换。

( W6 X9 n; G+ \0 s' k5 d$ W% I
TIM6 是一种基本定时器,主要用于触发 DAC 转换。

+ m- G8 D0 [9 _( v* E; b' l) Y1 I
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。

5 Q& v/ h' |  x1 H; t% b+ S
1.png
1.3 DMA 功能
; Z. F0 }5 V  u* h
STM32 微控制器配有一个多通道 DMA 模块。DAC 通道连接到独立的 DMA 通道。对于STM32F0xx 微控制器,DAC 通道会与 DMA 的通道 3 相连接。
6 `! l' t0 `3 _  a
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU负责将数据从 RAM 传输到 DAC。
9 f! c% Y. N; P+ R6 T! ^% E! E: ?
1.png

5 w" C, d  i' l
使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。
7 T, r7 V$ s! N
1.png
, C! X  p7 {8 H# e
1.4 DMA 下溢错误

! x. C! b! _; Y
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。
! l7 a+ b& W5 t7 u  l9 R% Y& H
( q* m1 }9 {/ @% |' z
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。
, s9 M* o) j  {5 G

3 i* i/ w& B; d: U9 r
..............

6 N3 A$ z( l$ @- _) X  H
想了解更多,请下载原文阅读

: E- O' e& A6 ^3 J( h

0 J. L4 K; k: o) C$ f- o6 V

- j2 B1 @4 U* g) F2 j" y: U
收藏 评论1 发布时间:2019-3-22 11:20

举报

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