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.

Aardvark and TLV320AIC1110 problem

Other Parts Discussed in Thread: TLV320AIC1110

Hi

I try to read and write to the TLV320AIC1110 with Aardvark and their Control Center software.

The TLV320AIC1110 has write address 0xe2 and read address 0xe3.
To read I have used a batch script in the Control Center software that looks like this:

<aardvark>
<configure i2c="1" spi="0" gpio="1" tpower="0" pullups="0"/>
<i2c_bitrate khz="100"/>
<note> Read  </note>
<i2c_write addr="0xe2" count="1" nostop="0" ten_bit_addr="1" combined_fmt="0" radix="16">
00
</i2c_write>
<sleep ms="100" />
<i2c_read addr="0xe3" count="1" nostop="0" ten_bit_addr="1" combined_fmt="0"/>
</aardvark>

First I try to write to 0xe2 which register I want to read from. I then try to read from 0xe3.

The result is basically nothing. Either the write or the read works since in the log of the Control Center software it says that the write and read length were zero.

Has anyone used Aardvark with TLV320AIC1110 or and got any tips?

 

/Jonas

  • Hi Jonas,

    I'd recommend to check an I2C write transaction on a scope and compare it with Figure 7 of the datasheet: http://focus.ti.com/lit/ds/symlink/tlv320aic1110.pdf.

    One common mistake is to assume that an i2c software write routine assumes an 8-bit i2c address (i.e. 7-bit i2c address shifted to the left by one bit). Sometimes, software routines will automatically left shift the address for you. The raw 8-bits that are sent through the protocol will have the LSB as the R/W bit. Try 0x71 as the I2C address to see if it works.

    Regards,

    J-

  • Hi

    Thanks for the answer.

    It looks to be an issue with bit shifting as you explained. In Aardvark there is a 10-bit address setting that just confuse me since what ever address I have tried with the 10-bit setting the pattern on the scope has been the same.

    I have done some testing with address 0x71 and I'm able to both read and write to the codec. Below is an example of a working read-script that I have used which might be helpful for someone else.

    <aardvark>
        <configure i2c="1" spi="1" gpio="0" tpower="0" pullups="1"/>
        <i2c_bitrate khz="100"/>
        <i2c_write addr="0x71" count="1" radix="16" nostop="1">
          00
        </i2c_write>
        <i2c_read addr="0x71" count="1"/>
    </aardvark>

    With pullups="0" it was sometime not possible to write and read to the codec.
    (There are 2,7kohm pull-ups on the PCB)

    The Aardvark I used was HW version 3.0 with FW version 3.50

    Cheers,
    Jonas