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

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

[复制链接]
STMCU-管管 发布时间:2019-3-22 11:20
使用STM32F0xx系列的DAC生成音频和特定波形
5 `' G/ }8 T3 d' B: f  j. ^8 t) @+ g2 [) V' T9 k' s. b  O
简介 ; [; S* Q( p& X8 y+ c4 k* n0 ~- e

  s* u, k5 n& i, d$ g8 R9 C4 v, l本应用笔记举例介绍了使用数模转换器 (DAC) 外设生成音频输出信号的过程,该 DAC 外设内嵌在 STM32F0xx 微控制器系列产品中。 & T4 G: E! U. z: B1 @
" C3 o3 {( o; V$ c+ E2 ^
数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。
' `* R; V. P3 C6 w+ V: b" q8 }3 l, M, f. i# J- p! ^
STM32 DAC 模块是 12 位数据转换器,带有一个支持单声道音频的输出通道。
, e% k5 B7 o- T3 y5 L% i$ E1 v, L+ g6 {& @; D/ q
DAC 可用于多种音频应用中,例如:安全警报、蓝牙耳机、发声玩具、答录机、人机接口以及低成本的音乐播放器。 : [1 @. x4 r* e( f. E

% y6 \& U5 ]8 v) B  rSTM32 DAC 还可实现许多其他模拟用途,如模拟波形产生和控制工程。本应用笔记主要包括两部分内容: ( f8 z# }4 D, {4 F( E. T5 H
● 第 1 节介绍 STM32 DAC 模块的主要特性。 " v* n2 ?6 q, o) W' }$ f9 z  B4 ~" u
● 第 2 节介绍两个示例。
1 |& o3 h2 `2 K! M! {, a6 [   — 在第一个示例中,DAC 用于生成正弦波形。
8 y. Z* N; w$ q2 P. P5 i$ R& I   — 在第二个示例中,DAC 用于通过 .WAV 文件生成音频。" P0 v( F* G& r' j% ?$ M

, Q0 n0 T- Y  ~7 }1 DAC 主要特性
2 c4 U7 g8 X+ l" I9 Z8 M

/ W' B- U0 ^! ^6 K9 {$ l6 I1.1 数据格式 ! u2 @- ^7 V) F* y& \$ P! N1 }

. M3 I) s) X% u) w8 sDAC 可以使用以下三种整型格式的数据:8 位右对齐、12 右对齐以及12 位左对齐。12 位值的范围在 0x000 到 0xFFF 之间,其中 0x000 为最小值,而 0xFFF 为最大值。4 ^# f6 ]- C5 l/ k1 y  j# t
' N; e2 N' b+ h' w$ a% x, `" v5 P
1.png

7 @6 z% B+ U3 }# ~, G8 e9 W5 T
1.2 专用定时器
! y4 m$ u0 g0 O- A. e
除了通过软件和外部触发信号触发 DAC 转换之外,还可以通过定时器触发 DAC 转换。

0 {" q/ ?# j7 c0 C7 l
TIM6 是一种基本定时器,主要用于触发 DAC 转换。

8 X/ P1 Y% T: t' z' {" u0 D
每当 DAC 接口在所选的定时器触发输出 (TIMx_TRGO) 上检测到上升沿时,DAC_DHRx 寄存器中存储的最后一个数据即会转移到 DAC_DORx 寄存器中。
9 t; C. u* u; R+ j7 o
1.png
1.3 DMA 功能
4 Y3 K  \8 K# H4 t+ D
STM32 微控制器配有一个多通道 DMA 模块。DAC 通道连接到独立的 DMA 通道。对于STM32F0xx 微控制器,DAC 通道会与 DMA 的通道 3 相连接。
! E+ S* t6 p4 x/ {0 p- A5 q5 m
未使用 DMA 时,CPU 用于向 DAC 提供模式波形。通常,波形保存在存储器 (RAM) 中,CPU负责将数据从 RAM 传输到 DAC。
3 K( d& }* l" j$ O7 E  T
1.png
3 Y3 D+ v* O( s
使用 DMA 时,系统的整体性能会因内核的释放而提升。此时,数据直接通过 DMA 从存储器传输到 DAC,无需 CPU 执行任何操作。这样节省的 CPU 资源可供其它操作使用。
, Z" E. t( b3 @' s: y: r4 ~
1.png

' h3 O0 G" C" f# r! {* A& ~
1.4 DMA 下溢错误

6 r$ |  Z7 C& R# G
DMA 向 DAC 提供模式波形时,有时会出现 DMA 传输速度比 DAC 转换速度快的情况。此时,DAC 会检测到部分模式波形遭到忽略而不予转换。它随后会将“DMA 下溢错误”标志置 1。

9 k( \$ m+ x! A0 W9 B% z7 l

: @, |8 g, ]+ u5 u" k' G! t
可以使用触发定时器通过共享 IRQ 通道处理下溢错误,在 DAC 不通过 TIM6 触发时也可通过专用中断来处理。
4 r/ u, _/ d$ r( T% M8 M
% y2 u! o1 E( z. R
..............

. C1 `& L0 ?, N7 B$ e
想了解更多,请下载原文阅读

; }- Z' w  O" Z
' X- c% A& p5 ]
! c+ v4 q  \/ J8 C+ c' i
赞 收藏 评论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 手机版