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.

I2C communication issue with PCM1865EVM

Other Parts Discussed in Thread: PCM1865

Hello again, 

This evaluation board seems to be getting more and more problematic. As described in our earlier discussion on this product, I did receive a faulty evaluation kit, which has been replaced by Mouser. 

Old discussion: http://e2e.ti.com/support/data_converters/audio_converters/f/64/p/356716/1252690.aspx#1252690

The new board seemed promising at the start (at least it was recognized correctly by PC and USB-Lock led was lit), but either the Purepath console software or the PCM1865 itself is acting weirdly. 

I have tried running console program in all kinds of compatibility and administration modes, but no effect on funtionality.

The exact problem here is that there seems to be no I2C connectivity to PCM1865 whatsoever. The configuration on EVM is as described in EVM user guide pdf. Meaning that there is jumpers J8 and J11 present on board.

When I try to read registers using "Registers" tab on purepath console software, the software just hangs for something like 20seconds and then returns nothing at all. (See screenshot below)

Also it tried connecting an oscilloscope to SDA and SCL pins on EVM board. There is a large burst of I2C traffic, when USB cable is first connected, but this stops afterwards. When I open "Registers" tab or click refresh on said tab, there is some traffic visible, but it is just address call, which repeats every 15ms. Below is zoomed picture of such burst:

What can be seen from this figure is that I2C bus does not receive an ACK pulse from slave, which is done by pulling SDA down during pulse number 9. This means, that master decides that the slave is not present and does not do anything else for it.

This made me wonder that PCM communication mode is wrong, or address pin is pulled high or something, so I added jumpers from MD0 and MD1 to ground to ensure, that they are configured correctly. This had no effect whatsoever.

-Tapio

  • Hi Tapio,

    Sorry you are having trouble with this board.

    Are you using Pure Path Console 2?

    When you open Pure Path you should get a window with a button that says “Manually Choose a Target and you can choose the PCM1865 from a list of devices? Then an error should display that says “No FWID”.

    This is the correct connectivity procedure for this device.

    Also check in your computer’s Device Manager. Under sound, are you seeing “USB-AudioEVM”?

    Are J11 and J8 installed with J10 removed?

    Regards,

    Matt

     

  • Hi Matt,

    Yes I am using the newest version (rev33210) dedicated for pcm186X downloaded from http://cc.ext.ti.com/ And this "Manually Choose a target" dialog does show up. Also this "USB-AudioEVM" device does show up on device manager.

    I think this means that TAS1020B seems to be correctly recognized ant this time around also does have firmware uploaded.

    The problem in my understanding is that the I2C control communication from TAS1020B to PCM1865 seems to have some issues. As I said earlier, there seems to be missing ACK pulse in I2C communication, when purepath console tries to read from the PCM1865. This pulse has to come from the slave device (PCM) and is missing.

    I also replicated this problem by using Arduino Wire-library to try and connect to PCM1865, and managed to get exactly same waveform, when I tried to read a register value from PCM1865. (Only difference was that Arduino was using normal rate i2c (100kHz) instead of fast mode (400kHz) used with EVM.


    Also there seems to be proper clocking available for PCM1865 since I can see 3MHz clock signal coming out of BCK pin and also some data is presented at DIN pin.

    br,

    Tapio

  • Hi Tapio,

    Yes it sounds like the TAS1020 is working as it should and the computer is recognizing it correctly. There must be something going on at the board level.

    Let me look into this and get back to you.

    Regards,

    Matt

     

     

  • Hi Tapio,

    I have looked into a few things with this EVM but I am still working through it. I will get back to you as soon as I have an answer for you.

    Regards,

    Matt

  • Hi Matt, Tapio,

    i received a PCM 1865EVM last week and i have exactly the same problem as described above:

    No acknowledge on I2C.

    Audio In/Out ist working on the default settings.

    Regards

    Bernd

  • HI Tapio and Bernd,

    So the issue may lay with the I2C address of the PCM1965 part. PurePath Console has a fixed I2C address 0x94.

    To test the I2C on a different address, I will direct you to software for a different part HERE. Scroll down to the tab that says software and downlaod the TVL320AIC3204EVM GUI.

    Once the software is downloaded open it by right click on the icon and open “as administrator”. At the bottom of the window the “USB” light should be green indicating EVM connectivity. Now open the third bottom button that says “Command-line Interface” This allows the writing of custom I2C scripts and indicates if the command has correctly been executed.

    Type the following command:

    W 94 01 50

    (This command uses the ox94 i2c address which I want to check just for continuity.)

    The status light on the right will indicate if the command was successful. Red means unsuccessful.

    Next try:

    W 98 01 50

    If 0x98 is the correct address, the status light should now be green.

    If this is the case, the address is not compatible with the GUI and you must write scripts using this command line interface. However, the GUI can record the changes you make as I2C commands so you can copy and paste those commands into this I2C interface and change the address.

    Let me know if the 0x98 address script runs.

    Also, Can you report to me the 2 numbers on the PCM1865 part other than the part number? There should be two lines of a few letters.

    Regards,

    Matt

  • Hi Matt,

    Yes this seems to work exactly as you just described. Address 0x94 resulted in bus error whereas 0x98 resulted as success.

    Full markings on PCM1865 are:

    PCM1865
    36T
    COTN

    Actually I am on a small vacation at the moment, need to dig deeper into this next week, when I get back to work.

    Br,

    Tapio



  • Hi Matt,

    Address 0x98 works. I can see the acknowledge.

    Markings on PCM1865 are:

    PCM1865

    36T

    COTN

    If i buy a chip at a distributor, what address will it have ?

    I would like to change the chip to get access with the GUI.

    Best regards

    Bernd

  • All,

    Looking at the user's guide, you have to set several resistors in order to enable I2C communication on this device. From the discussion so far it is not clear if everyone above has done so. You will need to adjust MD0 and MD1 to set I2C mode and to set the register address. 

    We need to clarify some conflicting information in the datasheet regarding MD0, as it states that I2C is set by pulling MD0 both high and low in 2 different places. 

    Thanks, Tyler

  • Hi Tyler,

    The datasheet is not clear about enabling the I2C. But I2C works with MD0 pulled LOW. At least i get an acknowledge with address 0x98.

    You can tie low the MD0 and MD1 by setting 2 jumpers on the J7 connector: Pin1-2 and Pin3-4.

    Best regards

    Bernd

  • Hi Everyone,

    Yes MD0 should be pulled LOW for I2C. In the EVM, it is left floating which should also work for I2C.

    A Bernd stated, if there is any doubt which mode it is in, use a jumper on J7 to pull it low.The conflicting information will be fixed in the new release of the datasheet.

    Best Regards,

    Matt