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.

Problems with PurePath Studio and 384Khz

Other Parts Discussed in Thread: PCM5142

Hi,


Just  new to PurePath and the miniDSP engine on the TI chips, and am having some issues.

I created a very simple DSP filter, that just switches the left and right channels from the input to the output. I then build this code and use the output cfg file to program the registers in my TI PCM5142 DAC correctly (using my host micro).

Everything works, when the DSP filter is engaged, the left and the right are switched. However, it only works up to 192 kHz (and the DAC supports up to 384 kHz). Whenever I give the DAC 352.8 or 392 kHz I2S data, I don't get any audio output. Attached is the filter in PurePath.

I've also tried the "Int8xOutROMsl" component, and same thing. It seems that I need a "Int16xOutROM" component, but there isn't one, or is this barking up the wrong tree?


Thanks for any info!

  • Hi Matt,

    Firstly, thanks for jumping in head first with the PCM5142. I hope that you find, the more you use it, that it becomes a source of a few "oh, that's pretty cool!" moments!

    There are a few things to be aware of when dealing with the miniDSP of this device, I think you'll have an Ah-Ha! moment when you see what's going on. Forgive me if you already know some of these details, I'm going from the ground up in case we have future readers that have similar questions, but may not have your background.

    1 - The miniDSP can run up to ~50MHz or so. In the real world, we auto-set (or write the PLL) to generate 1024 instruction cycles per same at 48kHz. At 96kHz, the clock rate is the same, but we can only do 512 instruction cycles per sample. At 192kHz, we get 256 instructioncycles per sample, and at 384kHz, we can only perform 128 instructions per sample.

    2 - The DAC natively runs at 384kHz. We run Interpolators on the miniDSP (such as Int8OUTROM_1) to take the low rate 48kHZ and multiply it up to 384kHz. For instance, 48kHz x 8 = 384kHz. To run a 96kHz audio process and run the DAC at 384kHz, we'd need a 4x interpolator. For 192kHz data, we run a 2x interpolator. Each of these interpolators run less and less instructions. It takes less code to multiply up 48kHz to 384 than it does 192kHz.

    3 - When you run out of instruction cycles on the miniDSP, it never gets to the  "final instruction" that outputs data from the miniDSP to the internal DAC. In many cases, it means you'll get silence. Occasionally, you'll get a memory leak, which then sounds like it's working, but it's not really working properly.

    Interestingly, I just fired up PPS, and realised that we don't have a "bypass interpolator" option. Bit of a DOH! moment really. 

    Let me dig into it with our software team to find out how we expect customers to use PPS in 384kHz modes. It's a bit of a new one to me :)

    Thanks again

    Dafydd Roche

    P.S. if all you really need to do is flip the outputs, there are dedicated registers to do this, that do it outside of the miniDSP.

  • Hello Dafydd,

    Thank you very much for the response. The extra information you have given me is quite helpful in understanding the inner workings of the miniDSP block in the PCM5142.

    I look forward to hearing from you and your team about the suggested use with 384kHz.

     - Matt

    P.S. - Our filter design is more complex than switching the channels, I just thought I simplify it to make it easier to diagnose what is going on.

  • Matt, Purepath Studio only supports up to 192kHz natively.

    It can be hacked a little to configure the PLL settings that are generated, to drive the DAC at the 384kHz rates, however, you still need the ability to generate a "fake" interpolator that takes the data and copy/pastes it directly to the DAC section of the device.

    We don't currently have that component available for Purepath Studio, and currently have no plans to create such a component. (our SW efforts are moving towards Purepath Console). However, I will make enquiries to see how much effort such a component would be. 

    Thanks again

    Dafydd

  • Thanks for you help and the information Dafydd!