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.

PCM2706: address width of i2c-eeprom for usb descriptor

Part Number: PCM2706

Hi all,

In sleu116.pdf in the schematic "Figure 2" there is a AT24C64N Flash connected to the PCM2706/7.

This type of flash needs 2x8 bit address to read/write.

But as reading external USB-descriptors did not work out in my design at all, i found out (by scope traces), that the PCM2706 seems to do just a 1x8 bit address read after reset:

Startcond. / 0x90 / 0x00 / Rep.Start / read .... / Stopcond.

But to address the AT24C64 it would be necessary to do this:

Startcond. / 0x90 / 0x00 / 0x00 / Rep.Start / read .... / Stopcond.

Now i suspect, that there's just crap in the sleu116.pdf - the AT24C64N is simply not usable for this case; it has to be a smaller one like the 24C04 - am i right?


  • Hi, Wolfram,

    Welcome to E2E, thanks for your interest in out products.

    The PCM2707EVM was designed a long time ago so we are not familiar with the decision to put that particular EEPROM on the design, but will check with my team and see if there is more information available to validate our assumption.

    Best Regards,

      -Diego Meléndez López
       Audio Applications Engineer

  • Hi,

    Meanwhile i heated up the soldering iron and replaced the 24C64 (2 byte address width) by a 24C08 (1 byte address width) lying around.

    After changing also my code to write the descriptor to the eeprom it works like expected: After powering up, the PCM2706 uses the contents of the eeprom as it should do for it's usb descriptors.

    And  - Yes - they really have to be bit-reversed, as described in the datasheet.

    E.g. the four bytes: 0xbb 0x08 0x04 0x27 containing the USBID, have to be: 0xdd 0x10 0x20 0xe4 in the eeprom.