This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SK-AM62:音频编解码器 aix31xx 等待位失败。

Guru**** 1738910 points
Other Parts Discussed in Thread: SK-AM62, TLV320AIC3111
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1248639/sk-am62-audio-codec-aix31xx-wait-bits-failed

器件型号:SK-AM62
主题中讨论的其他器件: TLV320AIC3111

大家好、我使用的是 SK-AM62评估板。  

并尝试使用 g-streamer 运行环回音频、似乎在运行环回测试5分钟后收到以下错误。  

运行回送测试的命令:

$>gst-launch-1.0 -v autoaudiosrc! Audiocconvert! 汽车音频链接

和不同端子上的  

$> PulseAudio -vvvvvvv

日志:

root@am62xx-evm:~# dmesg | grep -i codec
[ 29.850900] tlv320aic31xx-codec 1-0018:aic31xx_wait_bits:failed! 0x24是0x60、预期为0x0 (0、0x40,500000us)
[ 29.861265] tlv320aic31xx-codec 1-0018:ASOC:post_PMD:ADC 事件失败:-1
[ 30.804532] tlv320aic31xx-codec 1-0018:aic31xx_wait_bits:failed! 0x24是0x60、预期为0x0 (0、0x40,500000us)
[ 330/814913] tlv320aic31xx-codec 1-0018:ASOC:post_PMD:ADC 事件失败:-1
[ 32.122496] tlv320aic31xx-codec 1-0018:aic31xx_wait_bits:failed! 0x24是0x60、预期为0x0 (0、0x40,500000us)
[ 32.132865] tlv320aic31xx-codec 1-0018:ASOC:post_PMD:ADC 事件失败:-1
[ 33.032529] tlv320aic31xx-codec 1-0018:aic31xx_wait_bits:failed! 0x24是0x60、预期为0x0 (0、0x40,500000us)
[ 33.042911] tlv320aic31xx-codec 1-0018:ASOC:post_PMD:ADC event failed:-1
[ 33.872538] tlv320aic31xx-codec 1-0018:aic31xx_wait_bits:failed! 0x24是0x60、预期为0x0 (0、0x40,500000us)
[ 33.882921] tlv320aic31xx-codec 1-0018:ASOC:post_PMD:ADC 事件失败:-1
[ 34.843380] tlv320aic31xx-codec 1-0018:aic31xx_wait_bits:失败! 0x24是0x60、预期为0x0 (0、0x40,500000us)
[ 34.853749] tlv320aic31xx-codec 1-0018:ASOC:post_PMD:ADC 事件失败:-1
[ 696.166647] tlv320aic31xx-codec 1-0018:aic31xx_wait_bits:failed! 0x25为0x88预期0x0 (0、0x80,500000us)
[ 696.177020] tlv320aic31xx-codec 1-0018:ASOC:post_PMD:DAC Left event failed:-1
[ 697.269453] tlv320aic31xx-codec 1-0018:aic31xx_wait_bits:失败! 0x25为0x88预期0x0 (0、0x8500000us)
[ 697.279735] tlv320aic31xx-codec 1-0018:ASOC:post_PMD:DAC right event failed:-1
root@am62xx-EVM:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Guy

    你可以 mesrue bck 和 ws clk 在运行回送测试?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    下面是时钟或正在运行、但环回上无音频。  

    MCLK = 12.02MHz

    BCLK = 1.4MHz

    wclk = 45.1KHz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、我知道这是个单独的问题、您能告诉我如何将音频编解码器采样频率从默认的44.1kHz 更改为48kHz 吗? 请  

    在 Linux 中?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    因此、顺序如下:

    1.运行 PulseAudio 并打开时钟 MCLK、wclk、BCLK。  

    2.在环回模式下运行 g-streamer。  

    3.在控制台上获取错误:

    110.296154] Davinci-McASP 2b1000.McASP:接收缓冲区溢出
    [ 110.307741] Davinci-McASP 2b1000.McASP:接收缓冲区溢出
    [ 110.314596] Davinci-McASP 2b1000.McASP:接收缓冲区溢出
    [ 110.321489] Davinci-McASP 2b1000.McASP:接收缓冲区溢出
    [ 110.328458] Davinci-McASP 2b1000.McASP:接收缓冲区溢出
    [ 110.33519] Davinci-McASP 2b1000.McASP:接收缓冲区溢出
    [ 110.346960 ] Davinci-McASP 2b1000.McASP:接收缓冲区溢出
    [ 110.35383838] Davinci-McASP 2b1000.McASP:接收缓冲区溢出
    [ 110.360811] Davinci-McASP 2b1000.McASP:接收缓冲区溢出
    [ 110.367923] Davinci-McASP 2b1000.McASP:接收缓冲器

    4.从 PulseAudio 记录

    ...320aic31xx-hif-0] alsa-util.c:PCM 状态为 XRUN
    320aic31xx-hif-0] alsa-source.c:开始捕获。
    C0是可访问的:是
    KS 及 CARD alsa_card.platform-soundcard 的来源。
    0aic31xx-hif-0] alsa-sink.c:正在尝试恢复...
    0aic31xx-hif-0] alsa-util.c:仅使用计时器,尝试禁用 ALSA 周期唤醒
    0aic31xx-hif-0] alsa-util.c:硬件缓冲区的最大大小为2972ms
    0aic31xx-hif-0] alsa-util.c:snd_pcm_hw_params_set_buffer_size_near ()失败:参数无效
    320aic31xx-hif-0] alsa-util.c:从 ALSA 获得了 POLLRR。
    320aic31xx-hif-0] alsa-util.c:从 ALSA 获得 Pollin
    320aic31xx-hif-0] alsa-util.c:PCM 状态为 XRUN
    320aic31xx-hif-0] alsa-source.c:开始捕获。
    0aic31xx-hif-0] alsa-util.c:先设置周期大小(最多13505个样本)、然后设置缓冲区大小(最多81033个样本)。
    0aic31xx-hif-0] alsa-util.c:器件 HW:0不支持48000 Hz、已更改为44100 Hz。
    0aic31xx-hif-0] alsa-util.c:alsa period wakups disabled (已禁用 ALSA 周期唤醒)
    0aic31xx-hif-0] alsa-sink.c:恢复失败、无法恢复原始样本设置。
    320aic31xx-hif-0] alsa-util.c:从 ALSA 获得了 POLLRR。
    320aic31xx-hif-0] alsa-util.c:从 ALSA 获得 Pollin
    320aic31xx-hif-0] alsa-util.c:PCM 状态为 XRUN
    320aic31xx-hif-0] alsa-source.c:开始捕获。
    渠道。
    C0是可访问的:是
    KS 及 CARD alsa_card.platform-soundcard 的来源。
    0aic31xx-hif-0] alsa-sink.c:正在尝试恢复...
    0aic31xx-hif-0] alsa-util.c:仅使用计时器,尝试禁用 ALSA 周期唤醒
    0aic31xx-hif-0] alsa-util.c:硬件缓冲区的最大大小为2972ms
    0aic31xx-hif-0] alsa-util.c:snd_pcm_hw_params_set_buffer_size_near ()失败:参数无效
    320aic31xx-hif-0] alsa-util.c:从 ALSA 获得了 POLLRR。
    320aic31xx-hif-0] alsa-util.c:从 ALSA 获得 Pollin
    320aic31xx-hif-0] alsa-util.c:PCM 状态为 XRUN
    320aic31xx-hif-0] alsa-source.c:开始捕获。
    0aic31xx-hif-0] alsa-util.c:先设置周期大小(最多13505个样本)、然后设置缓冲区大小(最多81033个样本)。
    0aic31xx-hif-0] alsa-util.c:器件 HW:0不支持48000 Hz、已更改为44100 Hz。
    0aic31xx-hif-0] alsa-util.c:alsa period wakups disabled (已禁用 ALSA 周期唤醒)
    0aic31xx-hif-0] alsa-sink.c:恢复失败、无法恢复原始样本设置。
    320aic31xx-hif-0] alsa-util.c:从 ALSA 获得了 POLLRR。
    320aic31xx-hif-0] alsa-util.c:从 ALSA 获得 Pollin
    320aic31xx-hif-0] alsa-util.c:PCM 状态为 XRUN
    320aic31xx-hif-0] alsa-source.c:开始捕获。
    C0是可访问的:是...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mitesh:

    您使用的是哪个器件型号?

    播放48kHz 音频时应自动选择48kHz、请参阅之前的日志、寄存器状态指示 ADC 和 DAC 未按预期关闭、是否有任何声音可播放或捕获?

    关于"接收缓存溢出"的日志、应增大  minBufferSize。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kevin:我们使用的是 TLV320AIC3111。 当我们执行"pactl list sources"时、默认速率为44100而不是48000。 当我将配置文件更改为使用48000时、会显示不支持更改速率。  

    您能告诉我如何增加缓冲器吗?  

    谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mitesh:

    首先、我们的驱动程序可支持48K。  你的日志显示的  PCM 状态是 XRUN, XRUN 的意思 下运行或过运行,我认为它与缓冲区大小有关,你可以添加~/.asoundrc 文件到用户路径配置 buffersize 和采样率. 下面是一个示例、您可以找到一些学习配置和使用~/.asoundrc 文件的资源

     

    pcm.!default{
            type asym
            playback.pcm {
                    type plug
                    slave {
                            pcm "hw:0,2"
                            channels 2  
                            period_size 1024  
                            buffer_size 4096  
                            rate 48000
                            periods 0  
                            period_time 0
                    }
            }
            capture.pcm {
                    type plug
                    slave {
                            pcm "hw:1,0"
                            channels 2  
                            period_size 1024  
                            buffer_size 4096  
                            rate 48000  
                            periods 0  
                            period_time 0
                    }
            }
    
    }

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Kevin、我来试试这个。 谢谢。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Kevin 老师、我在 asoundrc 中尝试了  

    pcm.primary
        HW 型
        卡0
        器件0
    我收到错误:
    ROOT@am62xx-EVM:~# aplay -D primary /usr/share/sounds/alsa Front_Center.wav 播放 wave '/usr/share/sounds/alsa Front_Center.wav':有符号16位小端序,速率48000Hz,单声道
    Aplay:set_params:1347:通道计数不可用
    root@am62xx-EVM:~#
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kevin:当我将 asoundrc 文件设置为  

    PCM..!DEFAULT
        类型渐近
        Played.PCM
            类型插头
            从机{
                PCM"硬件:0、0"
                通道2  
                费率48000
            }
        }
        Capture.PCM
            类型插头
            从机{
                PCM"硬件:0、0"
                通道2  
                费率48000
            }
        }

    并尝试运行环回 g-streamer 我得到以下错误:

    I:[ALSA-SINK-Davinci-McASP.0-tlv320aic31xx-hifi tlv320aic31xx-hif-0] alsa-util.c:器件 HW:0不支持48000Hz、更改为44100Hz。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mitesh:

    文件可能无法正常工作。 确保文件位于~/中、然后使用命令"arcord -L"重新加载文件。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    root@am62xx-evm:~# arecord -L
    null
    丢弃所有样本(播放)或生成零样本(捕捉)
    sysdefault:card=AM62xSKEVM
    AM62x-SKEVM、Davinci-McASP.0-tlv320aic31xx-hifi tlv320aic31xx-hif-0
    默认音频设备


    root@am62xx-evm:~ ls -l /home/root/.asoundrc
    rw-r--r-- 1根根目录453七月26 10:21 /home/root/.asoundrc

    从 PulseAudio 记录  

    D:[PulseAudio] alsa-util.c:snd_pcm_dump ():
    D:[PulseAudio] alsa-util.c:硬件 PCM 卡0 'AM62x-SKEVM'器件0子器件0
    D:[PulseAudio] alsa-util.c:其设置为:
    D:[PulseAudio] alsa-util.c:流:回放
    D:[PulseAudio] alsa-util.c:access:MMAP_interleaved
    D:[PulseAudio] alsa-util.c:格式:S16_LE
    D:[PulseAudio] alsa-util.c:subformat:std
    D:[PulseAudio] alsa-util.c:频道数:2
    D:[PulseAudio] alsa-util.c:率:44100
    D:[ PulseAudio] alsa-util.c :确切的速率: 44100 (44100/1)
    D:[PulseAudio] alsa-util.c: msbits : 16
    D:[PulseAudio] alsa-util.c:buffer_size:88200
    D:[PulseAudio] alsa-util.c: period_size : 14700
    D:[PulseAudio] alsa-util.c: period_time : 33333333
    D:[PulseAudio] alsa-util.c:tstamp_mode:enable
    D:[PulseAudio] alsa-util.c:tstamp_type:monotonic
    D:[PulseAudio] alsa-util.c:period_step:1
    D:[PulseAudio] alsa-util.c:ave_min:87319
    D:[PulseAudio] alsa-util.c:period_event:0
    D:[PulseAudio] alsa-util.c:start_threshold:-1
    D:[PulseAudio] alsa-util.c:stop_threshold:6206523236469964800
    D:[PulseAudio] alsa-util.c:SILENCE_THRESHOLD:0
    D:[PulseAudio] alsa-util.c: silemone_size : 0
    D:[PulseAudio] alsa-util.c:BOUNDARY:6206523236469964800
    D:[PulseAudio] alsa-util.c:appl_ptr:0
    D:[PulseAudio] alsa-util.c:hw_ptr:0

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mitesh:

    我认为这是因为通道数是立体声而不是单声道。 您应该更改一个 wav 文件、  

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mitesh:

    您能退出 root 吗? 从日志中看、我没有看到修改有效、  

    pcm.rate_convert {
    类型速
    
    
    率从属设备{ pcm"HW:0,0"速率48000}}
    
    

    请将 asoundrc 设置为如上所述并查看其是否有效。

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Kevin 老师、系统上没有 root 用户。

    有哪些步骤来确保我们正在使用.asoundrc 文件?

    我所做的就是将文件移动到系统上的~/.asoundrc 并重启系统。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    root 用户@am62xx-evm:~# aplay /usr/share/sounds/alsa Front_Center.wav
    播放 wave '/usr/share/sounds/alsa Front_Center .wav':有符号16位小端序、速率48000Hz、单声道


    root@am62xx-evm:~# aplay -L
    null
    丢弃所有样本(播放)或生成零样本(捕捉)
    默认:CARD=AM62xSKEVM
    AM62x-SKEVM、Davinci-McASP.0-tlv320aic31xx-hifi tlv320aic31xx-hif-0
    默认音频设备
    sysdefault:card=AM62xSKEVM
    AM62x-SKEVM、Davinci-McASP.0-tlv320aic31xx-hifi tlv320aic31xx-hif-0
    默认音频设备


    root@am62xx-evm:~# arecord -L
    null
    丢弃所有样本(播放)或生成零样本(捕捉)
    默认:CARD=AM62xSKEVM
    AM62x-SKEVM、Davinci-McASP.0-tlv320aic31xx-hifi tlv320aic31xx-hif-0
    默认音频设备
    sysdefault:card=AM62xSKEVM
    AM62x-SKEVM、Davinci-McASP.0-tlv320aic31xx-hifi tlv320aic31xx-hif-0
    默认音频设备
    root@am62xx-EVM:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    似乎错误日志不再发生、是否有声音在播放?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Kevin、不是真的。 使用 PulseAudio 和 g-streamer 时、仍然有错误说、硬件声卡只能在44100工作、不能在48000工作。

    谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mitesh:

    如果是这样、我认为 问题是由真正的时钟引起的、您可以看到 wclk 为 45.1KHz、它会导致时钟错误、您可以在播放期间发出寄存器转储吗? 我们可以找到这是否是由寄存器配置引起的问题。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Kevin、我今天会给您发送寄存器转储、您该如何更改缓冲器大小?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mitesh:

    与更改采样率的方法相同、您可以  在.asoundrc 中添加 buffer_size = 4096 (或更大)、  

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,凯文,附加的是在玩后的记录转储. 谢谢  

    root 用户@am62xx-evm:~# aplay /usr/share/sounds/alsa Front_Center.wav
    播放 wave '/usr/share/sounds/alsa Front_Center .wav':有符号16位小端序、速率48000Hz、单声道


    root@am62xx-evm:~# i2cdump -y -f 1 0x18
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00:00 00 01 56 03 91 08 08 80 00 00 88 82 00 80 80 ..?V???? ……………















    ………………………… 10:08 00 88 82 80 04 00 00 01 4c 00 04 88 00??????? ...?L.?. 20:00 00 00 00 80 bb 11 00 00 00 00 00 00 00 00 00 ...??......... 30:00 00 00 02 32 12 03 02 02 11 10 00 01 04 00 D4 ...2????? …………………………… 40: 0C 00 00 00 6F 38 00 00 00 00 00 00 ee 10 D8 7e E3 ?... ???~? 50:00 00 00 00 00 00 00 a0 fe 50 30 20 00 00 00 00 ... ??P0 ..... 60:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. 70:00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 ... ?.......... 80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. 90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. root@am62xx-EVM:~#
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mitesh:

    感谢您提供信息、我们可以确认 PLL 配置正确、WCLK 应为48kHz、但并非如此。  问题好像是由错误的 MCLK 输入引起的、是否会对其进行复查? 系统检测到错误的 BCLK 时钟、因此未调用静音功能。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Kevin。 我将检查它。

    但不知道为什么当我使用建议的 asoundrc 设置时、更改采样率和添加最小缓冲区大小不起作用。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mitesh:

    很抱歉、我认为采样率取决于硬件是否符合设置、   如果缓冲区大小在容差范围内、则缓冲区大小应起作用。

    谢谢