|
AN4957 应用笔记 如何在STM32F413/423系列器件上同步DFSDM滤波器以及编程脉冲跳频7 A. Q- }0 G/ ]$ L& }5 Z1 w7 W( q ( a" _- G D, \7 B7 J 0 \9 ~' v# y0 y X$ { 前言 STM32F413/423系列微控制器在DFSDM(Sigma-Delta调制器的数字滤波器)的顶层实现了 专门的机制,可支持以下功能: • 同步两个DFSDM滤波器4 i9 {) I+ M) [: D • 脉冲跳频5 ]$ m- [$ d) v1 N q" H 脉冲跳频是指器件可以动态调整每个麦克风的PDM(脉冲密度调制)延迟,而不必增加任何5 N7 @' o9 M- Y# J( G- f 外部延迟线。使用脉冲跳频功能的音频应用包括波束成形和声源定位。 本应用笔记的目的是描述如何在STM32F413/423系列器件上同步DFSDM滤波器以及如何编程( O0 C0 G0 Q, x7 F/ t 脉冲跳频。6 d, p) o/ i+ ?9 H2 `% W 本应用笔记详细描述:9 x9 K( K! i7 V% r • 如何配置脉冲跳频机制来将音频时钟和数据注入DFSDM输入 • 如何配置TIM3和TIM4定时器来生成请求的脉冲以延迟一个或多个PDM流1 B9 m9 M: f* Q" ^1 n • 如何构建一个序列来同步两个DFSDM滤波器, F6 i2 R1 \8 E) S2 e1 ` • 如何构建一个序列来生成脉冲 本应用笔记假设读者熟悉STM32 MCU的DFSDM和TIMER,如意法半导体的网站 www.st.com提供的STM32F413/423 基于 ARM® 的高级 32 位 MCU参考手册(RM0430)中所述。/ k" i6 x9 [* ?) F+ }( D 相关固件 • 用于STM32F4系列产品的STM32CubeF4嵌入式软件( i" w6 y. L5 {& m 1 在 在DFSDM 顶层实现的STM32F413/423 系列机制概述- P8 F& W& ?+ M& `( D 图 1显示了在DFSDM顶层实现的机制可以同步两个DFSDM滤波器和脉冲跳频用例。 如 图 1所示,MCHDLY(多通道延迟)模块既是DFSDM滤波器同步的一部分,也是脉冲跳频用( M6 Q+ Z) e/ m. U( b( g& K0 O 例的一部分。对于脉冲跳频用例,TIM3和TIM4定时器也是实现机制的一部分。8 B4 P& v0 j2 K0 b) [ % p4 J+ a2 [* X , j$ k9 T! v' Y+ }9 c/ o 2 DFSDM 滤波器同步配置 2.1 DFSDM 滤波器同步的一般性描述 STM32F413/423系列器件有两个DFSDM:; ^+ x) S0 o$ M/ q9 k8 M" [8 h0 l • DFSDM1:包括四个通道和两个滤波器7 Y) h0 H' _5 Q • DFSDM2:包括八个通道和四个滤波器。 每个DFSDM都可以与第一个DFSDM滤波器(DFSDM_FLT0)同步开始转换,但有些情况需要同% I* Y- q# o$ R 步DFSDM1和DFSDM2滤波器。/ J& g- R6 a4 D' j; z* H 为同步DFSDM1和DFSDM2滤波器,用户必须遵循以下步骤:* w9 t4 I$ v) I8 L: w 1. 使用外部时钟源和DFSDM音频源作为输入时钟1 \: p: K( t/ v; i- I5 F7 y! m 2. 禁用DFSDM2时钟输出(dfsdm2_ckout)9 t1 E* u: _! M7 c1 ?( U# ?' g& R2 u 3. 对每个DFSDM进行编程 4. 开始滤波器转换 5. 启用DFSDM2时钟输出(dfsdm2_ckout)1 P9 u* k; S$ q: K 通过执行上述步骤,可以同步开始两个DFSDM滤波器的转换。 , ^3 d$ Y) v, _4 D; C 6 g$ f. w+ V& V& a' t 2.2 DFSDM 滤波器同步的编程序列% e% ^% ~. [- I4 m* n 要遵循的序列主要取决于MCHDLY模块,如下所示:' j; U' z' M, J+ R# R" {1 m 1. 禁用DFSDM2时钟输出(dfsdm2_ckout)信号(SYSCFG_MCHDLYCR.BSCKSEL设置为0 - M27) 2. 启用外部DFSDM输出时钟3 A* n/ n' [5 ?$ P! t' |: w 3. 配置DFSDM以选择外部CKINx作为输入时钟 4. 配置DFSDM以从相同通道的引脚获取通道数据 5. 输出DFSDM2外部输出时钟(dfsdm2_ckout)至DFSDMx CKOUT焊盘(可选):% v; W9 \! m3 U: R0 z' m0 K/ Z# U SYSCFG_MCHDLYCR.DFSDM1CKOSEL(M1)和SYSCFG_MCHDLYCR.DFSDM2CKOSEL) Y( P0 N* P! T1 Y (M2)设置为1 6. 设置DFSDM2时钟输出(dfsdm2_ckout)路径为CKINx,具体取决于以下使用的6 \, b6 U2 L0 G8 a5 b( K DATINx:' j" l+ K' ?2 ~. x3 g5 b& _ a) 配置以下DMx开关 – DFSDM1:SYSCFG_MCHDLYCR. DFSDM1_CK02SEL设置为0以注入DFSDM2 时钟输出(dfsdm2_ckout)至CKIN0(DM2) – DFSDM1:SYSCFG_MCHDLYCR. DFSDM1_CK02SEL设置为1以注入DFSDM2 时钟输出(dfsdm2_ckout)至CKIN2(DM2)+ V9 {( I$ u: V3 q4 N# N – DFSDM1:SYSCFG_MCHDLYCR. DFSDM1_CK13SEL设置为0以注入DFSDM2 时钟输出(dfsdm2_ckout)至CKIN1(DM1)' X% e2 e- I) o' N; u" ` – DFSDM1:SYSCFG_MCHDLYCR. DFSDM1_CK13SEL设置为1以注入DFSDM2 时钟输出(dfsdm2_ckout)至CKIN3(DM1) ( p. o& q' L, `! Z .....9 ~. J9 @7 ]2 `0 ^' s- G9 c; d , M" |3 |9 J8 Y: O- t E 阅读更多内容,请下载文档: 4 g" Y4 f1 t; B! ~, g' e* P 下载地址1>> 下载地址2>>6 Q; p v n5 h# X' f |
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32F4中文用户手册
STM32F400、STM32F402 Cortex-M4超值单片机
SPI 高温读错最后一位?STM32F42xx 官方根治方案
微信公众号
手机版