2394875_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2394875_zh-CN

2394875_zh-CN

imx8mmini sai1 最大采样率

hi

sai1连接编解码器支持 768kHz/32bit 采样率。SAI1 -RX0 连接 codec_DOUT。

没有 768kHz/32bit 和 L/R 通道的数据可供读取。但SAI1-TXFS/SAI1-TXC 可以输出 768kHz/49.152MHz 的数据。读取 768kHz/16bit 和 384kHz/32bit 的 L/R 通道数据正常。内核版本 6.1.36。

谢谢。



Re: imx8mmini sai1 max sample rates

关于编解码器 DTS 的信息如下:

sofia_0571_0-1784080120640.png

运行 arecord 命令,参数为“-f S32_LE -r 384000 -c 2 -d 1 test.wav”或者“-f S16_LE -r 786000 -c 2 -d 1 test.wav”也可以。但是运行“-f S32_LE -r 768000 -c 2 -d 1 test.wav”,test.wav 为 NULL。




Re: imx8mmini sai1 max sample rates

你好,

请问您能否分享一下您的设备树配置?

你使用的是哪种编解码器?

顺祝商祺!

Re: imx8mmini sai1 max sample rates

你好,

如果出现与采样率相关的错误,可能是由于时钟源无法产生该采样率所需的频率造成的。

有时需要使用专用时钟源(例如外部时钟)来获得特定的采样率。

顺祝商祺!

Re: imx8mmini sai1 max sample rates当使用 768kHz 32bit x 2 通道读取时,SAI1_TXFS/SAI1_TXC 输出正常(768kHz/49.152MHz)。用示波器检查时,编解码器数据输出引脚(连接到 SAI1_RX0)有数据输出。imx8mmini sdma 是否有可能不工作?Re: imx8mmini sai1 max sample rates

你好,

测试过程中是否出现下溢或溢出错误?

顺祝商祺!

Re: imx8mmini sai1 max sample rates

测试过程中出现如下内核打印错误:
[ 506.336480] [858] wait_for_avail:1936: asoc-simple-card sound-pcmdev: 捕获写入错误(DMA 或 IRQ 问题?)

Re: imx8mmini sai1 max sample rates

你好,

请分享您的 dmesg:

dmesg | grep -i -E "xrun|overrun|dma|fifo|sdma|sai"

根据该错误日志,问题可能是由溢出引起的,请尝试增加周期和缓冲区大小,例如:

arecord -D hw:0,0 -f S32_LE -r 768000 -c 2 --buffer-size=65536 --period-size=8192 -d 5 test.wav

顺祝商祺!

Re: imx8mmini sai1 max sample rates

JorgeCas

谢谢你的回复。

增加周期和缓冲区大小时出现同样的错误。

------------------------------------

