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.

PCM5142: DSP RAM program

Part Number: PCM5142
Other Parts Discussed in Thread: PUREPATHSTUDIO,

Hello.

We are working with PCM5142 in RAM program mode. For test purpose we made a simple project in PurePathStudio in which input is directly connected to output (I2S or DAC).

It is found out that sound in RAM program mode without processing is completely different from any other program mode "8x/4x/2x FIR interpolation filter with de-emphasis" or "8x Ringing-less low latency FIR interpolation filter without de-emphasis" or others.

What could be the reason of such behavior? In all tests conditions are the same: 16 bit 48 kHz audio. In RAM program mode there are no blocks other than input and output.

Thanks.

  • In addition to the previous post project and video are attached. A sine wave is applied to the PCM5142 input.

  • Hi,

    You are using the 2x interpolator output but with a 48kHz input.  You really should be using the 8x output.  

  • Hello, Paul, thank you very much!

    That works for 48 kHz. But now several questions arised:

    1) What about 96 kHz and 192 kHz? Do I understand correctly that for 96 kHz input one should use 4x interpolator, for 192 kHz - 2x interpolator?

    But it does not work. For 96 kHz and 192 kHz input output is always silence whatever interpolator used. So the only working stream is 16 bit 44.1/48 kHz.

    Please explain how to set 96 kHz and 192 kHz output.

    2) The very same situation is observed with I2S output: the only working stream is 16 bit 44.1/48 kHz. Is it possible to output I2S stream at 96 kHz and 192 kHz?

    3) What is the difference between xxxOutROM and xxxOutROMsl?

    4) Is it possible to change input/output frequency on the fly automatically without rebooting device?

    Thank you.

  • Hi,

    The process flows must be recompiled for each sample rate.  Dynamically changing the DSP when the sample rates change can be difficult to implement, but it is supported.

    When you configure your flow, you can enable different rates.  These will have separate files when you generate the code.  Now you have to have your MCU on the system reprogram the process flow when the sample rate changes.  That being said, similar sample rates can use the same process flow (44.1k/48k, 88.2k/96k, 176.4/192k). 

    Note that higher sample rates support few instructions, so generally complex process flows must be simplified for the higher sample rates.  Check out this document for some examples.

    https://www.ti.com/lit/ug/slau577a/slau577a.pdf

    The xxx_sl are the "short-latency" versions of the interpolation filters. 

    It is possible to change any aspect of the device "on the fly", but you must enter standby mode to change the PLL and DSP settings.  Generally, recommend that you try to sustain a specific sample rate in the application.

    Thanks,

    Paul