MICFIL数字麦克风参数计算
MICFIL是RT系列MCU中的一个数字麦克风接口模块,典型的MICFIL一般支持高达8路的数字麦克风PDM信号的输入。我们在之前的博文中提到过数字麦克风,这里对于数字麦克风的原理就不做解释了,只是介绍一下这个模块接收数据的时候要注意的一些设置。
数字麦克风一般有一个时钟输入和数据输出信号,MICFIL中接口的8个通道会公用同一个时钟,而数据则是两个通道公用一个数据线。
配置数字麦克风的时候需要注意的东西主要有以下几个部分:
- 数据输出速率
- 超采样率(Over Sample Rate, OSR)
- PDM时钟频率
- 分频系数
- 模块时钟频率
- 使能的通道数
这几个数据之间是有非常重要的关系的,我们可以通过一些公式对它们的值进行计算。
PDM频率计算
首先是PDM时钟频率,它和数据超采样率和输出速率有如下的关系:
PDM_Clock_Rate = Output_Data_Rate * 8 * Over_Sample_Rate
假定数据输出速率是48K,OSR = 16,那么PDM_Clock_Rate = 48K * 8 * 16 = 6.144MHz
,这个频率也是麦克风需要支持的频率。这个公式里面的8是一个固定的系数。
分频系数的计算
分频系数和PDM频率,信号质量系数(K),输入时钟频率以及工作的通道数目(Enabled Channel EC)有关。相关的公式如下:
Floor(K * CLKDIV) >= K * (10 + 125 * EC) / (8 * OSR)
比如对于高质量数据的输出,K = 0.5, 总共有4个通道工作,那么floor(0.5 * CLKDIV) >= 0.5 * (10 + 125 * 4)/(8 * 4) = 1.9922
也就是0.5 * CLKDIV >= 2
, 最终CLKDIV >= 4
.
计算模块时钟
模块时钟可以根据上面得到的一些结果进行计算,计算公式如下:
MICFIL_Clock_Rate = CLKDIV * 8 * OSR * Output_Data_Rate
比如上面的例子中我们可以计算MICFIL_Clock_Rate = 4 * 8 * 16 * 48K = 24.58MHz
以上就是我们得到的一些参数,当把这些参数使能之后,将相应的通道打开,然后使能模块,数据就会在Data寄存器中出来。MICFIL的数据本身是有FIFO的,可以通过Polling,中断和DMA的方式接收。
最后更新于 2019-08-25 14:44:31 并被添加「技术 麦克风 数字 原理」标签,已有 4735 位童鞋阅读过。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
請問一下,分頻係數的計算中,10+125是怎麽得來的呢