root@mx8mm:/tmp# arecord -v -D hw:0,0 -f S16_LE -r 768000 -c 2 -d 1 test.wav
正在录制 WAVE 文件“test.wav”:有符号 16 位小端序,采样率 768000 Hz,立体声
硬件 PCM 卡 0 'pcmdev-audio' 设备 0 子设备 0
其结构如下:
流:捕获
访问权限:读写交错
格式:S16_LE
子格式:STD
通道数:2
利率:768000
准确汇率:768000 (768000/1)
毫秒比特:16
缓冲区大小:131064
period_size:16383
period_time:21332
tstamp_mode:无
tstamp_type:单调
period_step:1
可用最小值:16383
period_event:0
起始阈值:1
停止阈值:131064
沉默阈值:0
静音大小:0
边界:9222809086901354496
appl_ptr:0
hw_ptr:0
root@mx8mm:/tmp# ls test.wav -la
-rw-r--r-- 1 root root 3072044 7月 22 22:09 test.wav
root@mx8mm:/tmp# arecord -D hw:0,0 -f S32_LE -r 768000 -c 2 --buffer-size=65536 --period-size=8192 -d 5 test.wav
正在录制 WAVE 文件“test.wav”:有符号 32 位小端序,采样率 768000 Hz,立体声
arecord: pcm_read:2221: 读取错误: 输入/输出错误
root@mx8mm:/tmp# dmesg | grep -i -E "xrun|overrun|dma|fifo|sdma|sai"
[ 0.000000] OF: 保留内存: 已初始化节点 linux,cma, 兼容 ID shared-dma-pool
[ 0.000000] 保留内存:在 0x00000000b8400000 创建了大小为 1 MiB 的 DMA 内存池
[ 0.000000] OF:保留内存:已初始化节点 vdevbuffer@b8400000,兼容 ID shared-dma-pool
[ 0.000000] DMA [内存 0x0000000040000000-0x00000000bfffffff]
[ 0.000000] DMA32 为空
[ 0.000000] 政策区域:DMA
[ 0.043871] DMA:已预分配 256 KiB GFP_KERNEL 池用于原子分配
[ 0.044176] DMA:已为原子分配预分配 256 KiB GFP_KERNEL|GFP_DMA 池
[ 0.044364] DMA:已为原子分配预分配 256 KiB GFP_KERNEL|GFP_DMA32 池
[ 0.105243] iommu:DMA 域 TLB 失效策略:严格模式
[ 0.195002] imx-sdma 302c0000.dma-controller:直接加载 imx/sdma/sdma-imx7d.bin 固件失败,错误代码 -2
[ 0.195018] imx-sdma 302c0000.dma-controller:回退到 sysfs 备选方案:imx/sdma/sdma-imx7d.bin
[ 0.199761] mxs-dma 33000000.dma-controller:已初始化
[ 1.996379] mmc2:30b60000.mmc 上的 SDHCI 控制器 [30b60000.mmc]使用ADMA
[ 2.786360] mmc1:30b50000.mmc 上的 SDHCI 控制器 [30b50000.mmc]使用ADMA
[ 8.812860] imx-sdma 302c0000.dma-controller:已找到固件。
[ 8.818748] imx-sdma 30bd0000.dma-controller:已找到固件。
[ 8.825901] imx-sdma 30bd0000.dma-controller:已加载固件 4.6
[ 91.326700] [857] soc_hw_sanity_check:775: 30010000.sai-pcmdevice-codec:ASoC:pcmdevice-codec <-> 30010000.sai 信息:
[ 91.326722] [857] soc_hw_sanity_check:777: 30010000.sai-pcmdevice-codec:ASoC:速率掩码 0x154c0
[ 91.326728] [857] soc_hw_sanity_check:778: 30010000.sai-pcmdevice-codec:ASoC:通道数最少 2 个,最多 8 个
[ 91.326734] [857] soc_hw_sanity_check:780: 30010000.sai-pcmdevice-codec:ASoC:速率最小值 44100 最大值 768000
[91.342776][857]fsl_sai_set_bclk:460:fsl-sai 30010000.sai:基于时钟频率 49152000Hz,频率为 24576000Hz 的比例为 2
[91.342784][857]fsl_sai_set_bclk:481:fsl-sai 30010000.sai:最佳拟合:时钟 id=1,div=2,偏差=0
[ 91.343315] [857] dapm_update_dai_unlocked:2698: fsl-sai 30010000.sai:更新 30010000.sai 捕获的 DAI 路由
[ 113.965788] [861] soc_hw_sanity_check:775: 30010000.sai-pcmdevice-codec:ASoC:pcmdevice-codec <-> 30010000.sai 信息:
[ 113.965809] [861] soc_hw_sanity_check:777: 30010000.sai-pcmdevice-codec:ASoC:速率掩码 0x154c0
[ 113.965816] [861] soc_hw_sanity_check:778: 30010000.sai-pcmdevice-codec:ASoC:通道数最少 2 个,最多 8 个
[ 113.965822] [861] soc_hw_sanity_check:780: 30010000.sai-pcmdevice-codec:ASoC:速率最小值 44100 最大值 768000
[113.977610][861]fsl_sai_set_bclk:460:fsl-sai 30010000.sai:基于时钟 49152000Hz,频率为 49152000Hz 的比例为 1
[113.977618][861]fsl_sai_set_bclk:481:fsl-sai 30010000.sai:最佳拟合:时钟 id=1,div=1,偏差=0
[ 113.978149] [861] dapm_update_dai_unlocked:2698: fsl-sai 30010000.sai:更新 30010000.sai 捕获的 DAI 路由
[ 124.127055] [861] wait_for_avail:1936: asoc-simple-card sound-pcmdev: 捕获写入错误(DMA 或 IRQ 问题?)
root@mx8mm:/tmp# ls test.wav -la
-rw-r--r-- 1 root root 44 7月 22 22:09 test.wav
root@mx8mm:/tmp#

Tags (1)
No ratings
Version history
Last update:
2 weeks ago
Updated by: