我一直致力于STM32F4发现的音频项目,我注意到一件事,所有I2S标准仅适用于一个麦克风(取决于标准使用单独位的哪个边缘)。例如。飞利浦,MSB或LSB标准使用下降沿作为位触发器,仅捕获接地的L / R麦克风,如果我使用使用上升沿作为位触发的PCM标准,则仅捕获高L / R麦克风。我找不到在一个时期内捕获两个MEMS麦克风样品的方法。如果没有外部IC,STM32F4是否不能同时使用麦克风?
答案 0 :(得分:3)
解决方案是,选择I2S数据时钟的速度是Mems麦克风输入时钟的两倍,这样处理器就可以捕获Mems时钟脉冲上的采样
答案 1 :(得分:1)
您可以尝试使用I2S2和I2S3,第二个用于为麦克风生成时钟,第一个用于生成用于采样pdm值的时钟(以双倍速率),共享相同的PLL时钟应该同步。 这样做我认为你可以通过读取I2S2的recv寄存器获得pdm位,但我也认为来自2个麦克风的位将是交错的(来自麦克风1的一点,来自麦克风2的另一个,依此类推)。 p>
答案 2 :(得分:1)
只需跟进同一个问题。从两个麦克风获取数据的一种方法是将麦克风时钟缩小两倍。您可以通过将I2S生成的时钟路由到ETR引脚上的定时器(设置为输出捕捉模式)来实现。然后使用计时器,您可以根据需要进行分割。在这种情况下两次。定时器输出时钟进入两个麦克风,它们的数据连接到I2S数据线(生成时钟的数据线)。最后,与麦克风相比,I2S的工作速度提高了两倍。
以下是四个麦克风的示例。 (在你的情况下只需删除SPI)
有关详细信息,请阅读此内容。