AN4957 应用笔记' M* }/ {9 A) X& r7 P( J 如何在STM32F413/423系列器件上同步DFSDM滤波器以及编程脉冲跳频9 r- K. ^7 J0 _0 b- [4 e& i- a ; P% d& V9 Z1 |3 _3 d: ]; Y 前言 STM32F413/423系列微控制器在DFSDM(Sigma-Delta调制器的数字滤波器)的顶层实现了 专门的机制,可支持以下功能: • 同步两个DFSDM滤波器4 ^: ?5 `% i1 _# m • 脉冲跳频 脉冲跳频是指器件可以动态调整每个麦克风的PDM(脉冲密度调制)延迟,而不必增加任何) j( R2 U9 d% o 外部延迟线。使用脉冲跳频功能的音频应用包括波束成形和声源定位。 本应用笔记的目的是描述如何在STM32F413/423系列器件上同步DFSDM滤波器以及如何编程) A. a1 q! Y$ J. J. x9 B0 D 脉冲跳频。 本应用笔记详细描述: • 如何配置脉冲跳频机制来将音频时钟和数据注入DFSDM输入& _( ~1 l8 X+ q9 h3 E • 如何配置TIM3和TIM4定时器来生成请求的脉冲以延迟一个或多个PDM流( @7 u& s$ T1 R1 j5 @& S1 m • 如何构建一个序列来同步两个DFSDM滤波器 • 如何构建一个序列来生成脉冲, M3 Z _, M5 h2 R 本应用笔记假设读者熟悉STM32 MCU的DFSDM和TIMER,如意法半导体的网站 www.st.com提供的STM32F413/423 基于 ARM® 的高级 32 位 MCU参考手册(RM0430)中所述。7 x6 }" K% G% ? 相关固件! j! s: `8 @2 R2 q. K( O8 U6 q+ s4 [ • 用于STM32F4系列产品的STM32CubeF4嵌入式软件 8 {: j+ L, M: s! K% B 1 在 在DFSDM 顶层实现的STM32F413/423 系列机制概述 图 1显示了在DFSDM顶层实现的机制可以同步两个DFSDM滤波器和脉冲跳频用例。 如 图 1所示,MCHDLY(多通道延迟)模块既是DFSDM滤波器同步的一部分,也是脉冲跳频用" M* f# e+ o5 K$ D 例的一部分。对于脉冲跳频用例,TIM3和TIM4定时器也是实现机制的一部分。 ' F2 ^: k$ U% k* _+ ]0 L : G8 Y2 D0 T# q8 V/ O4 j% n) q $ B5 w3 v! g; [% c. U _" r 2 DFSDM 滤波器同步配置 2.1 DFSDM 滤波器同步的一般性描述; { [! [3 B/ ]( T" y' {' J6 J, S STM32F413/423系列器件有两个DFSDM: • DFSDM1:包括四个通道和两个滤波器 • DFSDM2:包括八个通道和四个滤波器。 每个DFSDM都可以与第一个DFSDM滤波器(DFSDM_FLT0)同步开始转换,但有些情况需要同$ F& \3 h5 P5 l4 Z! \8 n 步DFSDM1和DFSDM2滤波器。# I# U0 |# Q- K* P6 N 为同步DFSDM1和DFSDM2滤波器,用户必须遵循以下步骤:9 B0 t& b1 j8 U& q! ?! p 1. 使用外部时钟源和DFSDM音频源作为输入时钟 2. 禁用DFSDM2时钟输出(dfsdm2_ckout). @6 R M2 t7 E 3. 对每个DFSDM进行编程, P! X, s J% J 4. 开始滤波器转换8 I' Z- |; I, |- s/ Q 5. 启用DFSDM2时钟输出(dfsdm2_ckout) 通过执行上述步骤,可以同步开始两个DFSDM滤波器的转换。1 I. G9 P2 b9 c* p1 z* v' g ! ]6 q5 L% X Z. [5 |; v, y 2.2 DFSDM 滤波器同步的编程序列1 T. E' O5 Q$ ~) U& v 要遵循的序列主要取决于MCHDLY模块,如下所示:. ~0 [5 K; @# a; U! N+ T8 i8 Y 1. 禁用DFSDM2时钟输出(dfsdm2_ckout)信号(SYSCFG_MCHDLYCR.BSCKSEL设置为0 - M27) 2. 启用外部DFSDM输出时钟6 ~0 ~; B! m. Y9 I3 y7 Z. |, | 3. 配置DFSDM以选择外部CKINx作为输入时钟 4. 配置DFSDM以从相同通道的引脚获取通道数据 5. 输出DFSDM2外部输出时钟(dfsdm2_ckout)至DFSDMx CKOUT焊盘(可选): SYSCFG_MCHDLYCR.DFSDM1CKOSEL(M1)和SYSCFG_MCHDLYCR.DFSDM2CKOSEL+ A% x1 m4 [2 ?+ e (M2)设置为1 6. 设置DFSDM2时钟输出(dfsdm2_ckout)路径为CKINx,具体取决于以下使用的 DATINx:5 H( e2 F* v; c8 E8 u a) 配置以下DMx开关 – DFSDM1:SYSCFG_MCHDLYCR. DFSDM1_CK02SEL设置为0以注入DFSDM2! D) u# Q! B( x S 时钟输出(dfsdm2_ckout)至CKIN0(DM2); R& E5 P1 w w3 l+ w – DFSDM1:SYSCFG_MCHDLYCR. DFSDM1_CK02SEL设置为1以注入DFSDM29 M' E9 ?. p' E5 o 时钟输出(dfsdm2_ckout)至CKIN2(DM2)- T8 Q- q) \9 ?0 S; D – DFSDM1:SYSCFG_MCHDLYCR. DFSDM1_CK13SEL设置为0以注入DFSDM2 时钟输出(dfsdm2_ckout)至CKIN1(DM1) – DFSDM1:SYSCFG_MCHDLYCR. DFSDM1_CK13SEL设置为1以注入DFSDM2 时钟输出(dfsdm2_ckout)至CKIN3(DM1) 6 W7 K% {5 Z0 i. N# p1 x k4 k ..... $ Y, p: M4 B2 r( s: i1 l1 A% x. y 阅读更多内容,请下载文档: 下载地址1>> 下载地址2>> |
STM32固件库分享,超全系列整理
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32F4中文用户手册
基于STM32F407的FreeRTOS阶段性的总结(13)
STM32F400、STM32F402 Cortex-M4超值单片机
基于STM32F407的FreeRTOS获取各任务运行时间及占用情况(4)
基于STM32F407的FreeRTOS任务的挂起与恢复(3)
基于STM32F407的FreeRTOS任务的创建与删除经验分享(2)
基于STM32F407的FreeRTOS环境搭建经验分享(1)