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

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

【中文文档】AN3126_在STM32微控制器家族中使用DAC生成音频...

[复制链接]
STMCU-管管 发布时间:2019-4-1 09:49
前言
7 g! P" T- {# b

! m5 W1 @6 U  M: b. k6 K" \本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F10xx 微控制器系列产品中。 3 V3 m7 X6 v. n/ g$ k

- Q# V5 O0 u$ s6 ]3 A- e数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。
- H  G. w5 g6 Q4 I) d6 y7 W9 e3 C  E6 e- a* t% B. }  A. L* t
STM32 DAC 模块是 12 位字转换器,带有两个支持立体声音频的输出通道。   b3 v! f" ^1 ?+ P! ^4 t! W2 C

( x, c; s1 Q  i' w7 O! c% cDAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器 " t4 X2 K) L. I$ k) n

! O3 V2 F# o3 m0 GSTM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。 ; _5 Y% }2 S  I7 [

' f6 e; K: |/ s7 p本应用笔记主要包括两部分内容: ( [& F. t: i1 L5 n. z; I" p
● 第 1 节介绍 STM32 DAC 模块的主要特性。 - k- m( n# ]: |6 t' ^  L' @
● 第 2 节介绍了两个示例。
/ e/ l: {! g5 j1 t+ C9 t) S   — 在第一个示例中,DAC 用于生成正弦波形。
3 p, a2 I2 ~: u* Q  b! \  — 在第二个例中,DAC 用于通过 .WAV 文件生成音频。- g! l3 [" G. U$ R0 q9 `. z

* b+ b+ R0 y4 H+ R6 w2 S: G1 DAC 主要特性
5 e* }8 }# n' [' t5 I; E! B7 u+ u  Q$ c. S
1.1 数据格式 - s  H1 j& a; f3 E5 m

' L0 G3 e% V0 o. n5 hDAC 可以使用以下三种整型格式的数据:8 位右对齐、12 位右对齐以及 12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。/ Y" M/ U+ P; ]+ ]

1 M$ J# r( a, |4 E+ ?- V
1.png
2 O- _/ q6 d1 U  C
1.2 双通道模式
5 L$ t) c8 [0 b8 Z$ H  Y
DAC 有两个输出通道,每个通道各有一个转换器。在双 DAC 通道模式下,转换可以单独进行,也可以同时进行。

7 O$ R( _0 w# c( w& B6 G' f  [, Q
当 DAC 通道由同一个触发源触发后,两个通道将组合在一起同步执行更新操作,转换也会同时进行。

+ F1 a& n5 F9 \; J  s9 l% w2 x
1.3 专用定时器
3 }; J, W/ b; ^$ Q0 h: K$ t* c% c
除了通过软件和外部触发器触发 DAC 转换之外,还可以通过不同的定时器触发 DAC 转换。

8 U' Y& K$ b8 N3 ~8 f* c8 ~4 u; f/ ^
TIM6 和 TIM7 是两个基本定时器,主要用于 DAC 触发。

. t' V# B0 U4 ?- P8 k
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。

, H+ R6 U! i! m1 K% a3 V* w
1.png
7 t, U3 k5 n4 x: g3 E( r  G
1.4 DMA 功能
) o( F; O/ o3 n+ `. h
STM32 微控制器配有一个多通道 DMA 模块。每个 DAC 通道都连接到独立的 DMA 通道。对于 STM32F100x 微控制器,DAC 通道 1 连接到 DMA 通道 3,DAC 通道 2 连接到 DMA通道 4。

  M) s* I) e1 b- K6 Y
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU 负责将数据从 RAM 传输到 DAC。

3 ]+ r% f0 G6 Q. z8 ], o% q$ h! U$ j/ Q
1.png
使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。
5 Q8 b4 t- @0 o+ D. p2 T5 f
1.png
1.5 DMA 下溢错误

4 u4 N; w- o8 B9 d
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。
4 o: r- T( b! ?/ \; {
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。

6 ~0 a; @2 Q, O( T& k' T# G7 [  E
1.6 白噪声发生器
7 W% W( U! T; ]/ i  t7 S0 ^
1.6.1 定义

* f% V$ D7 G) i+ }/ N" ~1 d* d: W2 f2 \
STM32 微控制器 DAC 为用户提供了一个伪随机码发生器。根据移位寄存器上使用的节拍数,在序列重复前,可生成具有最多 2n-1 个数的序列。

5 e& C# Q( f, @
1.png

& B6 p( x$ I! g3 y0 A, K5 `
............
+ o4 n5 a4 O# q. {6 X4 g
想了解更多,请下载原文阅读

; J( O# F, [: f7 N) V
收藏 1 评论2 发布时间:2019-4-1 09:49

举报

2个回答
Kevin_G 回答时间:2019-4-1 15:57:31
收藏
单片机爱好者 回答时间:2019-5-26 23:13:24
支持~~~~~~~~~~~

所属标签

相似分享

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