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.
Hello,
I am using the TMS320F28379D for a new project and I'm wondering about the best way to use both cores and I'm not sure how to proceed.
I have two kinds of computations that need to be done:
Usually (with Piccolo devices) I would use the CPU for Supervision/Communications and the CLA for Control. However I have too many control loops so CLA1 will not be enough to perform all computations. Therefore I wish to use CLA2.
At first I wanted to use CLA2 for the control loops which manage some of the ePWM modules, but in this project only ePWMs with HRPWM are being used. Only core 1 can use HRPWM so CLA2 cannot update the ePWM+HRPWM registers on its own.
Thus CPU2 must be used to perform the transfers. I had already planned to use it for something else but so be it. For instance I can make room for a small interrupt after each CLA2 task to copy the results from LSRAM to GSRAM.
Now I need to transfer the results from GSRAM to CLA1 so that it can use them to update the ePWM+HRPWM registers.
So CPU1 must be used to perform additional transfers. CPU1 is already quite busy but the minimum it has to do will be to transfer the values from GSRAM to LSRAM and let CLA1 perform the actual ePWM+HRPWM register writes. These transfers must be performed in a timely manner, otherwise the stability of the control loop will be degraded. Therefore I must make room multiple interrupts on CPU1.
Now the problem is that the SFO() function with its uninterruptible RPT instructions must be called from time to time, and it can delay my interrupts on CPU1. The sampling frequency and modulation scheme are such that I cannot afford to let more than 300ns elapse between a new ADC sample becoming available and a the new register values being written to the corresponding ePWM module.
Is there any way to meet all these requirements?
Obviously it would be much simpler if CLA1 and CLA2 had any way to share data directly, or if the HRPWM could be used from core #2. Without these options, having a dual-core DSP becomes less useful than it first seemed.
Thanks in advance,
Pierre
Hi Pierre,
Thank you for the detailed explanation of the problem and providing the good inputs for the architecture. Unfortunately in this case you have to use CPU1 to transfer data from GSRAM to LSRAM hence need to free-up some MIPS on CPU1 for that. You could check if some of the task can be offloaded to CPU2 (other than SFO()). We are providing MSG RAM between CLA and DMA on our next device but on this one you have use CPU to pass the data/info between CLA.
Regards,
Vivek Singh
Pierre,
I would expect this kind of information to be under an NDA of some sort but if there is someone I can contact to learn more please let me know.
I would suggest to contact local FAE in your region on this. They will be able to guide you through proper channel to get required info.
Regards,
Vivek Singh