400-035-6699
当前位置: 首页 » 技术支持 » 博文资讯 »

DFSDM模块配置详解:一步步实现精准数据采集与处理

在当今电子产品设计中,STM32控制器因其强大的性能和灵活性而受到开发者的青睐。在使用STM32H743的DFSDM模块进行音频数据处理时,正确配置参数至关重要。以下是如何准确配置这些参数的过程解析。
首先,我们以NUCLEO-H743开发板为测试平台,针对客户所需的16kHz 24位音频数据,进行相应的配置。配置流程包括:PDMMic至PDM数据,再到滤波器类型,过采样率(Fosr),积分器过采样率(Isor),右移位器,偏移补偿,最后得到采样数据。
**Clock out(CKOUT)的计算**是首要步骤。根据公式Fs = Fclockout / (Fosr * Iosr),其中Fs为采样频率,Fosr是滤波器的过采样率,Iosr为积分器的过采样率。在本次配置中,Fs为16kHz,Fosr设为128,Iosr设为1,从而计算出Fclockout应为2.048MHz。在STM32CubeMX中,相应的寄存器设置可以参照给出的图表进行。
接着,我们需要计算**SAI clock**。公式为(FSAIclock / Divider) = Fclockout,其中FSAIclock是SAI时钟,Divider是预分频比。当时钟源选择为audio clock时,按STM32CubeMX中的配置,选取Divider为7,由此得出FSAIclock = 2.048MHz * 7 = 14.336MHz。SAI clock的配置值 accordingly 应为14.336MHz。
对于**右移位数**,计算公式为B = N*log2(M) + Bin。这里N代表滤波器的阶数,M是滤波器的过采样率,Bin是滤波器输入位宽。在阶数为4,过采样率为128,输入位宽为1的情况下,计算结果为29位,所以积分器处理后的数据需要右移5位。
在**STM32CubeMX的配置**中,我们根据上述计算值来设置时钟参数。配置SAI clock为14.336MHz,并按照相应的步骤在STM32CubeMX中完成设置,涉及的图表和配置界面都有详细的步骤说明。
通过以上步骤,我们完成了STM32H743的DFSDM模块配置,从而可以准确处理16kHz的24位音频数据。在实际操作中,开发人员需要仔细计算每一个参数,并准确地在STM32CubeMX中设置,以确保系统的准确性和稳定性。
最后,**小结**中提到,DFSDM模块的寄存器配置是一个需要精确计算参数的过程。开发者在遇到类似需求时,可以参照上述步骤进行操作,确保配置的正确性。当然,如果遇到版权相关的图片或视频使用问题,应及时与原作者联系,以妥善处理。
在进行微控制器开发时,理解并掌握这些配置细节,对于提升产品性能用户体验至关重要。希望本文能为开发者提供一些有用的参考和指导。

DFSDM模块配置详解:一步步实现精准数据采集与处理

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单片机

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


审核编辑 黄宇

【限时免费】一键获取网络规划系统模板+传输架构设计+连通性评估方案

STM32相关文章

服务电话:
400-035-6699
企服商城