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.

PCM6240-Q1: Detect if PCM6240 or PCM6260 is present

Part Number: PCM6240-Q1

Hi,

in your application both the PCM6240 and PCM6260 can be used dependent on the hardware variant of our product.

We are looking for a possibility to detect within the software driver which one got assembled on the PCB. 

So far I could not find anything in the datasheet like a register holding the chip identification code or similar.

I understood from the datasheet that it is not valid to even read the CH5/CH6 registers only present in PCM6260 with a PCM6240, therefore this can also not be used as an indirect way of identification.

Is there a way to differ between the two chips? 

The I2C interface is used. The PCM6240 still might have CH5 and CH6 connected externally so using pull-up/-down resisters there to detect the HW difference is not an option.

Best Regards,

Martin

  • Hi Martin,

    Unfortunately there is not a direct register that can easily be read for determining the device variant. However, what you will notice is that the registers for channels 5 and 6 on 4 channel devices can still be written and set to be enabled, but these channels will not actually power up. Thus, one indirect way of doing this would be to power up all ADC channels and then read the status register to check if channels 5 and 6 have actually powered up. Here is an example I2C script

    #Wake up device

    w 90 02 81 

    #wait 10ms

    d 10

    #Enable all channels 1-6

    w 90 73 fc 

    #Power up all ADC channels and PLL

    w 90 75 60 #

    #Read ASI_STS (P0_R21_B7-0) for ASI status

    r 90 15 01

    #Read DEV_STS0 (P0_R118_B7-2) register for ADC power status

    r 90 76 01

    If the DEV_STS0 register shows that channel 5 and 6 are not powered up and you have satisfied all requirement for this to occur on a 6-channel device, then you have a 4-channel device!

    A couple other things can lead to channels not being able to power up so make sure you have taken care of these:

    1) If there is an error in the ASI clocks, the ADC channels will not power up so the clocks need to be valid when using this method. This will impact ALL ADC channels though. You do not need to have a BCLK/FSYNC that would support all 6 channels for the ADCs to power up so no concerns with that.

    2) There are other fault diagnostics that can be set to automatically power down channels from certain faults. These are all disabled by default so if you use these in your system with automatic powerdown settings you would want to disable fault diagnostics for this test. The ASI fault still applies whether or not diagnostics are enabled.

    Best,

    Zak

  • Zak, thank you very much for this information.

    As we would like to use a direct way we will now provide the information which chip is used over HW specific configuration data flashed during production.