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.

Linux/PCM5242: PurePath Studio compiler output and opensource

Part Number: PCM5242
Other Parts Discussed in Thread: PCM5142

Tool/software: Linux

Hi,

I have been reviewing PurePath studio as a tool to help me generate code for the miniDSP blocks inside various PurePath devices and specifically the PCM5242. I have a few questions.

1) Having looked at PaurePath home audio, I can see a framework for the PCM5142, but the PCM5242 is not listed. Do I assume that the code will compile correctly for the PCM5242 using the 5142 as the framework element?

2) I use an entirely open-source interface to my hardware. I do not have any TI EVM modules, all my hardware is custom made and self designed and all device programming is done via hard-coding in my supervisory MCU. I am not sure how PurePath Studio expects to communicate with the devices it is designed to program. Is there supporting documentation for this part of the process. However I would also like to know if the output from PurePath studio can be used to manually generate register settings and also CRAM (I think its called CRAM) contents. I am not sure of the distinction. I have looked at the .cfg file generated at compile time, It hints at register pages and other elements of the configuration at a register level, but for example if I define a FIR filter, I do not see how or where the associated coefficients are stored. Is there a way to hand-craft the output from PurePath studio. Allowing me to store potential configurations on MCU flash and transfer them to the miniDSP devices where and when needed under user driven config control. Ideally I would like to be able to define the general process flow and then at run-time modify just filter coefficients on the fly.

Looking forward to your response.

Aidan

  • Further to this question. I have noted the register definitions for usage of CRAM A and CRAM B. Its seems these are used to double buffer the configuration settings on the miniDSP. Do you have some documentation to explain in detail the usage of this process. How the devices operate in both adaptive and non-adaptive modes and what impact any such changes have on streaming audio in real-time.
    All the best
    Aidan
  • I'm sorry for the flurry of questions, but I have found the document SLAA425D, Coefficient RAM Access Mechanisms and this mentions Adaptive Filtering is only available for Family 1 devices, however once again the PCM5242 device is not listed, as well as several other devices. Please can you clarify the most up to date situation for devices using miniDSP.
    Aidan
  • Hi Aidan,

    When we released the PCM5242 we decided that we were not going to support the PPS model of development for the device, and as such moved to the HybridFlow development strategy where the user using the PurePath Console software and select from a few TI designed process flows that we felt covered most use cases. That being said, the miniDSP in the PCM5242 is very similar to the PCM5142, so a Frame work does exist - please download it here: e2e.ti.com/.../1957035

    The expected use case for PPS is that you use the EVM to test your process flow, then generate the .cfg files for your application. The files are in a pretty readable format so it should not be difficult to port the commands to an MCU. It is still possible to generate the .cfg files and test them on your system, but it takes some manual steps on your part to convert the .cfgs every iteration.

    The miniDSP programming model was specific and proprietary to this era of devices, so we do not expect customers to learn how each individual coefficient interacts with the DSP, only that they use PPS to select the performance they desire and then let the program calculate and generate the coefficients.

    The document you found does correctly describe the CRAM access model and can be applied to the PCM5242 device.

    If you are trying to update the process flow coefficients on the fly (based on user input), you would write the new coefficients in to the CRAM bank that is not being used, then update tell the DSP to switch banks. If you start with the same coefficients in each bank, then you just need to write 'patches' (only writing to the registers that will change) to them as you change the flow behavior.

    Thanks
    Paul
  • Thanks Paul, seems I have my work cut out for me.

    I appreciate the link to the framework, information and if I have any problems that I can not overcome, I'm sure I will be back online.

    All the best

    Aidan