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.

PCM1860: Is slave mode configured correctly for my application?

Part Number: PCM1860
Other Parts Discussed in Thread: PCM1862

Hi,

I am trying to integrate a PCM1860 to a MediaTek MT7688 SoC that supports I2S for very simple mono audio capturing using only one channel.

Could someone please help me with understanding what clocks I need for most basic operation? I have derived the following schematic so far, in which I have tied SCKI to GND and left XO,XI open. Would the PCM1860 create its clocks from the I2S inputs?

Any advise is really appreciated

  • Hi Umar,

    Yes, the PCM1860 is capable of generating the necessary internal clocks in slave mode as long as you provide it valid BCK and LRCK. For the autodetect feature to work though it is important that you have a valid BCK/LRCK ratio. One thing to keep in mind is that a ratio of 128 is not supported. 32, 48, 64, or 256 however are all supported.

    Also, it is not necessary for you to ground SCK, you should however ground the XI pin if you are not using an external oscillator.

    best,

    Zak

  • Thanks Zak, that is really helpful.

    With this schematic I have unfortunately been unsuccessful in getting the device detected by Linux. I have only found support for the PCM1862+ in the kernel bindings which are all I2C controlled devices.

    https://www.kernel.org/doc/Documentation/devicetree/bindings/sound/pcm186x.txt 

    would you be able to guide me on how this HW controlled device can be integrated to linux embedded device especially from a Device Tree definition point of view?

    Thanks,

    Umar

  • Hi Umar,

    I'm sorry but I do not have any expertise with Linux systems. We often provide very basic drivers for Linux since we know it is a popular platform for audio, but any code provided is done so "as-is" and we are unable to support any changes/modifications. 

    These are not provided for the hardware controlled versions of the device though since there are no registers to write. If you want to interface with Linux, it may be better to use an I2C compatible device.

    Best,

    Zak