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.

TAS2110EVM: TAS2110EVM

Part Number: TAS2110EVM
Other Parts Discussed in Thread: TAS2110, AM62L

Tool/software:

Hi,

We are working on AM62L and communicating TAS2110 over i2s and i2c.

        codec_audio: sound {

                compatible = "simple-audio-card";

                simple-audio-card,name = "AM62L-HAVN";

                simple-audio-card,format = "i2s";

                simple-audio-card,bitclock-master = <&cpu_codec>;

                simple-audio-card,frame-master = <&cpu_codec>; // <== this controls WCLK!

                simple-audio-card,bitclock-inversion;
 
                cpu_codec:simple-audio-card,cpu {

                        sound-dai = <&mcasp0>;

                        //clocks = <&clk_24mhz>;

                        dai-tdm-slot-num = <2>;

                        dai-tdm-slot-width = <24>; // or 24 depending on TAS2110 config

                        dai-format = "i2s";

                        dai-tdm-slot-mask = <1 0>; // L channel only if mono

                        //frame-inversion;          // Optional, if required

                        status = "okay";

                };
 
                sound_master: simple-audio-card,codec {

                        sound-dai = <&tas2120>;

                        status = "okay";

                        //clocks = <&tlv320_mclk>;

                };

        };
 
i2c1 node:         tas2120: audio-codec@4f {
                #sound-dai-cells = <0>;
                compatible = "ti,tas2110", "ti,tas2562";
                reg = <0x4F>;  // TODO address need to confirm from.
                ai3x-micbias-vg = <1>;  //* 2.0V
                status="okay";
                ti,imon-slot-no = <0>; /* Current sense slot, default */
                ti,vmon-slot-no = <1>; /* Voltage sense slot, default */
                //* Regulators
                AVDD-supply = <&vcc_3v3_sys>;
                IOVDD-supply = <&vcc_3v3_sys>;
                DRVDD-supply = <&vcc_3v3_sys>;
                DVDD-supply = <&vcc_1v8>;
        };
 

$ amixer
Simple mixer control 'ASI1 Sel',0
Capabilities: enum
Items: 'I2C offset' 'Left' 'Right' 'LeftRightDiv2'
Item0: 'I2C offset'
Simple mixer control 'Amp Gain',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 28
Mono: 20 [71%] [18.50dB]
Simple mixer control 'Digital Volume Control',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 110
Mono: 50 [45%] [-60.00dB]

$aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: AM62LHAVN [AM62L-HAVN], device 0: davinci-mcasp.0-tas2562-amplifier tas2562-amplifier-0 [davinci-mcasp.0-tas2562-amplifier tas2562-amplifier-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

$ aplay -Dplughw:0,0 -f S24_LE -r 44100 Bontempi-B3-C5.wav
Warning: format is changed to S16_LE
Playing WAVE 'Bontempi-B3-C5.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

But aplay command is hang no response, no sound over i2s and also no clock over bclk line.

Please help me.

Thanks,

  • Hi Saurav,

    We'll take a look at your issue description and come back with further information soon.

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Hi Guy

    Please add an ampersand at the end of the aplay so that aplay will be executed in the background. Then please dump the register during playback.

  • i2cdump

    $ i2cdump -y -a -f 2 0x4f | hexdump -C
    00000000 20 20 20 20 20 30 20 20 31 20 20 32 20 20 33 20 | 0 1 2 3 |
    00000010 20 34 20 20 35 20 20 36 20 20 37 20 20 38 20 20 | 4 5 6 7 8 |
    00000020 39 20 20 61 20 20 62 20 20 63 20 20 64 20 20 65 |9 a b c d e|
    00000030 20 20 66 20 20 20 20 30 31 32 33 34 35 36 37 38 | f 012345678|
    00000040 39 61 62 63 64 65 66 0a 30 30 3a 20 30 30 20 30 |9abcdef.00: 00 0|
    00000050 30 20 30 65 20 32 31 20 63 36 20 32 32 20 32 39 |0 0e 21 c6 22 29|
    00000060 20 30 32 20 33 32 20 31 30 20 31 33 20 30 32 20 | 02 32 10 13 02 |
    00000070 30 30 20 30 34 20 30 35 20 30 36 20 20 20 20 2e |00 04 05 06 .|
    00000080 2e 3f 21 3f 22 29 3f 32 3f 3f 3f 2e 3f 3f 3f 0a |.?!?")?2???.???.|
    00000090 31 30 3a 20 30 37 20 37 66 20 31 32 20 37 36 20 |10: 07 7f 12 76 |
    000000a0 30 31 20 32 65 20 36 30 20 30 65 20 30 63 20 30 |01 2e 60 0e 0c 0|
    000000b0 30 20 66 63 20 61 36 20 64 66 20 65 66 20 66 66 |0 fc a6 df ef ff|
    000000c0 20 30 30 20 20 20 20 3f 3f 3f 76 3f 2e 60 3f 3f | 00 ???v?.`??|
    000000d0 2e 3f 3f 3f 3f 2e 2e 0a 32 30 3a 20 30 30 20 30 |.????...20: 00 0|
    000000e0 30 20 38 30 20 30 30 20 30 34 20 30 30 20 30 30 |0 80 00 04 00 00|
    000000f0 20 38 30 20 30 30 20 38 30 20 30 30 20 30 30 20 | 80 00 80 00 00 |
    00000100 30 30 20 38 63 20 30 30 20 61 33 20 20 20 20 2e |00 8c 00 a3 .|
    00000110 2e 3f 2e 3f 2e 2e 3f 2e 3f 2e 2e 2e 3f 2e 3f 0a |.?.?..?.?...?.?.|
    00000120 33 30 3a 20 31 39 20 34 30 20 38 31 20 33 34 20 |30: 19 40 81 34 |
    00000130 34 62 20 37 34 20 30 39 20 58 58 20 30 30 20 30 |4b 74 09 XX 00 0|
    00000140 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    00000150 20 30 30 20 20 20 20 3f 40 3f 34 4b 74 3f 58 2e | 00 ?@?4Kt?X.|
    00000160 2e 2e 2e 2e 2e 2e 2e 0a 34 30 3a 20 30 30 20 30 |........40: 00 0|
    00000170 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    00000180 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 | 00 00 00 00 00 |
    00000190 30 30 20 30 30 20 30 30 20 30 30 20 20 20 20 2e |00 00 00 00 .|
    000001a0 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 0a |................|
    000001b0 35 30 3a 20 30 30 20 30 30 20 30 30 20 30 30 20 |50: 00 00 00 00 |
    000001c0 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 |00 00 00 00 00 0|
    000001d0 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    000001e0 20 30 30 20 20 20 20 2e 2e 2e 2e 2e 2e 2e 2e 2e | 00 .........|
    000001f0 2e 2e 2e 2e 2e 2e 2e 0a 36 30 3a 20 30 30 20 30 |........60: 00 0|
    00000200 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    00000210 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 | 00 00 00 00 00 |
    00000220 30 30 20 30 30 20 30 30 20 30 30 20 20 20 20 2e |00 00 00 00 .|
    00000230 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 0a |................|
    00000240 37 30 3a 20 30 30 20 30 30 20 30 30 20 30 30 20 |70: 00 00 00 00 |
    00000250 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 |00 00 00 00 00 0|
    00000260 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    00000270 20 62 37 20 20 20 20 2e 2e 2e 2e 2e 2e 2e 2e 2e | b7 .........|
    00000280 2e 2e 2e 2e 2e 2e 3f 0a 38 30 3a 20 30 30 20 30 |......?.80: 00 0|
    00000290 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    000002a0 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 | 00 00 00 00 00 |
    000002b0 30 30 20 30 30 20 30 30 20 30 30 20 20 20 20 2e |00 00 00 00 .|
    000002c0 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 0a |................|
    000002d0 39 30 3a 20 30 30 20 30 30 20 30 30 20 30 30 20 |90: 00 00 00 00 |
    000002e0 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 |00 00 00 00 00 0|
    000002f0 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    00000300 20 30 30 20 20 20 20 2e 2e 2e 2e 2e 2e 2e 2e 2e | 00 .........|
    00000310 2e 2e 2e 2e 2e 2e 2e 0a 61 30 3a 20 30 30 20 30 |........a0: 00 0|
    00000320 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    00000330 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 | 00 00 00 00 00 |
    00000340 30 30 20 30 30 20 30 30 20 30 30 20 20 20 20 2e |00 00 00 00 .|
    00000350 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 0a |................|
    00000360 62 30 3a 20 30 30 20 30 30 20 30 30 20 30 30 20 |b0: 00 00 00 00 |
    00000370 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 |00 00 00 00 00 0|
    00000380 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    00000390 20 30 30 20 20 20 20 2e 2e 2e 2e 2e 2e 2e 2e 2e | 00 .........|
    000003a0 2e 2e 2e 2e 2e 2e 2e 0a 63 30 3a 20 30 30 20 30 |........c0: 00 0|
    000003b0 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    000003c0 20 30 30 20 30 30 20 30 30 20 58 58 20 30 30 20 | 00 00 00 XX 00 |
    000003d0 30 30 20 30 30 20 30 30 20 30 30 20 20 20 20 2e |00 00 00 00 .|
    000003e0 2e 2e 2e 2e 2e 2e 2e 2e 2e 58 2e 2e 2e 2e 2e 0a |.........X......|
    000003f0 64 30 3a 20 30 30 20 30 30 20 30 30 20 30 30 20 |d0: 00 00 00 00 |
    00000400 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 |00 00 00 00 00 0|
    00000410 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    00000420 20 30 30 20 20 20 20 2e 2e 2e 2e 2e 2e 2e 2e 2e | 00 .........|
    00000430 2e 2e 2e 2e 2e 2e 2e 0a 65 30 3a 20 30 30 20 30 |........e0: 00 0|
    00000440 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    00000450 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 | 00 00 00 00 00 |
    00000460 30 30 20 30 30 20 30 30 20 30 30 20 20 20 20 2e |00 00 00 00 .|
    00000470 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 0a |................|
    00000480 66 30 3a 20 30 30 20 30 30 20 30 30 20 30 30 20 |f0: 00 00 00 00 |
    00000490 30 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 |00 00 00 00 00 0|
    000004a0 30 20 30 30 20 30 30 20 30 30 20 30 30 20 30 30 |0 00 00 00 00 00|
    000004b0 20 30 30 20 20 20 20 2e 2e 2e 2e 2e 2e 2e 2e 2e | 00 .........|
    000004c0 2e 2e 2e 2e 2e 2e 2e 0a |........|

  • Can you provide init sequence of TAS2110 device to configure as I2S with internal PLL enable ?

  • Pls use following command

    # i2cset -y -f 2 4f 0 0

    # i2cset -y -f 2 4f 7f 0

    # i2cset -y -f 2 4f 0 0

    # i2cdump -y -f 2 4f

  • As far as I know, it won't be specially set. Let me transfer your question to our hardware expert for more details.

  • Hi Saurav,

    It seems the reg dump you shared is from a different page than 0.
    The commands suggested by Shenghao should allow you to move into page 0 and then make the reg dump of that page.

    Regarding PLL settings, this is usually set automatically by the auto-detect feature. You can confirm if this feature is enabled by the status of AUTO_RATE bit in register 0x06.

    Based off the logs you've shared so far, I assume FSYNC = 44.1kHz and SBCLK = 2.8224MHz, is that correct?

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Ohk I will check and update with register dump

  • HI Saurav,

    Thanks, we'll be waiting for the new information.

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Hi 

    I got all the clock but when did apply command i got error and also I didn't get any audio

    [ 117.017017] tasdevice-codec 1-004f: select_cfg_blk: conf 0, block type:PRE_POWER_UP device idx = 0x01
    [ 117.041805] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.048110] tasdevice-codec 1-004f: process_block: single write error
    [ 117.069962] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.076270] tasdevice-codec 1-004f: process_block: single write error
    [ 117.098186] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.104486] tasdevice-codec 1-004f: process_block: single write error
    [ 117.126363] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.132672] tasdevice-codec 1-004f: process_block: single write error
    [ 117.154479] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.160781] tasdevice-codec 1-004f: process_block: single write error
    [ 117.182588] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.188889] tasdevice-codec 1-004f: process_block: single write error
    [ 117.210702] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.217024] tasdevice-codec 1-004f: process_block: single write error
    [ 117.238847] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.245198] tasdevice-codec 1-004f: process_block: single write error
    [ 117.267049] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.273348] tasdevice-codec 1-004f: process_block: single write error
    [ 117.295153] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.301454] tasdevice-codec 1-004f: process_block: single write error
    [ 117.323260] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.329557] tasdevice-codec 1-004f: process_block: single write error
    [ 117.351369] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.357664] tasdevice-codec 1-004f: process_block: single write error
    [ 117.379469] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.385787] tasdevice-codec 1-004f: process_block: single write error
    [ 117.407599] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.413904] tasdevice-codec 1-004f: process_block: single write error
    [ 117.435664] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.441968] tasdevice-codec 1-004f: process_block: single write error
    [ 117.463765] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.470062] tasdevice-codec 1-004f: process_block: single write error
    [ 117.491875] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.498220] tasdevice-codec 1-004f: tasdevice_process_block: bulk_write error = -2
    [ 117.521207] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.527515] tasdevice-codec 1-004f: tasdevice_process_block: bulk_write error = -2
    [ 117.550454] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.556757] tasdevice-codec 1-004f: tasdevice_process_block: bulk_write error = -2
    [ 117.579689] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.585988] tasdevice-codec 1-004f: tasdevice_process_block: bulk_write error = -2
    [ 117.608918] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.615215] tasdevice-codec 1-004f: tasdevice_process_block: bulk_write error = -2
    [ 117.638263] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.644560] tasdevice-codec 1-004f: tasdevice_process_block: bulk_write error = -2
    [ 117.670143] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.676438] tasdevice-codec 1-004f: tasdevice_process_block: bulk_write error = -2
    [ 117.699370] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.705668] tasdevice-codec 1-004f: tasdevice_process_block: bulk_write error = -2
    [ 117.728594] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 117.734892] tasdevice-codec 1-004f: process_block: single write error
    [ 117.741357] tasdevice-codec 1-004f: powercontrol_routine:1292: leave
    [ 118.866203] tasdevice-codec 1-004f: select_cfg_blk: profile_conf_id = 0
    [ 118.872940] tasdevice-codec 1-004f: select_cfg_blk: conf 0, block type:PRE_SHUTDOWN device idx = 0x01
    [ 118.899321] tasdevice-codec 1-004f: tasdevice_change_chn_book, E=-2
    [ 118.905636] tasdevice-codec 1-004f: process_block: single write error

  • also i try to dump register setting using driver , i got below error 

    cat /sys/bus/i2c/drivers/tasdevice-codec/1-004f/regdump
    i2c-addr: 0x4f
    DeviceID: 0x02
    [tasdevice]regdump: read register failed!
    ======caught smartpa reg end ======

  • $ cat /sys/bus/i2c/drivers/tasdevice-codec/1-004f/regcfg_list
    Conf 00: case01-speaker-16bit
    block type:PRE_POWER_UP device idx = 0x01
    SINGLE BYTE:
    BOOK0x00 PAGE0xfd REG0x0d VALUE = 0x0d
    BOOK0x00 PAGE0xfd REG0x19 VALUE = 0x80
    BOOK0x00 PAGE0xfd REG0x32 VALUE = 0x49
    BOOK0x00 PAGE0xfd REG0x3f VALUE = 0x21
    BOOK0x00 PAGE0xfd REG0x51 VALUE = 0xc1
    BOOK0x00 PAGE0x00 REG0x03 VALUE = 0x16
    BOOK0x00 PAGE0x00 REG0x0a VALUE = 0x03
    BOOK0x00 PAGE0x00 REG0x0b VALUE = 0x00
    BOOK0x00 PAGE0x00 REG0x11 VALUE = 0x00
    BOOK0x00 PAGE0x00 REG0x16 VALUE = 0x00
    BOOK0x00 PAGE0x00 REG0x17 VALUE = 0x00
    BOOK0x00 PAGE0x00 REG0x18 VALUE = 0x00
    BOOK0x00 PAGE0x00 REG0x32 VALUE = 0x81
    BOOK0x00 PAGE0x00 REG0x35 VALUE = 0x84
    BOOK0x00 PAGE0x00 REG0x38 VALUE = 0x20
    BOOK0x00 PAGE0x00 REG0x40 VALUE = 0xb6
    BURST:
    BOOK0x00 PAGE0x02
    REG0x10 = 0x03 REG0x11 = 0x4a REG0x12 = 0x51 REG0x13 = 0x6c
    REG0x14 = 0x2d REG0x15 = 0x6a REG0x16 = 0x86 REG0x17 = 0x6f
    REG0x18 = 0x47 REG0x19 = 0x5c REG0x1a = 0x28 REG0x1b = 0xf6
    REG0x1c = 0x16 REG0x1d = 0x66 REG0x1e = 0x66 REG0x1f = 0x66
    REG0x20 = 0x34 REG0x21 = 0xcc REG0x22 = 0xcc REG0x23 = 0xcd
    REG0x24 = 0x10 REG0x25 = 0x00 REG0x26 = 0x00 REG0x27 = 0x00
    REG0x28 = 0x2e REG0x29 = 0x66 REG0x2a = 0x66 REG0x2b = 0x66
    REG0x2c = 0x2b REG0x2d = 0x33 REG0x2e = 0x33 REG0x2f = 0x33
    REG0x30 = 0x7f REG0x31 = 0xfb REG0x32 = 0xb6 REG0x33 = 0x14
    REG0x34 = 0x80 REG0x35 = 0x04 REG0x36 = 0x49 REG0x37 = 0xed
    REG0x38 = 0x7f REG0x39 = 0xf7 REG0x3a = 0x6c REG0x3b = 0x28
    REG0x3c = 0x3f REG0x3d = 0xff REG0x3e = 0x7e REG0x3f = 0xa3
    REG0x40 = 0x01 REG0x41 = 0x01 REG0x42 = 0x5b REG0x43 = 0x4c
    REG0x44 = 0x00 REG0x45 = 0x00 REG0x46 = 0x03 REG0x47 = 0x1f
    REG0x48 = 0x02 REG0x49 = 0x46 REG0x4a = 0xb4 REG0x4b = 0xe4
    REG0x4c = 0xe0 REG0x4d = 0x00 REG0x4e = 0x00 REG0x4f = 0x01
    REG0x50 = 0x6e REG0x51 = 0xd9 REG0x52 = 0xeb REG0x53 = 0xa1
    REG0x54 = 0x00 REG0x55 = 0x00 REG0x56 = 0x00 REG0x57 = 0x04
    REG0x58 = 0x08 REG0x59 = 0x09 REG0x5a = 0xbc REG0x5b = 0xc4
    REG0x5c = 0x01 REG0x5d = 0xc9 REG0x5e = 0x24 REG0x5f = 0x92
    REG0x60 = 0x00 REG0x61 = 0x12 REG0x62 = 0x49 REG0x63 = 0x25
    REG0x64 = 0x00 REG0x65 = 0x20 REG0x66 = 0xc4 REG0x67 = 0x9c
    BURST:
    BOOK0x00 PAGE0x02
    REG0x6c = 0x00 REG0x6d = 0x00 REG0x6e = 0x12 REG0x6f = 0xc0
    REG0x70 = 0x7f REG0x71 = 0xfb REG0x72 = 0xb6 REG0x73 = 0x14
    REG0x74 = 0x80 REG0x75 = 0x04 REG0x76 = 0x49 REG0x77 = 0xed
    REG0x78 = 0x7f REG0x79 = 0xf7 REG0x7a = 0x6c REG0x7b = 0x28
    REG0x7c = 0x72 REG0x7d = 0x14 REG0x7e = 0x82 REG0x7f = 0xc0
    BURST:
    BOOK0x00 PAGE0x04
    REG0x58 = 0x00 REG0x59 = 0x00 REG0x5a = 0x00 REG0x5b = 0x64
    REG0x5c = 0x40 REG0x5d = 0xbd REG0x5e = 0xb7 REG0x5f = 0xc0
    REG0x60 = 0x39 REG0x61 = 0x80 REG0x62 = 0x00 REG0x63 = 0x00
    REG0x64 = 0x2d REG0x65 = 0x6a REG0x66 = 0x86 REG0x67 = 0x6f
    REG0x68 = 0x02 REG0x69 = 0x46 REG0x6a = 0xb4 REG0x6b = 0xe4
    BURST:
    BOOK0x64 PAGE0x08
    REG0x1c = 0x50 REG0x1d = 0x17 REG0x1e = 0x01 REG0x1f = 0xc0
    BURST:
    BOOK0x64 PAGE0x07
    REG0x38 = 0x2f REG0x39 = 0x33 REG0x3a = 0x33 REG0x3b = 0x33
    REG0x3c = 0x00 REG0x3d = 0x00 REG0x3e = 0x00 REG0x3f = 0x00
    REG0x40 = 0x04 REG0x41 = 0xcc REG0x42 = 0xcc REG0x43 = 0xcd
    BURST:
    BOOK0x64 PAGE0x07
    REG0x48 = 0x09 REG0x49 = 0x99 REG0x4a = 0x99 REG0x4b = 0x9a
    REG0x4c = 0x00 REG0x4d = 0x00 REG0x4e = 0x00 REG0x4f = 0x00
    BURST:
    BOOK0x64 PAGE0x12
    REG0x10 = 0x1e REG0x11 = 0x2e REG0x12 = 0x14 REG0x13 = 0x7b
    REG0x14 = 0x21 REG0x15 = 0x3d REG0x16 = 0x70 REG0x17 = 0xa4
    REG0x18 = 0x24 REG0x19 = 0x4c REG0x1a = 0xcc REG0x1b = 0xcd
    REG0x1c = 0x27 REG0x1d = 0x5c REG0x1e = 0x28 REG0x1f = 0xf6
    REG0x20 = 0x2a REG0x21 = 0x6b REG0x22 = 0x85 REG0x23 = 0x1f
    REG0x24 = 0x2d REG0x25 = 0x7a REG0x26 = 0xe1 REG0x27 = 0x48
    REG0x28 = 0x30 REG0x29 = 0x8a REG0x2a = 0x3d REG0x2b = 0x71
    REG0x2c = 0x33 REG0x2d = 0x99 REG0x2e = 0x99 REG0x2f = 0x9a
    REG0x30 = 0x36 REG0x31 = 0xa8 REG0x32 = 0xf5 REG0x33 = 0xc3
    REG0x34 = 0x39 REG0x35 = 0xb8 REG0x36 = 0x51 REG0x37 = 0xec
    tasdevice-regcfg_list: ERROR: 320 388 size is not same
    block type:PRE_
    No memory!

    $ cat /sys/bus/i2c/drivers/tasdevice-codec/1-004f/regbininfo_list
    Regbin File Version: 0x0105
    conf 00: case01-speaker-16bit
    conf 01: case01-speaker-32bit
    ~# cat /sys/bus/i2c/drivers/tasdevice-codec/1-004f/reg
    [tasdevice]reg_show: read register failed

    $cat /sys/kernel/debug/asoc/AM62L-SKEVM/tasdevice-codec.1-004f/dapm/ASI
    ASI: Off in 0 out 1
    stream ASI Playback inactive
    widget-type aif_in
    out "static" "OUT" "tasdevice-codec.1-004f"
    in "static" "Playback" "tasdevice-codec.1-004f"

    $cat /sys/kernel/debug/asoc/AM62L-SKEVM/tasdevice-codec.1-004f/dapm/ASI1\ OUT
    ASI1 OUT: Off in 1 out 0
    stream ASI1 Capture inactive
    widget-type aif_out
    out "static" "Capture" "tasdevice-codec.1-004f"
    in "static" "DMIC" "tasdevice-codec.1-004f"

    $cat /sys/kernel/debug/asoc/AM62L-SKEVM/tasdevice-codec.1-004f/dapm/Capture
    Capture: Off in 1 out 0
    stream Capture inactive
    widget-type dai_out
    out "static" "IIS Capture" "2b00000.audio-controller"
    in "static" "ASI1 OUT" "tasdevice-codec.1-004f"

    cat /sys/kernel/debug/asoc/AM62L-SKEVM/tasdevice-codec.1-004f/dapm/bias_level
    Standby

    cat /sys/kernel/debug/asoc/AM62L-SKEVM/tasdevice-codec.1-004f/dapm/Playback
    Playback: Off in 0 out 1
    stream Playback inactive
    widget-type dai_in
    out "static" "ASI" "tasdevice-codec.1-004f"
    in "static" "IIS Playback" "2b00000.audio-controller"

    $amixer
    amixer: Mixer default load error: No such file or directory

  • Hi Saurav,

    Not sure what all that means, can you summarize?

    What we need to know is the status of the latched interrupt registers on page 0, specifically registers 0x24 to 0x27.

    There are other important registers in page 0 so if you can read the complete page 0 that is best.

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • The log tell me that i2c bus access error in your system. Pls check whether i2c read/write work

  • Ok I will chekc and update

  • Hi

    1. Further update , now I2C and I2S are working fine and no longer seen error. But still we are not able to hear voice from speaker despite there are no error in dmesg log. Please review attached pic , we have measured on J10 connector we seen spike on that. Please find attached resistor dump
      please find attached image and registor dump 
    2. I am not able to see *.pp3app configuration for TAS2110 for configure amp. Please help me to getting 
    3. this file.
      root@am62lxx-evm:~# i2cset -y -f 1 0x4F 0x00 0x00
      root@am62lxx-evm:~# i2cdump -y -f -a 1 0x4f
      No size specified (using byte-data access)
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
      00: 00 00 0e 16 c6 22 09 02 0a 10 13 02 00 04 05 06    ..???"??????.???
      10: 07 7f 12 76 01 2e 60 0e 0c 00 fc a6 df ef ff 00    ???v?.`??.????..
      20: 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00    .........@......
      30: 19 40 81 34 4b 74 0d 00 0d 08 2e 58 38 08 10 00    ?@?4Kt?.??.X8??.
      40: 76 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    v...............
      50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
      60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
      70: 00 00 00 ff 00 ff 00 00 80 00 00 00 00 00 ee 00    ........?.....?.
      80: 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    ................
      a0: 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    ................
      c0: 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    ................
      e0: 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    ................
      root@am62lxx-evm:~# i2cset -y -f 1 0x4F 0x00 0x01
      root@am62lxx-evm:~# i2cdump -y -f -a 1 0x4f
      No size specified (using byte-data access)
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
      00: 01 00 00 44 80 42 01 01 40 00 28 20 48 02 60 00    ?..D?B??@.( H?`.
      10: 40 10 00 00 00 00 40 00 00 00 00 00 08 00 00 60    @?....@.....?..`
      20: 03 00 01 00 00 00 00 00 00 00 02 00 20 01 09 01    ?.?.......?. ???
      30: 30 00 80 00 00 00 00 00 00 00 00 12 48 00 00 00    0.?........?H...
      40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
      50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
      60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
      70: 00 00 00 00 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    ................
      90: 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    ................
      b0: 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    ................
      d0: 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    ................
      f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
      root@am62lxx-evm:~# i2cset -y -f 1 0x4F 0x00 0x02
      root@am62lxx-evm:~# i2cdump -y -f -a 1 0x4f
      No size specified (using byte-data access)
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
      00: 02 00 00 00 00 00 00 00 2f fe 44 48 47 cf 26 7d    ?......./?DHG?&}
      10: 03 4a 51 6c 2d 6a 86 6f 47 5c 28 f6 16 66 66 66    ?JQl-j?oG\(??fff
      20: 34 cc cc cd 10 00 00 00 2e 66 66 66 2b 33 33 33    4????....fff+333
      30: 7f fb b6 14 80 04 49 ec 7f f7 6c 28 3f ff 7e a3    ??????I???l(?.~?
      40: 01 01 5b 4c 00 00 03 1f 02 46 b4 e4 e0 00 00 00    ??[L..???F???...
      50: 6e d9 eb a1 00 00 00 2c 08 09 bc c4 64 00 00 00    n???...,????d...
      60: 00 80 00 00 00 20 c4 9c 02 46 b4 e4 00 00 12 c0    .?... ???F??..??
      70: 7f fb b6 14 80 04 49 ec 7f f7 6c 28 72 14 82 c0    ??????I???l(r???
      80: 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    ................
      a0: 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    ................
      c0: 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    ................
      e0: 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    ................
      root@am62lxx-evm:~# i2cset -y -f 1 0x4F 0x00 0x03
      root@am62lxx-evm:~# i2cdump -y -f -a 1 0x4f
      No size specified (using byte-data access)
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
      00: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
      10: 7e e7 aa 4c 00 00 00 2f 02 46 b4 e4 00 86 b9 1a    ~??L.../?F??.???
      20: 00 03 c0 00 00 01 00 00 00 00 ae c3 00 04 00 00    .??..?....??.?..
      30: 00 01 00 00 03 e6 66 60 03 e6 66 60 78 33 33 40    .?..??f`??f`x33@
      40: 00 00 00 00 00 33 33 33 7f ff ff ff 40 00 00 00    .....333?...@...
      50: ef 5d 5e 9d ee 8d ef 97 40 00 00 00 40 00 00 00    ?]^?????@...@...
      60: 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00    ....@...........
      70: 00 01 77 00 40 00 00 00 00 01 77 00 00 00 00 00    .?w.@....?w.....
      80: 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    ................
      a0: 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    ................
      c0: 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    ................
      e0: 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    ................
  • Hi Saurav,

    Do you mean J10 from EVM? This is speaker output, you should see this pin go to about the same voltage as PVDD when device is Active.

    The value on register 0x24 and 0x25 don't show any error. Perhaps the device is being reset. Do you know if SDz is being toggled? or if power supply is being turned OFF at any point?

    If you need to get access to TAS2110 app for PPC3, you can request access using this link: https://www.ti.com/drr/opn/TAS2110-GUI

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Hi,

    J10 Pin Voltage

    When device is active

     Please  review PIC

    Before aplay command 0x24

     

     

     

     

    0x00

    After aplay command 0x24

    Value : 0x04

    Interrupt due to TDM clock error 0b = No interrupt 1b = Interrupt

     

     

    0x25 is 0x00.

    PVDD

    SDz is connected with High.

    register dump before aplay command and after aplay command

  • Hi Saurav,

    Can you confirm if you are using the EVM connected to your processor for this test?
    Have you verified the EVM is working correctly by itself using the PC and PPC3 software to configure the device?

    Please share the I2C commands sent to TAS2110 during initialization and playback test. Have you confirmed register 0x02 is being modified from default 0x0e to 0x0c instead?

    The clock error interrupt may be due to I2S clocks stopping after playback test.
    The complete sequence should be as below:

    • Enable all power supplies
    • Write initialization script using I2C
    • Start I2S clocks
    • Write power up command, including register 0x02
    • After playback complete, write power down command, also register 0x02
    • Stop I2S clocks

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • hi,

    Yes, I am using the EVM connected to your processor for this test.

    Yes, I confirmed register 0x02 is being modified from default 0x0e to 0x0c.

    $ i2cget -y -f 1 0x4F 0x02
    0x0c

    I am using json (tas2110-1amp-reg.json « json - lpaa-android-drivers/tasdevice-linux-driver - Unnamed repository; edit this file 'description' to name the repository.) file for register configuration and create .bin file and load.

    Thanks,

  • typedef unsigned char cfg_u8;
    typedef union {
    struct {
    cfg_u8 offset;
    cfg_u8 value;
    };
    struct {
    cfg_u8 command;
    cfg_u8 param;
    };
    } cfg_reg;
    #define CFG_META_SWITCH (255)
    #define CFG_META_DELAY (254)
    #define CFG_META_BURST (253)
    /* Example C code */
    /*
    // Externally implemented function that can write n-bytes to the device
    // PCM51xx and TAS5766 targets require the high bit (0x80) of the I2C register to be set on multiple writes.
    // Refer to the device data sheet for more information.
    extern int i2c_write(unsigned char *data, int n);
    // Externally implemented function that delays execution by n milliseconds
    extern int delay(int n);
    // Example implementation. Call like:
    // transmit_registers(registers_ch1, sizeof(registers_ch1)/sizeof(registers_ch1[0]));
    void transmit_registers(cfg_reg *r, int n)
    {
    int i = 0;
    while (i < n) {
    switch (r[i].command) {
    case CFG_META_SWITCH:
    // Used in legacy applications. Ignored here.
    break;
    case CFG_META_DELAY:
    delay(r[i].param);
    break;
    case CFG_META_BURST:
    i2c_write((unsigned char *)&r[i+1], r[i].param);
    i += (r[i].param / 2) + 1;
    break;
    default:
    i2c_write((unsigned char *)&r[i], 1);
    break;
    }
    i++;
    }
    }
    */
    cfg_reg registers_ch1[] = {
    #define CHECKSUM (0)
    // -----------------------------------------------------------------------------
    // Reset
    // -----------------------------------------------------------------------------
    // Page 0
    { 0x00, 0x00 },
    // Book 0
    { 0x7f, 0x00 },
    // Page 0
    { 0x00, 0x00 },
    // Reset Device
    { 0x01, 0x01 },
    // 1mS Delay
    { CFG_META_DELAY, 0x01 },
    //Test bits Page fd
    { 0x00, 0x00 },
    { 0x7f, 0x00 },
    { 0x00, 0xfd },
    //Password
    { 0x0d, 0x0d },
    { 0x19, 0x80 },
    { 0x32, 0x49 },
    { 0x3f, 0x21 },
    { 0x51, 0xc1 },
    // -----------------------------------------------------------------------------
    // Begin Device Memory
    // -----------------------------------------------------------------------------
    // Book 0 Page 0 (0x00) Dump
    { 0x00, 0x00 },
    { 0x7f, 0x00 },
    { 0x00, 0x00 },
    { 0x0a, 0x03 },
    { 0x0b, 0x00 },
    { 0x11, 0x00 },
    { 0x16, 0x00 },
    { 0x17, 0x00 },
    { 0x18, 0x00 },
    { 0x32, 0x81 },
    { 0x38, 0x21 },
    { 0x40, 0xb6 },
    // Book 0 Page 1 (0x01) Dump
    { 0x00, 0x00 },
    { 0x7f, 0x00 },
    { 0x00, 0x01 },
    //Book 0 Page 2
    { 0x00, 0x00 },
    { 0x7f, 0x00 },
    { 0x00, 0x02 },
    { 0x0c, 0x40 },
    { 0x0d, 0x00 },
    { 0x0e, 0x00 },
    { 0x0f, 0x00 },
    { 0x10, 0x03 },
    { 0x11, 0x4a },
    { 0x12, 0x51 },
    { 0x13, 0x6c },
    { 0x14, 0x2d },
    { 0x15, 0x6a },
    { 0x16, 0x86 },
    { 0x17, 0x6f },
    { 0x18, 0x47 },
    { 0x19, 0x5c },
    { 0x1a, 0x28 },
    { 0x1b, 0xf6 },
    { 0x1c, 0x16 },
    { 0x1d, 0x66 },
    { 0x1e, 0x66 },
    { 0x1f, 0x66 },
    { 0x20, 0x34 },
    { 0x21, 0xcc },
    { 0x22, 0xcc },
    { 0x23, 0xcd },
    { 0x24, 0x10 },
    { 0x25, 0x00 },
    { 0x26, 0x00 },
    { 0x27, 0x00 },
    { 0x28, 0x2e },
    { 0x29, 0x66 },
    { 0x2a, 0x66 },
    { 0x2b, 0x66 },
    { 0x2c, 0x2b },
    { 0x2d, 0x33 },
    { 0x2e, 0x33 },
    { 0x2f, 0x33 },
    { 0x30, 0x7f },
    { 0x31, 0xfb },
    { 0x32, 0xb6 },
    { 0x33, 0x14 },
    { 0x34, 0x80 },
    { 0x35, 0x04 },
    { 0x36, 0x49 },
    { 0x37, 0xed },
    { 0x38, 0x7f },
    { 0x39, 0xf7 },
    { 0x3a, 0x6c },
    { 0x3b, 0x28 },
    { 0x3c, 0x3f },
    { 0x3d, 0xff },
    { 0x3e, 0x7e },
    { 0x3f, 0xa3 },
    { 0x40, 0x01 },
    { 0x41, 0x01 },
    { 0x42, 0x5b },
    { 0x43, 0x4c },
    { 0x44, 0x00 },
    { 0x45, 0x00 },
    { 0x46, 0x03 },
    { 0x47, 0x1f },
    { 0x48, 0x02 },
    { 0x49, 0x46 },
    { 0x4a, 0xb4 },
    { 0x4b, 0xe4 },
    { 0x4c, 0xe0 },
    { 0x4d, 0x00 },
    { 0x4e, 0x00 },
    { 0x4f, 0x01 },
    { 0x50, 0x6e },
    { 0x51, 0xd9 },
    { 0x52, 0xeb },
    { 0x53, 0xa1 },
    { 0x54, 0x00 },
    { 0x55, 0x00 },
    { 0x56, 0x00 },
    { 0x57, 0x04 },
    { 0x58, 0x08 },
    { 0x59, 0x09 },
    { 0x5a, 0xbc },
    { 0x5b, 0xc4 },
    { 0x5c, 0x01 },
    { 0x5d, 0xc9 },
    { 0x5e, 0x24 },
    { 0x5f, 0x92 },
    { 0x60, 0x00 },
    { 0x61, 0x12 },
    { 0x62, 0x49 },
    { 0x63, 0x25 },
    { 0x64, 0x00 },
    { 0x65, 0x20 },
    { 0x66, 0xc4 },
    { 0x67, 0x9c },
    { 0x6c, 0x00 },
    { 0x6d, 0x00 },
    { 0x6e, 0x12 },
    { 0x6f, 0xc0 },
    { 0x70, 0x7f },
    { 0x71, 0xfb },
    { 0x72, 0xb6 },
    { 0x73, 0x14 },
    { 0x74, 0x80 },
    { 0x75, 0x04 },
    { 0x76, 0x49 },
    { 0x77, 0xed },
    { 0x78, 0x7f },
    { 0x79, 0xf7 },
    { 0x7a, 0x6c },
    { 0x7b, 0x28 },
    { 0x7c, 0x72 },
    { 0x7d, 0x14 },
    { 0x7e, 0x82 },
    { 0x7f, 0xc0 },
    //Book 0 Page 4
    { 0x00, 0x00 },
    { 0x7f, 0x00 },
    { 0x00, 0x04 },
    { 0x58, 0x00 },
    { 0x59, 0x00 },
    { 0x5a, 0x00 },
    { 0x5b, 0x64 },
    { 0x5c, 0x40 },
    { 0x5d, 0xbd },
    { 0x5e, 0xb7 },
    { 0x5f, 0xc0 },
    { 0x60, 0x39 },
    { 0x61, 0x80 },
    { 0x62, 0x00 },
    { 0x63, 0x00 },
    { 0x64, 0x2d },
    { 0x65, 0x6a },
    { 0x66, 0x86 },
    { 0x67, 0x6f },
    { 0x68, 0x02 },
    { 0x69, 0x46 },
    { 0x6a, 0xb4 },
    { 0x6b, 0xe4 },
    //Book 100 Page 8
    { 0x00, 0x00 },
    { 0x7f, 0x64 },
    { 0x00, 0x08 },
    { 0x1c, 0x50 },
    { 0x1d, 0x19 },
    { 0x1e, 0x01 },
    { 0x1f, 0xc0 },
    //Book 100 Page 7
    { 0x00, 0x00 },
    { 0x7f, 0x64 },
    { 0x00, 0x07 },
    { 0x38, 0x2f },
    { 0x39, 0x33 },
    { 0x3a, 0x33 },
    { 0x3b, 0x33 },
    { 0x3c, 0x00 },
    { 0x3d, 0x00 },
    { 0x3e, 0x00 },
    { 0x3f, 0x00 },
    { 0x40, 0x04 },
    { 0x41, 0xcc },
    { 0x42, 0xcc },
    { 0x43, 0xcd },
    { 0x48, 0x09 },
    { 0x49, 0x99 },
    { 0x4a, 0x99 },
    { 0x4b, 0x9a },
    { 0x4c, 0x00 },
    { 0x4d, 0x00 },
    { 0x4e, 0x00 },
    { 0x4f, 0x00 },
    //Book 100 Page 18
    { 0x00, 0x00 },
    { 0x7f, 0x64 },
    { 0x00, 0x12 },
    { 0x10, 0x1e },
    { 0x11, 0xfa },
    { 0x12, 0xe1 },
    { 0x13, 0x48 },
    { 0x14, 0x22 },
    { 0x15, 0x0a },
    { 0x16, 0x3d },
    { 0x17, 0x71 },
    { 0x18, 0x25 },
    { 0x19, 0x19 },
    { 0x1a, 0x99 },
    { 0x1b, 0x9a },
    { 0x1c, 0x28 },
    { 0x1d, 0x28 },
    { 0x1e, 0xf5 },
    { 0x1f, 0xc3 },
    { 0x20, 0x2b },
    { 0x21, 0x38 },
    { 0x22, 0x51 },
    { 0x23, 0xec },
    { 0x24, 0x2e },
    { 0x25, 0x47 },
    { 0x26, 0xae },
    { 0x27, 0x14 },
    { 0x28, 0x31 },
    { 0x29, 0x57 },
    { 0x2a, 0x0a },
    { 0x2b, 0x3d },
    { 0x2c, 0x34 },
    { 0x2d, 0x66 },
    { 0x2e, 0x66 },
    { 0x2f, 0x66 },
    { 0x30, 0x37 },
    { 0x31, 0x75 },
    { 0x32, 0xc2 },
    { 0x33, 0x8f },
    { 0x34, 0x3a },
    { 0x35, 0x85 },
    { 0x36, 0x1e },
    { 0x37, 0xb8 },
    { 0x38, 0x3d },
    { 0x39, 0x94 },
    { 0x3a, 0x7a },
    { 0x3b, 0xe1 },
    { 0x3c, 0x40 },
    { 0x3d, 0xa3 },
    { 0x3e, 0xd7 },
    { 0x3f, 0x0a },
    { 0x50, 0x1d },
    { 0x51, 0x61 },
    { 0x52, 0x47 },
    { 0x53, 0xae },
    { 0x54, 0x20 },
    { 0x55, 0x70 },
    { 0x56, 0xa3 },
    { 0x57, 0xd7 },
    { 0x58, 0x23 },
    { 0x59, 0x80 },
    { 0x5a, 0x00 },
    { 0x5b, 0x00 },
    { 0x5c, 0x26 },
    { 0x5d, 0x8f },
    { 0x5e, 0x5c },
    { 0x5f, 0x29 },
    { 0x60, 0x29 },
    { 0x61, 0x9e },
    { 0x62, 0xb8 },
    { 0x63, 0x52 },
    { 0x64, 0x2c },
    { 0x65, 0xae },
    { 0x66, 0x14 },
    { 0x67, 0x7b },
    { 0x68, 0x2f },
    { 0x69, 0xbd },
    { 0x6a, 0x70 },
    { 0x6b, 0xa4 },
    { 0x6c, 0x32 },
    { 0x6d, 0xcc },
    { 0x6e, 0xcc },
    { 0x6f, 0xcd },
    { 0x70, 0x35 },
    { 0x71, 0xdc },
    { 0x72, 0x28 },
    { 0x73, 0xf6 },
    { 0x74, 0x38 },
    { 0x75, 0xeb },
    { 0x76, 0x85 },
    { 0x77, 0x1f },
    { 0x78, 0x3b },
    { 0x79, 0xfa },
    { 0x7a, 0xe1 },
    { 0x7b, 0x48 },
    { 0x7c, 0x3f },
    { 0x7d, 0x0a },
    { 0x7e, 0x3d },
    { 0x7f, 0x71 },
    };
    i got this dump, so any command and tool available to convert this .cfg to json file so I can convert in .bin file?

  • Hi Saurav,

    I'll double check if .h file can be converted to json and get back to you soon.

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Hi  

    in update , now we are able to hear the voice from speaker, but voice is very low.

    For that we need to set register configuration 

     i2cset -y 1 0x4F 0x00 0x00

      i2cset -f -y 1 0x4f 0x00 0x00

     i2cset -f -y 1 0x4f 0x33 0xA0

      i2cset -f -y 1 0x4f 0x00 0x00

      i2cset -y -f 1 0x4f 0x08 0x0d

       i2cset -f -y 1 0x4f 0x00 0x00

       i2cset -y -f 1 0x4f 0x07 0x02

      i2cset -f -y 1 0x4f 0x00 0x00

       i2cset -f -y 1 0x4f 0x06 0x08

     i2cget -f -y 1 0x4f 0x11

      i2cget -f -y 1 0x4f 0x06

      i2cset -f -y 1 0x4f 0x06 0x09

      i2cget -f -y 1 0x4f 0x06

      i2cget -f -y 1 0x4f 0x11

      i2cget -f -y 1 0x4f 0x07

      i2cget -f -y 1 0x4f 0x33

      i2cget -f -y 1 0x4f 0x08

      i2cset -f -y 1 0x4f 0x08 0x3d

    still any pending register to set for volume or any other configuration

    also add waveform of i2s interface please check and tell if any error or not.

  • Hi Saurav,

    What is the value of register 0x03? By default, this should be 0x20 which is gain of 16dBV. If this register has a different value perhaps the gain is set to a lower value.

    One more thing you can check is register 0x07, the bits 5-1 are RX_OFFSET, you may adjust these to either 0 or 1 and check how it affects the loudness. An incorrect offset setting could cause lower or higher loudness as each bit shift represents 6dB increase or decrease.

    Best regards,
    -Ivan Salazar
    Applications Engineer

  • Hi  

    $i2cget -f -y 1 0x4f 0x03
    0x20

  • Hi Saurav,

    I'll follow up over email.

    Best regards,
    -Ivan Salazar
    Applications Engineer