0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DFSDM模块的配置

STM32单片机 来源:STM32单片机 作者:STM32单片机 2022-10-28 10:44 次阅读

1、引言

客户在使用 STM32H743 的 DFSDM 模块时,配置有误。于是协助客户按照下面的方法进行配置并分享之。

2、参数的计算

使用 NUCLEO-H743 开发板进行测试。由于客户需要 16KHz 音频数据, 24bits 的音频数据,因此配置如下。

PDMMic -> PDM data -> 滤波器类型 -> 过采样率 Fosr(滤波器)-> 过采样率 Isor(积分器)-> 右移位器 -> 偏移补偿 -> 采样数据

Clock out (CKOUT)的计算

Fs= Fclockout/( Fosr*Iosr)

Fs= 16kHz 音频数据

Fosr:滤波器过采样率,也就是抽取率,在这里取 128

Iosr:积分器过采样率,在这里取 1

则 Fclockout = 2.048MHz

相应的寄存器配置可以参考下图:

17241b22-55e8-11ed-a3b6-dac502259ad0.png

174a3de8-55e8-11ed-a3b6-dac502259ad0.png

2. SAI clock 的计算

(FSAIclock/ Divider) =Fclockout => FSAIclock = Fclockout * Divider

FSAIclock:当时钟源选 audio clock 时,即 STM32CubeMX 中 Output clock:

selection-> source of output clock is audio clock.

Divider : Audio clock 经过的预分频比,在下面的配置中取 7(见图 3.

Output Clock 配置)

Fclockout:为 2.048Mhz

则 FSAIclock = (Fclockout * Divider) = 2.048 * 7 = 14.336MHz

因此下图中的 SAI clock 需要配置到 14.336Mhz。

滤波器阶数 FORD:取 4,即 sinc Order : sinc 4 filter type.

3. 右移位数的计算

B = N*log2(M) +Bin

B:中间变量位宽

N:Ford,滤波器阶数,此例中取 sinc 4 阶。

M:滤波器过采样率,抽取率,此例中取 128 ,见图 4Channel 配置,Fosr。Bin:积分器过采样率,滤波器输入位宽,此例中取 1

位宽 = 4* log2(128)+1 = 4*7+1 =29(位)

因此积分器处理后的数据需要右移 5 位,然后变为 24 位。STM32CubeMX 中 Right

Bit Shift = 0x5.

也可以参考下表来规划右移位:

190a8aca-55e8-11ed-a3b6-dac502259ad0.png

3、STM32CubeMX 的配置

根据上面的计算值配置时钟参数。SAI clock 配置为 14.336Mhz。

1945854e-55e8-11ed-a3b6-dac502259ad0.png

19c1ce56-55e8-11ed-a3b6-dac502259ad0.png

19e2dfe2-55e8-11ed-a3b6-dac502259ad0.png

1a23f91e-55e8-11ed-a3b6-dac502259ad0.png

1a64b8aa-55e8-11ed-a3b6-dac502259ad0.png

1a8d3122-55e8-11ed-a3b6-dac502259ad0.png

1ac29c86-55e8-11ed-a3b6-dac502259ad0.png

3、小结

关于DFSDM 模块寄存器的配置,需要计算合适的参数值方可进行。需要时可以参考上面内容来操作。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2485

    浏览量

    46533
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117745
  • STM32H743
    +关注

    关注

    0

    文章

    24

    浏览量

    1353

