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

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

3天内不再提示

浅谈DFSDM 模块的配置

jf_pJlTbmA9 来源:STM32单片机 作者:STM32单片机 2023-09-28 17:36 次阅读

1、引言

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

2、参数的计算

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

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

1)Clock out (CKOUT)的计算

Fs= Fclockout/( Fosr*Iosr)Fs= 16kHz 音频数据Fosr:滤波器过采样率,也就是抽取率,在这里取 128Iosr:积分器过采样率,在这里取 1则 Fclockout = 2.048MHz相应的寄存器配置可以参考下图:

1666884073498360.png

1666884083543264.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. OutputClock 配置)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) +BinB:中间变量位宽N:Ford,滤波器阶数,此例中取 sinc 4 阶。M:滤波器过采样率,抽取率,此例中取 128 ,见图 4Channel 配置,Fosr。Bin:积分器过采样率,滤波器输入位宽,此例中取 1位宽 = 4* log2(128)+1 = 4*7+1 =29(位)因此积分器处理后的数据需要右移 5 位,然后变为 24 位。STM32CubeMX 中 RightBit Shift = 0x5.也可以参考下表来规划右移位:

1666884128509110.png

3、STM32CubeMX 的配置

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

1666884158428161.png

1666884166391196.png

1666884174972088.png

1666884184509489.png

1666884192543319.png

1666884200327656.png

1666884220746165.png

3、小结

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

来源:STM32单片机

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理


审核编辑 黄宇

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

    关注

    161

    文章

    7799

    浏览量

    178012
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120257
  • STM32
    +关注

    关注

    2270

    文章

    10896

    浏览量

    355774
收藏 人收藏

    评论

    相关推荐

    AMC1303M2520所输出的信号经过STM32的DFSDM外设进行采集滤波后,得出的数据转换成波形与实际波形不一致怎么解决?

    DFSDM外设进行采集滤波后,所得出的数据转换成波形与实际波形完全天壤之别,所以在此进行求助。 1.第一个问题是,我们计划用AMC1303M2520来采集40KHZ的正弦信号的方案是否是可行的呢? 2.第二个问题是,我们目前在DFSDM
    发表于 12-06 06:05

    LORA模块的安装与配置指南

    以下是LoRa模块的安装与配置指南: 一、安装步骤 硬件连接 : 将LoRa模块与主机(如PC或其他具有UART接口的设备)连接起来。通常,LoRa模块会配备相应的接口和连接线,确保正
    的头像 发表于 10-31 17:37 1938次阅读

    STM32L4的DFSDM外设采集PDM数字MIC后的数据

    在采集48KHZ 16bit 2CH的MIC数据时。在配置DFSDM外设时。输入MIC的时钟3.072Mhz,滤波器阶数sinc4,过采样率64,积分器1,右移位1,此时DFSDM的滤波器输出
    发表于 08-30 10:15

    WiFi模块网络配置基本设置

    WiFi模块网络如何配置?WiFi模块网络配置基本设置如下:        1、网络配置与AT命令        请求串口或其他交互接口输入
    的头像 发表于 05-31 10:32 636次阅读

    使用STM32H7的DFSDM获取注入通道值时的参数不匹配是怎么回事?

    如下语句所示,在获取注入参数的时候,第二个参数应该配置为什么值,函数中也没有提及到,按我现在的配置,报错通道的类型不匹配。 HAL_DFSDM_FilterGetInjectedValue( DfsdmFilterHandle,
    发表于 05-31 06:23

    使用STM32H7的DFSDM模块对NSI1306M25电信号进行采集遇到的几个疑问求解

    使用STM32H7的DFSDM模块对NSI1306M25电信号进行采集,有几个问题想请教一下大家 问题1:信号采集过程,需要配置模拟看门狗滤波器和短路检测器阈值吗?问题2:DFSDM
    发表于 05-27 06:52

    STM32H723VGT6只有一个DFSDM模块,唯一的时钟输出,能不能输出给2个sigma-delta同时采样电流?

    如题,只有一个DFSDM模块,唯一的时钟输出,能不能输出给2个sigma-delta同时采样电流(NSI1306M25,1位未编码或者曼切斯特编码位流),如果能,有没有性能的限制
    发表于 05-20 06:22

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

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

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

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

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

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

    关于使用STM32F412 DFSDM的几个问题求解

    spi从ADS1246中获取的是24位转换结果信息) 2、片内DFSDM的输入源数据可不可以是片内ADC的转换结果,如可以请教下如何设置? 3、片内DFSDM的可不可直接对外部模拟量进行采样,如可以请教下如何设置? 谢谢!
    发表于 03-18 06:56

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

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

    STM32MP135F-DK配置了asound.conf后报错的原因?

    按照DFSDM Linux driver配置了设备树、Linux内核驱动,发现dfsdm的时钟是关着的,配置了asound.conf后,用arecord -D record_
    发表于 03-11 06:41

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

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

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

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