Skip to content

SGS Audio Debug SOP Manual

REVISION HISTORY

Revision No.
Description
Date
1.0
  • Initial release
  • 12/16/2024
    1.1
  • Modify keywords
  • 06/10/2025

    Issue 1. Speaker No Sound Output

    Figure 1-1 Speaker No Sound Output Troubleshooting Mind Map
    Flow Method
    Exit Condition
    Next Step
    Materials Required for SWRD
    Related FAQ
    A During playback, use a multimeter to confirm whether AUDIO AUDD18_AUD is at 1.8V Exit Condition 1:
    1. During playback, AUDD18_AUD voltage deviates significantly from 1.8V
    Exit Condition 2:
    2. During playback, AUDD18_AUD is stable at approximately 1.8V
    Exit Condition 1:
    >External power supply issue exists, seek CAE assistance.
    Exit Condition 2:
    >External power supply is normal ==>B
    B Confirm whether the AMP pad padmux setting corresponds to the board (verify if the amp pad on the EVB schematic matches the amp pad in padmux.dtis) Exit Condition 1:
    1. Pad configuration is correct
    Exit Condition 2:
    2. Pad does not match the board
    Exit Condition 1:
    >C
    Exit Condition 2:
    >Please modify the amp pad in padmux.dtsi yourself
    C During playback, use a voltmeter to confirm whether the AMP pad toggles normally between high and low levels
    Exit Condition 1:
    1. Can toggle normally between high and low
    Exit Condition 2:
    2. Cannot toggle between high and low
    Exit Condition 1:
    >D
    Exit Condition 2:
    Trace routing abnormal
    >Please seek CAE assistance for troubleshooting
    D Confirm whether the customer board AMP PAD is enabled by high or low level Exit Condition 1:
    1. Enabled by high level
    Exit Condition 2:
    2. Enabled by low level
    Exit Condition 1:
    >E
    Exit Condition 2:
    > Modify the parameter in the corresponding board's dtsi sound node node:amp-pad, change 1 to 0 to indicate low-level enable
    E During playback, enable RDMA Singen to confirm whether sound output is produced
    echo singen [SinGen Index][Enable] > /proc/mi_modules/mi_ao/mi_aox
    SinGen 0: Device0.
    SinGen 1: Device1.
    SinGen 2: Device2.
    SinGen 3: Device3.
    Example: echo singen 0 1 > /proc/mi_modules/mi_ai/mi_ai0, to enable Singen for Device0
    Exit Condition 1:
    1. Sound output is produced
    Exit Condition 2:
    2. No sound output is produced
    Exit Condition 1:
    >H
    Exit Condition 2:
    >F
    F Cat mi proc info to confirm whether mute is enabled or gain value is set too small Exit Condition 1:
    1. Configuration issue exists
    Exit Condition 2:
    2. No configuration issue exists
    Exit Condition 1:
    ==> Confirm settings with customer
    Exit Condition 2:
    ==> G
    G During playback with RDMA Singen enabled, use an oscilloscope to capture lineout output Exit Condition 1:
    1. Signal present at lineout
    Exit Condition 2:
    2. No signal at lineout
    Exit Condition 1:
    >Seek CAE assistance to confirm if it is an amplifier issue
    Exit Condition 2:
    >After confirming with oscilloscope that there is no signal at the chip output, seek SWRD assistance
    Whether issue can be reproduced on reference board, environment setup method
    H Dump user data to confirm whether written data is normal Exit Condition 1:
    dump data is normal
    Exit Condition 2:
    dump data is abnormal
    Exit Condition 1:
    > Seek SW RD assistance
    Exit Condition 2:
    > Troubleshoot customer app issue
    Confirm whether issue can be reproduced on reference board, environment for reproducing the issue, and reproduction method


    Issue 2. AMIC Recording No Data

    Figure 2-1 AMIC Recording No Data Troubleshooting Mind Map
    Flow Method
    Exit Condition
    Next Step
    Materials Required for SWRD
    Related FAQ
    A During recording, enable Amic Sinegen to confirm whether sine wave can be recorded (refer to MI_AI documentation for Singen enable method) Exit Condition 1:
    1. Cannot record sound
    Exit Condition 2:
    2. Can record sound
    Exit Condition 1:
    Most likely a software issue, perform software troubleshooting==>C
    Exit Condition 2:Most likely a hardware issue, perform hardware troubleshooting==>B
    B Seek CAE to confirm hardware issues, including Audio 1.8V power supply, AMIC bias, and AMIC wiring location, and other hardware-related issues
    Exit Condition 1:
    1. Hardware confirmed no issue
    Exit Condition 2:
    2. Hardware issue found
    Exit Condition 1:
    ==>D
    Exit Condition 2:
    CAE assistance
    C Cat mi proc info to confirm whether AI interface is muted Exit Condition 1:
    1. Not muted
    Exit Condition 2:
    2. Muted
    Exit Condition 1:
    ==> Seek SW RD analysis
    Exit Condition 2:
    Troubleshoot customer APP settings
    Confirm whether issue can be reproduced on reference board, environment for reproducing the issue, and reproduction method


    Issue 3. I2S Codec Adaptation Issue

    Figure 3-1 I2S Codec Adaptation Abnormal Troubleshooting Mind Map
    Flow Method
    Exit Condition
    Next Step
    Materials Required for SWRD
    Related FAQ
    A Confirm whether the AUDIO I2S PAD padmux configuration corresponds to the development board, and whether the pad conflicts with other modes
    Method:
    cd
    vim arch/arm/boot/dts/xxx_xxxx-padmux.dtsi
    Search for whether I2S PAD is switched to MDRV_PUSE_I2S0_XX_XXX mode, and use IO_Check Tool to verify whether mode setting is successful(./io_check_xxx PinID)
    Exit Condition 1:
    1. padmux not configured correctly or conflicts with other modes
    Exit Condition 2:
    2. I2S PAD configuration is normal
    Exit Condition 1:
    >Assist customer in modifying padmux settings
    Exit Condition 2:
    > B
    B Run mi_demo prog_audio_audio corresponding I2S case and use an oscilloscope to capture Tx or Rx signals Exit Condition 1:
    Normal tx rx clk data signals can be captured
    Exit Condition 2:
    Signals cannot be captured, or signals are abnormal
    Exit Condition 1:
    >C
    Exit Condition 2:
    > Seek CAE to confirm pad routing issues and interference issues
    C Confirm whether the I2S mode format and other formats on the chip side match the customer codec, refer to MI API documentation Exit Condition 1:
    Format is normal
    Exit Condition 2:
    Format is abnormal
    Exit Condition 1:
    >D
    Exit Condition 2:
    >Assist customer in modifying I2S format
    D Confirm whether the wiring sequence connected to the codec is correct, and whether there is a common ground
    For 6-wire mode:
    TX_BCK<>RX_BCK
    TX_WCK<
    >RX_WCK
    TX_SDO<>RX_SDI
    PS: codec LRCK is WCK
    For 4-wire mode:
    RX_BCK<
    >RX_BCK
    RX_WCK<>RX_WCK
    RX_SDI<
    >TX_SD0
    TX_SD0<==>RX_SDI
    Exit Condition 1:
    Wiring sequence is correct, common ground exists
    Exit Condition 2:
    Wiring sequence is abnormal, no common ground
    Exit Condition 1:
    ==> E
    Exit Condition 2:
    ==>Assist customer in confirming wiring sequence issues
    E Confirm whether the voltage domain 1.8V/3.3V of the selected pad matches the customer codec Exit Condition 1:
    Voltage matches
    Exit Condition 2:
    Voltage does not match
    Exit Condition 1:
    ==> Organize customer codec information, Tx Rx waveform signals, seek SW RD assistance for troubleshooting
    Exit Condition 2:Seek CAE to confirm the method for switching the corresponding pad voltage domain


    Issue 4. DMIC Not Working Properly

    Figure 4-1 DMIC Not Working Properly Troubleshooting Mind Map
    Flow Method
    Exit Condition
    Next Step
    Materials Required for SWRD
    Related FAQ
    A Confirm whether the AUDIO DMIC PAD padmux configuration corresponds to the development board, and whether the pad conflicts with other modes
    Method:
    cd
    vim arch/arm/boot/dts/xxx_xxxx-padmux.dtsi
    Search for whether DMIC PAD is switched to MDRV_PUSE_DMIC0_XX mode, and use IO_Check Tool to verify whether mode setting is successful(./io_check_xxx PinID)
    Exit Condition 1:
    >padmux not configured correctly or conflicts with other modes
    Exit Condition 2:
    >DMIC PAD configuration is normal
    Exit Condition 1:
    >Assist customer in confirming padmux issues
    Exit Condition 2:
    > B
    B Run prog_audio_audio dmic demo and capture DMIC BCK and DMIC data Exit Condition 1:
    1. BCK at 2.4M, Data present
    Exit Condition 2:
    No BCK, No Data
    Exit Condition 3:
    BCK present, no data
    Exit Condition 1:
    ==>C
    Exit Condition 2:
    Seek CAE to confirm whether routing issues exist
    Exit Condition 3:
    Seek CAE to confirm whether DMIC is defective
    C Confirm whether the wiring sequence is correct
    DMIC wiring is relatively simple, mainly CLK, data, power, and ground
    Exit Condition 1:
    Wiring sequence is correct
    Exit Condition 2:
    Wiring sequence is incorrect
    Exit Condition 1:
    ==>D
    Exit Condition 2:
    Assist customer in clarifying wiring sequence
    D Confirm whether DMIC hardware is 3.3V or 1.8V, and confirm whether the currently selected pad is 3.3V or 1.8V; voltages must match Exit Condition 1:
    1. Voltage matches
    Exit Condition 2:
    2. Voltage does not match
    Exit Condition 1:
    > Organize environment for reproducing the issue, whether customer DMIC spec can reproduce the issue on reference board, seek SW RD assistance
    Exit Condition 2:
    > Seek CAE to confirm voltage domain adjustment method
    Customer DMIC spec
    Reference board reproduction environment


    Issue 5. AI Interface Known Issues FAQ

    5.1 AI Unable to Retrieve Data

    Capture device proc information based on the specific scenario to check current buffer configuration and usage. cat /proc/mi_modules/mi_ai/mi_aix

    Confirm the output buffer configuration. usrDepth and BufCntQuota represent the number of buffers available to the application and the total number of buffers respectively. Check whether usrDepth and BufCntQuota are set to 0.

    Confirm the application buffer retrieval status. usrLockedCnt indicates the number of buffers held by the application without being released. If usrLockedCnt equals usrDepth, it indicates that the application has acquired all available output buffers.

    5.2. Buffer Interval Unstable (Buffer Drop)

    Capture device proc information based on the specific scenario to check current buffer configuration and usage. cat /proc/mi_modules/mi_ai/mi_aix

    • Confirm the output buffer configuration. usrDepth and BufCntQuota represent the number of buffers available to the application and the total number of buffers respectively. Check whether usrDepth and BufCntQuota are too small, causing buffer retrieval by the application to affect normal AI thread operation.
    • If buffers are sufficient but GetFrame/Ms and FPS are significantly lower than expected, organize information and contact the audio owner.

    5.3. Sound Clipping with Normal Sample Values

    This issue is commonly observed with AMIC and DMIC interfaces. Both interface paths have interface gain and DPGA gain. A common scenario is that interface gain is set too high, causing clipping, and then attenuation is applied through DPGA gain, resulting in sample values falling back into the normal range.

    5.4. AMIC Pop Noise Issue

    Root Cause: The ADC reference capacitor needs to charge to 0.9V. Recording before the capacitor is fully charged will result in noise, known as pop noise.

    Solutions:

    • For chips after ifackel, fast capacitor charging design has been added. The default code includes a 50ms delay, so this issue does not occur.

    • For chips before ifackel, keep adc on needs to be enabled in the dtsi file to resolve this issue by increasing power consumption.

    • For fast-boot scenarios where timing is critical and delay is undesirable, SGS_BACH and SGS_BACH_FAST_BOOT need to be enabled in the IPL. This resolves the issue by initiating ADC reference capacitor charging during the IPL phase.

    5.5. DMIC Pop Noise Issue

    Two root causes:

    1. DMIC hardware cannot output valid data immediately after receiving BCK. Typically, approximately 10ms is required before valid data can be output. This abnormal data is accumulated by the IC to an abnormal value, resulting in pop noise.

    2. Many DMIC hardware devices have DC offset. The HPF module inside the IC can pull the DC offset back to the mid-value, but this process requires time. The presence of offset also causes pop noise.

    Solutions:

    • Add the dmic-delay = <80> field to the dtsi sound node; The parameter 80 represents the delay time. The pop noise issue is mitigated by delaying for 80ms.

    Issue 6. AO Interface Known Issues FAQ

    6.1. DAC Pop Noise Issue

    Two root causes:

    1. Voltage variation at the moment of DAC activation.

    2. The DAC reference capacitor requires time to charge. Activating the DAC before charging is complete will result in abnormal sound.

    Solutions:

    • For chips after ifackel, fast capacitor charging design has been added. A 50ms delay is implemented to wait for capacitor charging completion, which also avoids the voltage variation during DAC activation. The AMP pad is then enabled, and DAC pop noise is resolved through amp mute.

    • For chips before ifackel, keep dac on needs to be enabled in the dtsi file to resolve this issue by increasing power consumption.

    Issue 7. Noise Issue When Speaker Amplifier Gain is Adjusted to 9x

    Background: For customers with Pcupid IO at 1.8V, the amplifier gain is adjusted to 9x to meet expected output power. During program execution, noise can be heard from the speaker. In this scenario, audio is not enabled; only the amplifier is enabled.

    Root Cause: When CPU loading is high, internal current noise from the chip couples to the amplifier through ground. When the amplifier is enabled, noise becomes audible.

    Solution: This issue can only be resolved by using a differential amplifier to eliminate ground noise. Since both input terminals of the differential amplifier carry noise, the noise can be cancelled out through differential processing. Additionally, CAE assistance is required to change the Audio AUD_VRM pad connection from ground to a relatively clean ground, the same as the amplifier ground.