Sigmastar Audio_debugsop手册
REVISION HISTORY¶
Revision No. | Description |
Date |
---|---|---|
1.0 | 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. 喇叭播放无声¶

流程 | 方法 | 出口条件 |
下一步 |
需提供给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录音没有数据¶

流程 | 方法 | 出口条件 |
下一步 |
需提供给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工作异常¶

流程 | 方法 | 出口条件 |
下一步 |
需提供给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 无法正常工作问题¶

流程 | 方法 | 出口条件 |
下一步 |
需提供给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. 喇叭播放有杂讯¶

流程 | 方法 | 出口条件 |
下一步 |
需提供给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. 播音/录音过程中频发出现爆音¶

流程 | 方法 |
出口条件 |
下一步 |
需提供给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 |