TAS2557: There was a high frequency noise on the announcer

Part Number: TAS2557

Hi Team

     

The use of instrument test found that the test instrument broadcast, or the use of TI public board, computer broadcast, THD in more than 700Hz are low and flat, there is no noise,

But the NA582V3 system broadcast, THD above 700Hz are high and the waveform has a protrusion, there is a buzzing high frequency noise

What could be causing the high frequency noise on the broadcast?

= >=>;Test instrument broadcast, paired with NA582 V3 housing & speaker

= >;Use TI board, with NA582 V3 housing & speaker, computer broadcast

= >;NA582 V3 system broadcasting, with NA582 V3 housing & speakers

 

NA582 V3_SPK10cm.xlsx

 

  • Hello, 

    Our team is looking into this thread and will have a response for you as soon as possible. 

    Best Regards, 
    Justin Beigel

  • Hi,

    Can you compare the input digital signals from the three different systems? Are you using the same device configuration for all cases?
    Please also inspect power supply rails during the test.
    Also can you provide some scope captures in time domain of the output signals when the signal is OK and when the signal is not OK?

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators

  • OK, I will confirm the above questions.

    I would also like to ask a question: we received I2C for TAS2557, is there any register related to I2C that can see the status of TAS2557, or the FW version in it?

  • Hello, 

    There are the POWER_STATUS (book 0, page 0, address 0x64) and DSP_BOOT_STATUS (book 0, page 0, address 0x65) registers on the device. 

    Best Regards, 

    Justin Beigel

  • Hi

    We used the purepath tool to generate FW image from the public plate  (combined_configuration_0_TuningMode_48KHz.cfg)Does it configure PCM mode?
    check datashet, there are several modes, I2S SDP (RJF) mode. the I2s is default mode
    I read that our device works in Mono PCM mode,Is this the right model?


  • Hello, 

    combined_configuration_0_TuningMode_48KHz.cfg

    Was this supposed to be a file attachment? I only have text rather than a link to a file. 

    Thank you, 

    Justin Beigel

  • hello
         Is there a register to see the software version?Because the software in our TAS has been updated, now I don't know which version of the software is it?

  •  As shown in the figure, if I want to configure my ASI PCM mode to DSP mode, I only need to write the corresponding register values of ASI1_FORMAT and ASI2_FORMAT, but I find that the register corresponding to ASI1_FORMAT cannot write values, so I cannot configure it to DSP mode.How do I configure DSP mode?

  • Hello, 

    Unfortunately, there is no version register that tracks the changes to the TAS2557 configuration. 

    As for ASI1_FORMAT and ASI2_FORMAT, it appears there is a typo in table 18. You can use bits 7-5 of both ASIx_FORMAT registers to configure the PCM and DSP modes.

    Best Regards, 
    Justin Beigel

  • Hi 
      We set MCLK and BCLK at 24.576 MHz and 3.072 MHz respectively, and LRCLK is 48kHz.

    And found that the noise was gone, but the volume of the sound would go up and down,

    What could be the reason?

  • Hi,

    If you're using smartamp (tuning) mode and playing a sine tone or single frequency signal the output can start "pumping". This happens due to speaker protection which protects the speaker from heating.
    Is the volume going up and down with actual voice or music?
    You could also test using ROM mode, there is no processing in this mode and there should be no volume variations.

    Regarding clock settings, perhaps the configuration was not correct. Please notice you must specify the sample rate, clock source and its frequency at End System Integration to generate the required configuration files.

    Best regards,
    -Ivan Salazar
    Applications Engineer - Low Power Audio & Actuators

  • Hi
    ok ,I got it
    The problem of finding another problem

    It has been found that when TAS 2557 is set to TUNE mode, there will be a 'buzzing' sound

    After writing the register, set it to ROM mode and turn down the volume, the noise disappears.Scan frequency sound source is also normal.

    In code, it is directly set as ROM mode to power on, and there is no noise in broadcasting, but it can only broadcast frequency to 3 KHz when broadcasting the sweeping sound source.

    Only after setting tune mode first, and then switching to ROM mode and adjusting the volume, the broadcast was completely normal.

    I would like to ask whether some registers in ROM mode should be set at the tune mode side?What are the associated registers that can be tuned for the tune mode?

  • Hello, 

    Can you send an I2C script of what you are writing when you are switching from tuning to ROM mode as well how you are first setting tune mode? 

    Thank you, 

    Justin Beigel

  • The tune mode broadcast volume will go up and down, and then the broadcast volume will get lower and lower

    Are the parameters down here relevant?EDGE_RATE or DAC_GAIN ,

    Or in relation to something else?
    If I want to change the volume, do I need to change the value of DAC_RATE?

     

     

  • Hi
    By writing register:

    Ti_rom_mode.txt
    #########################################################
    # TAS2557_Mono debug cfg file
    # PPC3 File: NA582 V3_Cut2_mok-up_speaker data.ppc3
    # TAS2557_Mono version: 3.0.6-beta.36
    # DDC Name: NA582 V3_V02_0330_MCLK24_576MHz
    #########################################################
    #d 1
    sleep 0.1
    echo w 0x00 0x00 > /proc/sc_codec 
    echo w 0x7f 0x64 > /proc/sc_codec
    echo w 0x07 0x01 > /proc/sc_codec
    #echo d 10
    sleep 0.1
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x07 0x03 > /proc/sc_codec
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x2c 0x00 > /proc/sc_codec
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x04 0x60 > /proc/sc_codec
    # d 02
    sleep 0.1
    echo w 0x05 0x00 > /proc/sc_codec
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x04 0x00 > /proc/sc_codec
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x01 0x01 > /proc/sc_codec
    # d 10
    sleep 0.1
    # PLL0x be0xgi > /proc/sc_codecns
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x00 0x01 > /proc/sc_codec
    echo w 0x73 0x0f > /proc/sc_codec
    echo w 0x74 0x0d > /proc/sc_codec
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x64 > /proc/sc_codec
    echo w 0x1b 0x02 > /proc/sc_codec
    echo w 0x1c 0x04 > /proc/sc_codec
    echo w 0x1d 0x00 > /proc/sc_codec
    echo w 0x1e 0x00 > /proc/sc_codec
    echo w 0x20 0x02 > /proc/sc_codec
    echo w 0x22 0x08 > /proc/sc_codec
    echo w 0x02 0x10 > /proc/sc_codec
    echo w 0x21 0x08 > /proc/sc_codec
    echo w 0x01 0x08 > /proc/sc_codec
    echo w 0x2b 0x00 > /proc/sc_codec
    echo w 0x2c 0x40 > /proc/sc_codec
    echo w 0x1f 0x20 > /proc/sc_codec
    echo w 0x2a 0x00 > /proc/sc_codec
    # PLL0x en0xds > /proc/sc_codec
    # Pro0xgra0xm  > /proc/sc_codecbegins
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x08 0x04 > /proc/sc_codec
    echo w 0x0a 0x08 > /proc/sc_codec
    echo w 0x34 0x03 > /proc/sc_codec
    echo w 0x00 0x32 > /proc/sc_codec
    echo w 0x3c 0x3d > /proc/sc_codec
    
    echo w 0x3d 0x99 > /proc/sc_codec
    echo w 0x3e 0x99 > /proc/sc_codec
    echo w 0x3f 0x9a > /proc/sc_codec
    
    echo w 0x70 0x00 > /proc/sc_codec
    
    echo w 0x71 0x03 > /proc/sc_codec
    echo w 0x72 0xde > /proc/sc_codec
    echo w 0x73 0x00 > /proc/sc_codec
    
    echo w 0x68 0x00 > /proc/sc_codec
    
    echo w 0x69 0x00 > /proc/sc_codec 
    echo w 0x6a 0x00 > /proc/sc_codec
    echo w 0x6b 0x00 > /proc/sc_codec
    
    echo w 0x00 0x33 > /proc/sc_codec
    echo w 0x64 0x39 > /proc/sc_codec
    
    echo w 0x65 0x80 > /proc/sc_codec
    echo w 0x66 0x00 > /proc/sc_codec
    echo w 0x67 0x00 > /proc/sc_codec
    
    echo w 0x00 0x35 > /proc/sc_codec
    echo w 0x4c 0x00 > /proc/sc_codec
    
    echo w 0x4d 0x00 > /proc/sc_codec
    echo w 0x4e 0x00 > /proc/sc_codec
    echo w 0x4f 0x01 > /proc/sc_codec
    
    echo w 0x00 0x34 > /proc/sc_codec
    echo w 0x68 0x00 > /proc/sc_codec
    
    echo w 0x69 0x6a > /proc/sc_codec
    echo w 0x6a 0xe2 > /proc/sc_codec
    echo w 0x6b 0x36 > /proc/sc_codec
    
    echo w 0x6c 0x00 > /proc/sc_codec
    
    echo w 0x6d 0x6a > /proc/sc_codec
    echo w 0x6e 0xe2 > /proc/sc_codec
    echo w 0x6f 0x36 > /proc/sc_codec
    
    echo w 0x70 0x7f > /proc/sc_codec
    
    echo w 0x71 0x2a > /proc/sc_codec
    echo w 0x72 0x3b > /proc/sc_codec
    echo w 0x73 0x94 > /proc/sc_codec
    
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x22 0x01 > /proc/sc_codec
    echo w 0x00 0x32 > /proc/sc_codec
    echo w 0x3c 0x3d > /proc/sc_codec
    
    echo w 0x3d 0x99 > /proc/sc_codec 
    echo w 0x3e 0x99 > /proc/sc_codec
    echo w 0x3f 0x9a > /proc/sc_codec
    echo w 0x40 0x30 > /proc/sc_codec
    echo w 0x41 0x00 > /proc/sc_codec
    echo w 0x42 0x00 > /proc/sc_codec
    echo w 0x43 0x00 > /proc/sc_codec
    echo w 0x44 0x50 > /proc/sc_codec
    echo w 0x45 0x00 > /proc/sc_codec
    echo w 0x46 0x00 > /proc/sc_codec
    echo w 0x47 0x00 > /proc/sc_codec
    
    echo w 0x4c 0x02 > /proc/sc_codec
    
    echo w 0x4d 0x00 > /proc/sc_codec
    echo w 0x4e 0x00 > /proc/sc_codec
    echo w 0x4f 0x00 > /proc/sc_codec
    
    echo w 0x60 0x28 > /proc/sc_codec
    
    echo w 0x61 0x00 > /proc/sc_codec
    echo w 0x62 0x00 > /proc/sc_codec
    echo w 0x63 0x00 > /proc/sc_codec
    
    echo w 0x00 0x33 > /proc/sc_codec
    echo w 0x40 0x00 > /proc/sc_codec
    
    echo w 0x41 0x00 > /proc/sc_codec
    echo w 0x42 0x00 > /proc/sc_codec
    echo w 0x43 0x00 > /proc/sc_codec
    
    echo w 0x64 0x39 > /proc/sc_codec
    
    echo w 0x65 0x80 > /proc/sc_codec
    echo w 0x66 0x00 > /proc/sc_codec
    echo w 0x67 0x00 > /proc/sc_codec
    
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x06 0x7c > /proc/sc_codec
    echo w 0x2b 0x03 > /proc/sc_codec
    echo w 0x2a 0x04 > /proc/sc_codec
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x64 > /proc/sc_codec
    echo w 0x28 0x80 > /proc/sc_codec
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x08 0x04 > /proc/sc_codec
    echo w 0x00 0x33 > /proc/sc_codec
    echo w 0x10 0x6f > /proc/sc_codec
    
    echo w 0x11 0x5c > /proc/sc_codec 
    echo w 0x12 0x28 > /proc/sc_codec
    echo w 0x13 0xf5 > /proc/sc_codec
    echo w 0x14 0x67 > /proc/sc_codec
    echo w 0x15 0xae > /proc/sc_codec
    echo w 0x16 0x14 > /proc/sc_codec
    echo w 0x17 0x7a > /proc/sc_codec
    
    echo w 0x20 0x1c > /proc/sc_codec
    
    echo w 0x21 0x00 > /proc/sc_codec 
    echo w 0x22 0x00 > /proc/sc_codec
    echo w 0x23 0x00 > /proc/sc_codec
    echo w 0x24 0x1f > /proc/sc_codec
    echo w 0x25 0x0a > /proc/sc_codec
    echo w 0x26 0x3d > /proc/sc_codec
    echo w 0x27 0x70 > /proc/sc_codec
    echo w 0x28 0x22 > /proc/sc_codec
    echo w 0x29 0x14 > /proc/sc_codec
    echo w 0x2a 0x7a > /proc/sc_codec
    echo w 0x2b 0xe1 > /proc/sc_codec
    echo w 0x2c 0x25 > /proc/sc_codec
    echo w 0x2d 0x1e > /proc/sc_codec
    echo w 0x2e 0xb8 > /proc/sc_codec
    echo w 0x2f 0x51 > /proc/sc_codec
    echo w 0x30 0x28 > /proc/sc_codec
    echo w 0x31 0x28 > /proc/sc_codec
    echo w 0x32 0xf5 > /proc/sc_codec
    echo w 0x33 0xc2 > /proc/sc_codec
    echo w 0x34 0x2b > /proc/sc_codec
    echo w 0x35 0x33 > /proc/sc_codec
    echo w 0x36 0x33 > /proc/sc_codec
    echo w 0x37 0x33 > /proc/sc_codec
    echo w 0x38 0x2e > /proc/sc_codec
    echo w 0x39 0x3d > /proc/sc_codec
    echo w 0x3a 0x70 > /proc/sc_codec
    echo w 0x3b 0xa3 > /proc/sc_codec
    echo w 0x3c 0x31 > /proc/sc_codec
    echo w 0x3d 0x47 > /proc/sc_codec
    echo w 0x3e 0xae > /proc/sc_codec
    echo w 0x3f 0x14 > /proc/sc_codec
    # Program ends
    # PRE begins
    echo w 0x00 0x00 > /proc/sc_codec 
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x2f 0x2a > /proc/sc_codec
    echo w 0x2d 0x17 > /proc/sc_codec
    echo w 0x00 0x02 > /proc/sc_codec
    echo w 0x06 0x01 > /proc/sc_codec
    echo w 0x00 0x32 > /proc/sc_codec
    echo w 0x14 0x00 > /proc/sc_codec
    
    echo w 0x15 0x15 > /proc/sc_codec
    echo w 0x16 0x0f > /proc/sc_codec
    echo w 0x17 0x21 > /proc/sc_codec
    
    echo w 0x00 0x00 > /proc/sc_codec 
    echo w 0x7f 0x64 > /proc/sc_codec
    echo w 0x40 0x00 > /proc/sc_codec
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x00 0x32 > /proc/sc_codec
    echo w 0x54 0x00 > /proc/sc_codec
    
    echo w 0x55 0x88 > /proc/sc_codec 
    echo w 0x56 0x3f > /proc/sc_codec
    echo w 0x57 0xd1 > /proc/sc_codec
    echo w 0x58 0x00 > /proc/sc_codec
    echo w 0x59 0x06 > /proc/sc_codec
    echo w 0x5a 0xd3 > /proc/sc_codec
    echo w 0x5b 0x72 > /proc/sc_codec
    
    echo w 0x00 0xfd > /proc/sc_codec 
    echo w 0x0d 0x0d > /proc/sc_codec
    echo w 0x00 0xfe > /proc/sc_codec
    echo w 0x28 0x00 > /proc/sc_codec
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x82 > /proc/sc_codec
    echo w 0x00 0x19 > /proc/sc_codec
    echo w 0x38 0xd1 > /proc/sc_codec
    
    echo w 0x39 0x50 > /proc/sc_codec 
    echo w 0x3a 0x00 > /proc/sc_codec
    echo w 0x3b 0x10 > /proc/sc_codec
    # PRE ends
    # Configuration begins
    # Configuration ends
    echo w 0x00 0x00 > /proc/sc_codec 
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x05 0xa0 > /proc/sc_codec
    echo w 0x04 0xf2 > /proc/sc_codec
    #d 02
    sleep 0.1
    
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x2d 0x21 > /proc/sc_codec
    echo w 0x2e 0x21 > /proc/sc_codec
    #echo w 0x2c 0x0b > /proc/sc_codec
    echo w 0x2f 0x0b > /proc/sc_codec
    # PostPowerUp begins
    # PostPowerUp ends
    #d 02
    sleep 0.1
    echo w 0x00 0x00 > /proc/sc_codec
    echo w 0x7f 0x00 > /proc/sc_codec
    echo w 0x07 0x00 > /proc/sc_codec
    echo w 0x7f 0x64 > /proc/sc_codec
    echo w 0x07 0x00 > /proc/sc_codec
    


  • Hi Justin
         According to the Guild documentation(End System Integration to generate bin file.docx), use the PPC3 tool to generate the firmware (NA582V3_V02.rar, NA582V3_V02.bin), then import it into driver of TAS2557 (tas2557-android-driver.zip), then uploaded to TAS2557.


    After the above operation, the broadcast volume of TAS2557 will be up and down, and the volume will be lower and lower for different broadcasts (with the same audio source) each time.
    What is the cause of such a problem?
    Is there any new driver in the driver code besides tas2557-android-driver.zip?

    End System Integration to generate bin file.docxNA582V3_V02.rartas2557-android-driver.zip

  • Hello, 

    I will consult with Ivan about this issue and get back to you. 

    Our newest driver can be found at: https://git.ti.com/cgit/tas2557sw-android/tas2557-android-driver/ 

    Best Regards,

    Justin Beigel