原文标题:工程师笔记|DFSDM 模块的配置

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于STM32L476 DFSDM时钟配置的疑问求解

    stm32l4 配置DFSDM 时钟只能来之 DFSDM_CHANNEL_OUTPUT_CLOCK_SYSTEM不能来自DFSDM_CHANNEL_OUTPUT_CLOCK_AUDIO
    发表于 03-08 06:26

    DFSDM如果使用内部并行数据输入,输入数据的最大频率是多少?

    DFSDM如果使用内部并行数据输入,例如直接写输入寄存器或者DMA写入,在这种场景中,输入数据的最大频率是多少?这个频率与DFSDM模块的工作时钟是什么关系?
    发表于 03-11 07:56

    使用dfsdm单个麦克风录音出现录音重复问题,怎么解决?

    在使用dfsdm单个麦克风录音出现录音重复(同一个数据包会出现两次,丢掉的数据报就是那个重复的。),可以使用一个麦克风吗,帮忙看下配置是不是正确。 //回调函数如下 void
    发表于 04-01 06:14

    使用STM32H750 DFSDM滤波,输出与设置不一致的原因?

    ; HAL_DFSDM_ChannelInit(chn); HAL_DFSDM_FilterConfigRegChannel(flt, DFSDM_CHANNEL_1, DFSDM
    发表于 04-09 07:17

    只想采集20-2000Hz以内的音频信号改怎么配置DFSDM

    只想采集20-2000Hz以内的音频信号改怎么配置DFSDM配置44.1K代码如下:void DFSDM_Init(void){/* Initialize channel 2
    发表于 04-24 08:00

    STM32中的DFSDM应用介绍

    前言STM32超低功耗系列中基于Cortex M4内核的STM32L4系列芯片内部集成了DFSDM数字滤波模块,配合Σ-Δ器件的使用,可进行高精度、高速率的AD测量。这里就DFSDM做些基本介绍,并
    发表于 04-25 10:42

    DFSDM外设的代码生成问题求解

    附带的简单项目包含一个配置 DFSDM 外围设备的 ioc 文件:通道 0 和通道 1;通道 0 的滤波器 0 和通道 1 的滤波器 1。此外,我还配置了 TIM6;但这与问题无关。这一切都基于一个
    发表于 12-06 07:18

    STM32L4 DFSDM为什么值在大约高1到2位中是非线性的?

    某个地方的溢出。测试输入为直流,在本例中使用 AMC3336 TI 调制器。我在这里错过了什么?设置:static void MX_DFSDM1_Init(void){/* USER CODE
    发表于 12-07 07:19

    请问DFSDM是否限制SYSCLK频率?

    我正在尝试使用 CubeMX 为STM32H7A3VITx和外部 10MHz 曼彻斯特编码调制器设置 DFSDM 时钟。由于曼彻斯特要求 DFSDM 时钟至少比调制器时钟高 6 倍,因此最小时钟频率
    发表于 01-05 06:27

    如何在CubeMX中设置带定时器的DFSDM

    在 CubeMX 中,我试图将STM32L4 研讨会中描述的 DFSDM 设置放在一起:4.6 New peripherals - DFSDM - App example 2 (PT100
    发表于 01-05 08:02

    在“DFSDM 配置器”表中,B6单元格上的“采样频率”是什么意思?

    在“DFSDM 配置器”表中,B6 单元格上的“采样频率”是什么意思?我正在设置时钟频率(MEMS 麦克风为 2~3.25MHz),结果采样率与实际数据图相似。 我想确保我正确理解了参数。
    发表于 01-06 06:35

    AN4957_STM32F413、F423的DFSDM使用方法

    AN4957_STM32F413、F423的DFSDM使用方法
    发表于 11-21 08:11 0次下载
    AN4957_STM32F413、F423的<b class='flag-5'>DFSDM</b>使用方法

    浅谈DFSDM 模块配置

    DFSDM 模块配置
    的头像 发表于 09-28 17:36 533次阅读
    浅谈<b class='flag-5'>DFSDM</b> <b class='flag-5'>模块</b>的<b class='flag-5'>配置</b>

    DFSDM时钟配置问题

    电子发烧友网站提供《DFSDM时钟配置问题.pdf》资料免费下载
    发表于 09-19 14:58 0次下载
    <b class='flag-5'>DFSDM</b>时钟<b class='flag-5'>配置</b>问题

    STM32使用片内外设DFSDM的应用问题

    DFSDM是digitalfilter for sigma-delta modulators的缩写,即基于∑∆调制器的滤波器,是个数字外设,常用于对外部模拟信号的数据处理。
    发表于 03-04 11:27 295次阅读
    STM32使用片内外设<b class='flag-5'>DFSDM</b>的应用问题