Sigmastar Audio_debugsop手册

REVISION HISTORY

Revision No.
Description
Date
1.0
  • Initial release
  • 03/05/2024

    SW RD所需dump信息

    1.抓取寄存器1502/1503/1504/1505/1506/1034/103c/141d
    2.tinymix contents信息(取决于有几张声卡,使用-D 来设置)
    3.cat alsa信息:
        cat /proc/asound/card0/pcm0p/sub0/status
        cat /proc/asound/card0/pcm0p/sub0/sw_params
        cat /proc/asound/card0/pcm0p/sub0/hw_params
        cat /proc/asound/card0/pcm0c/sub0/status
        cat /proc/asound/card0/pcm0c/sub0/sw_params
        cat /proc/asound/card0/pcm0c/sub0/hw_params
    4.设备树信息:包含sound节点的dtsi,如arch/arm64/boot/dts/sstar/pcupid.dtsi
    5.padmux信息:padmux.dtsi
    6.LOG信息:是否有异常报错
    7.如果有打开dump_pcm,提供dump下来的音档(路径在/tmp下):
        echo dump_pcm -enable 1 > /proc/audio/debug
    8.时钟信息:
        cat /sys/kernel/debug/clk/clk_summary | grep aupll
        cat /sys/kernel/debug/clk/clk_summary | grep bachpll
    

    问题1. 喇叭播放无声

    图1-1 喇叭播放无声定位思维导图

    流程 方法
    出口条件
    下一步
    需提供给SWRD的资料
    相关可参考FAQ
    A 1.播放过程中使用万用表确认AUDIO的AUDD18_AUD为1.8V
    2.播放过程中使用万用表量取PAD_AUD_VAG的电压是否大于0.9V
    出口条件1:
    1.播放阶段AUDIO的VDD供电电压与1.8V相差较大,
    2.播放阶段AUDIO的参考电压VAG未大于0.9V
    > 供电问题
    出口条件2:
    供电正常
    >无问题
    出口条件1:
    >流程结束
    出口条件2:
    >B
    出口条件1:
    ==>寻求CAE帮助协助
    B 1.确认AUDIO AMP PAD的padmux配置是否和与开发板对应,pad是否与其他mode有冲突方法:
    cd
    vi arch/arm64/boot/dts/sstar/pcupid_xxxx-padmux.dtsi
    查找AMP PAD是否有被切为MDRV_PUSE_AIO_AMP_PWR mode,并使用IO_Check Tool 检查是否设置mode成功(./io_check_xxx PinID)
    出口条件1:
    1.padmux未正确配置或者存在与其他mode冲突情况
    出口条件2:
    AMP PAD配置正常==> 无问题
    出口条件1:
    >流程结束
    出口条件2:
    >C
    出口条件1:
    ==>寻求CAE确认当前开发板使用的padmux情况,然后按照实际情况配置正确的padmux和dts
    C 1.启用RDMA sinegen
    (echo AO_DMA_A -enable 1 > /proc/audio/sinegen)
    并播放,听Speaker能否播放出正弦波
    出口条件1:
    1.能播放出正弦波音档
    > 请检查上层软件是否成功将数据写到指定的内存中
    出口条件2:
    无法播出声音
    > Audio内部异常
    出口条件1:
    >流程结束
    出口条件2:
    >请SW RD协助排查
    出口条件1:
    >请客户检查应用逻辑,或者参考提供的MI_Demo调整代码
    出口条件2:
    >请提供所需dump信息

    问题2. AMIC录音没有数据

    图2-1 AMIC录音没有数据定位思维导图

    流程 方法
    出口条件
    下一步
    需提供给SWRD的资料
    相关可参考FAQ
    A 1.录音过程中使用万用表确认AUDIO的AUDD18_AUD是否为1.8V
    2.录音过程中使用万用表量取PAD_AUD_VAG的电压是否大于0.9V
    出口条件1:
    1.录音阶段AUDIO的VDD供电电压与1.8V相差较大,
    2.录音阶段AUDIO的参考电压VAG未大于0.9V
    > 供电问题
    出口条件2:
    供电正常
    >无问题
    出口条件1:
    >流程结束
    出口条件2:
    >B
    出口条件1:
    ==>寻求CAE帮助协助
    B 1.检查AMIC接线是否正确
    2.接上MIC后在录音过程中用示波器测量MIC PIN是否有电平变化
    出口条件1:
    1.检查AMIC接线错误
    2.接上MIC后,录音过程示波器测量MIC PIN无电平变化
    > 硬件环境问题
    出口条件2:
    配置正常
    > 无问题
    出口条件1:
    >流程结束
    出口条件2:
    >C
    出口条件1:
    ==>寻求CAE帮助排查
    C 1.启用ADC sinegen
    (echo AI_DMA_A -enable 1 > /proc/audio/sinegen)
    并录音,看音档能否录到正弦波或者实时播放录音数据,听声音是否为正弦波
    出口条件1:
    1.能录到正弦波音档
    > AMIC外部电路或者Layout设计不符合当前使用的AMIC规格
    出口条件2:
    无法录到数据
    > Audio内部异常
    出口条件1:
    >流程结束
    出口条件2:
    >请SW RD协助排查
    出口条件1:
    >寻求CAE帮助排查
    出口条件2:
    >请提供所需dump信息

    问题3. I2S在MasterMode工作异常

    图3-1 I2S在MasterMode工作异常定位思维导图

    流程 方法
    出口条件
    下一步
    需提供给SWRD的资料
    相关可参考FAQ
    A 确认AUDIO I2S PAD的padmux配置是否和与开发板对应,pad是否与其他mode有冲突
    方法:
    cd
    vim arch/arm64/boot/dts/sstar/pcupid_xxxx-padmux.dtsi
    查找I2S PAD是否有被切为MDRV_PUSE_I2S0_XX_XXX mode,并使用IO_Check Tool 检查是否设置mode成功(./io_check_xxx PinID)
    出口条件1:padmux未正确配置或者存在与其他mode冲突情况
    出口条件2:I2S PAD配置正常
    ==>无问题
    出口条件1:
    >流程结束
    出口条件2:
    > B
    出口条件1:
    寻求CAE确认当前开发板使用的padmux情况,然后按照实际情况配置正确的padmux和dts
    pageId=62543124
    B 检查I2S mode和Format parameter是否符合客户应用场景:
    cat /proc/audio/tdm
    出口条件1:
    1.参数不符合客户应用场景
    > 参数配置问题
    出口条件2:
    参数符合客户应用场景
    > 无问题
    出口条件1:
    >流程结束
    出口条件2:
    >C
    出口条件1:
    ==>根据客户的应用场景设定合理的参数,提供包含I2S配置的dtsi
    C 测试时钟是否有输出:使用LA/示波器抓取BCK/WCK引脚,看是否有输出 出口条件1:
    1.无时钟输出
    > 硬件配置问题
    出口条件2:
    可以正常输出时钟
    > 无问题
    出口条件1:
    >流程结束
    出口条件2:
    >D
    出口条件1:
    ==>请CAE排查是否有硬件上下拉影响到,如无则提供信息给到SW RD
    D 测试时钟输出是否正确:使用LA/示波器抓取BCK/WCK引脚
    WCK = SampleRate
    BCK = SampleRate * channels * bits
    出口条件1:
    时钟配置输出
    > 硬件配置问题
    出口条件2:
    可以正常输出时钟
    > 无问题
    出口条件1:
    >流程结束
    出口条件2:
    >E
    出口条件1:
    ==>请CAE排查是否有硬件上下拉影响到,如无则
    E 1.RX端启用I2S RX sinegen
    (echo singen 13 1 > /proc/mi_modules/mi_ai/mi_ai0)
    并录音;TX端启用RDMA Sinegen
    (echo singen 0 1 > /proc/mi_modules/mi_ao/mi_ao0)
    并播放,看音档能否录到正弦波;量取波形看PAD是否正常输出
    出口条件1:
    1.能录到正弦波音档或者PAD输出波形正常
    > 请检查I2S 外部电路设计是否正确,断开外部电路单独量取近SOC端的I2S 输出信号是否有正常输出
    出口条件2:
    无法录到数据
    > Audio内部异常
    出口条件1:
    >流程结束
    出口条件2:
    >请SW RD协助排查
    出口条件1:
    >寻求CAE帮助排查
    出口条件2:
    >请提供所需dump信息
    pageId=62524757


    问题4. DMIC 无法正常工作问题

    图4-1 DMIC 无法正常工作问题定位思维导图

    流程 方法
    出口条件
    下一步
    需提供给SWRD的资料
    相关可参考FAQ
    A 1.确认AUDIO DMIC PAD的padmux配置是否和与开发板对应,pad是否与其他mode有冲突方法:
    cd
    vim arch/arm/boot/dts/iford_xxxx-padmux.dtsi
    查找DMIC PAD是否有被切为MDRV_PUSE_DMIC0_XX mode,并使用IO_Check Tool 检查是否设置mode成功(./io_check_xxx PinID)
    出口条件1:padmux未正确配置或者存在与其他mode冲突情况
    出口条件2:DMIC PAD配置正常
    ==>无问题
    出口条件1:
    >流程结束
    出口条件2:
    > B
    出口条件1:
    寻求CAE确认当前开发板使用的padmux情况,然后按照实际情况配置正确的padmux和dts
    B 1.检查DMIC BCK mode和PAD脚的供电电压是否符合客户DMIC硬件应用场景,并在运行DMIC 录音过程中,量取DMIC BCK信号
    出口条件1:
    1.参数不符合客户应用场景
    > 参数配置问题
    出口条件2:
    参数符合客户应用场景
    > 无问题
    出口条件1:
    >流程结束
    出口条件2:
    >C
    出口条件1:
    ==>根据客户的应用场景设定合理的参数
    C 1.启用DMIC Sinegen
    (echo singen 10 1 > /proc/mi_modules/mi_ai/mi_ai0)
    并播放,看音档能否录到正弦波;量取波形看PAD是否正常输出
    出口条件1:
    1.能录到正弦波音档或者PAD输出波形正常
    > 请检查客户板子DMIC 外部电路设计是否正确,可以尝试增加DMIC PIN 的驱动能量,并使用示波器量取硬件DMIC Data PIN是否正常输出
    出口条件2:
    无法录到数据
    > Audio内部异常
    出口条件1:
    >流程结束
    出口条件2:
    >请SW RD协助排查
    出口条件1:
    >寻求CAE帮助排查
    出口条件2:
    >请提供所需dump信息
    pageId=62534576

    问题5. 喇叭播放有杂讯

    图5-1 喇叭播放有杂讯异常定位思维导图

    流程 方法
    出口条件
    下一步
    需提供给SWRD的资料
    相关可参考FAQ
    A 启用RDMA Sinegen
    (echo AO_DMA_A -enable 1 > /proc/audio/sinegen)
    并运行客户应用,是否还能听到杂讯
    出口条件1:无杂讯 > 上层软件送流异常
    出口条件2:杂讯依旧存在
    >需进一步排查
    出口条件1:
    >流程结束
    出口条件2:
    > B
    出口条件1:
    请客户检查应用逻辑,或者参考提供的MI_Demo调整代码
    B 在播放过程中使用示波器量取DAC PIN输出信号,观察波形是否正常
    出口条件1:
    1.波形为正弦波且波形干净无杂讯,频率稳定
    > 外围硬件干扰
    出口条件2:
    波形已经失真
    > Audio内部状态异常
    出口条件1:
    >流程结束
    出口条件2:
    >C
    出口条件1:
    ==>请客户排查是否为外部硬件电路/模拟参考电压源引入的信号干扰,或者有经过负载(稳压芯片)引入的串扰
    C 启用AMIC Sinegen
    (echo AI_DMA_A -enable 1 > /proc/audio/sinegen)
    进行录音,查看波形是否正常
    出口条件1:
    1.能录到正弦波音档或者PAD输出波形正常
    > 模拟时钟源稳定,排除时钟不稳问题,只有DAC存在异常
    2.波形异常失真
    >时钟源不稳或者模拟电路异常
    ==> Audio内部异常
    出口条件1:
    ==>流程结束
    出口条件1:
    ==>D
    pageId=62524755
    D 1.检查Aupll是否有被正常开启
    cat /sys/kernel/debug/clk/clk_summary查看CLK_aupll_384M是否使能
    出口条件1:
    Audio 48M时钟未打开
    > 时钟配置问题
    出口条件2:
    Audio 48M时钟正常
    > Audio内部异常
    出口条件1:
    1.流程结束
    出口条件2:
    1.流程结束
    出口条件1:
    需要CLK Owner 进场协助排查
    出口条件2:
    ==>E
    pageId=62546055
    E DUMP音频数据是否正常
    echo dump_pcm -enable 1 > /proc/audio/debug
    生成文件在/tmp下
    出口条件1:
    数据异常
    > Audio内部异常
    出口条件2:
    数据正常
    > 需进一步排查
    出口条件:提供dump信息给到SW RD分析 出口条件2:
    如果有经过算法处理,请找算法同仁协助排查,检查算法参数,如果未经过算法处理,请提供所需dump信息
    pageId=62546053
    ---

    问题6. 播音/录音过程中频发出现爆音

    图6-1 播音/录音过程中频发出现爆音异常定位思维导图

    流程
    方法
    出口条件
    下一步
    需提供给SWRD的资料
    相关可参考FAQ
    A 检查Gain值配置是否合理,调小Gain值后观察是否还有爆音
    出口条件1:无爆音 >参数配置问题
    出口条件2:有爆音
    >需进一步排查
    出口条件1:
    >流程结束
    出口条件2:
    > B
    出口条件1:
    调整Gain值到合理的参数,避免Gain过大,音频信号超过限幅导致波形失真
    B 启用Sinegen
    (echo AO_DMA_A -enable 1 > /proc/audio/sinegen)
    进行测试,看是否还有爆音
    出口条件1:
    1.无爆音
    > 硬件问题
    出口条件2:
    依旧还有爆音
    > 需进一步排查
    出口条件1:
    >流程结束
    出口条件2:
    >C
    出口条件1:
    ==>请CAE协助排查客户外围电路,看是否为外部信号影响
    C 1.启用Debug 打印,观察是否会多次出现DMA FULL/EMPTY;Local Buffer Empty/Full的异常打印
    echo irq -enable 1 > /proc/audio/debug
    echo dma -enable 1 > /proc/audio/debug
    出口条件1:
    1.有异常打印
    > 需进一步排查
    出口条件2:
    无异常打印
    > 对于播音场景,请CAE排查外围电路设计是否正确,量取PIN脚输出信号,对于录音场景,需要使用DUMP PCM指令来进一步排查
    出口条件1:
    >D
    出口条件2:
    >G
    D 1.请客户确认应用收发数据的时间间隔是否稳定,是否存在上层收发数据速率与底层硬件收发速率不匹配的异常 出口条件1:
    1.收发速率不匹配
    > 速率同步问题
    出口条件2:
    上层收发数据正常
    > Audio内部异常
    出口条件1:
    >流程结束
    出口条件2:
    >F
    出口条件1:
    请客户调整应用收发速率,避免出现丢帧或者数据播空的异常
    pageId=62527548
    E 1.DUMP的MHAL & MI层的音频数据是否正常
    出口条件1:
    1.MHAL层数据异常
    > Audio内部异常
    出口条件2:
    DUMP 波形异常
    > 需进一步排查
    出口条件1:
    >F
    出口条件2:
    >G
    F 1.检查Aupll是否有被正常开启
    cat /sys/kernel/debug/clk/clk_summary查看CLK_aupll_384M是否使能
    出口条件1:
    Audio 48M时钟未打开
    > 时钟配置问题
    出口条件2:
    Audio 48M时钟正常
    > Audio内部异常
    出口条件1:
    1.流程结束
    出口条件2:
    1.流程结束
    出口条件1:
    需要CLK Owner 进场协助排查
    出口条件2:
    ==>G
    pageId=62546055
    G DUMP音频数据是否正常
    echo dump_pcm -enable 1 > /proc/audio/debug
    生成文件在/tmp下
    出口条件1:
    数据异常
    > Audio内部异常
    出口条件2:
    数据正常
    > 需进一步排查
    出口条件:提供dump信息给到SW RD分析 出口条件2:
    如果有经过算法处理,请找算法同仁协助排查,检查算法参数,如果未经过算法处理,请提供所需dump信息
    pageId=62546053