Audio Alsa记录双速

Audio Alsa记录双速,audio,linux-device-driver,alsa,i2s,Audio,Linux Device Driver,Alsa,I2s,免责声明:我为同一问题发表了文章(持不同观点) 我用a和a 它由alsa正确识别: arecord -l **** List of CAPTURE Hardware Devices **** card 0: imxaudiosph0645 [imx-audio-sph0645], device 0: imx-sph0645 snd-soc-dummy-dai-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 录音时,声音的速度提高2 使用-

免责声明:我为同一问题发表了文章(持不同观点)

我用a和a

它由alsa正确识别:

arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: imxaudiosph0645 [imx-audio-sph0645], device 0: imx-sph0645 snd-soc-dummy-dai-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
录音时,声音的速度提高2

使用-d(持续时间)录制时:

  • 命令持续时间是所请求时间的两倍
  • 录制的文件具有正确的持续时间,但速度提高了2
我使用示波器检查BCLK时钟和帧(WS)时钟:

声音的一个例子:

据我所知,这些钟是正确的。数据表显示“过采样率固定在64,因此WS信号必须为BCLK/64并与BCLK同步。”

也许在alsa的某个地方有一个配置我不知道


如果我可以添加更多信息,请告诉我。

我找到了解决方案,并将其发布在我的第一篇文章上

错误在驱动程序中:

- snd_soc_dai_set_sysclk(cpu_dai, 1, bclk, SND_SOC_CLOCK_OUT);
+ snd_soc_dai_set_sysclk(cpu_dai, 0, bclk, SND_SOC_CLOCK_OUT);

可以找到更新的驱动程序补丁

这听起来像是驱动程序或驱动程序配置中的时钟错误。我想,但实际时钟对我来说很好(不确定我是否正确理解)。对于48000kHz记录,WS-clock的周期为48000kHz。除非它不应该?*48kHz不是48000kHz
- snd_soc_dai_set_sysclk(cpu_dai, 1, bclk, SND_SOC_CLOCK_OUT);
+ snd_soc_dai_set_sysclk(cpu_dai, 0, bclk, SND_SOC_CLOCK_OUT);