
1、引言 客户在使用 STM32H743 的 DFSDM 模块时,配置有误。于是协助客户按照下面的方法进行配置并分享之。 2、参数的计算 3 [* ~% d) V; d- W使用 NUCLEO-H743 开发板进行测试。由于客户需要 16KHz 音频数据, 24bits 的音频数据,因此配置如下。 PDMMic -> PDM data -> 滤波器类型 -> 过采样率 Fosr(滤波器)-> 过采样率 Isor(积分器)-> 右移位器 -> 偏移补偿 -> 采样数据
![]() ![]() " [5 \3 g+ V( X- [% o 2. SAI clock 的计算 (FSAIclock/ Divider) =Fclockout => FSAIclock = Fclockout * Divider9 z6 C, a8 l, k; v9 fFSAIclock:当时钟源选 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) +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.也可以参考下表来规划右移位:5 [4 w: W' r: y* W+ u![]() 4 V! e7 m8 @4 x2 ?# B1 j 3、STM32CubeMX 的配置 根据上面的计算值配置时钟参数。SAI clock 配置为 14.336Mhz。 " }0 Z( N& }* c+ u0 v! |; Z/ U" X![]() ![]() ![]() ![]() ![]() ![]() ![]() 3、小结 关于DFSDM 模块寄存器的配置,需要计算合适的参数值方可进行。需要时可以参考上面内容来操作。 8 L! X) R; d8 s5 g 转载自:LAT11081 }! q8 u4 Z x( T |
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
刘氓兔的64位入门挑战【1】——MP257芯片下单和硬件准备
刘氓兔的64位入门挑战【0】——MP257选型
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享