TI C2000 Microcontroller Slow IPC-Transmission of an int32 with just 1kHz

7 views (last 30 days)
I tried to send an int32 via IPC transmit from the C28x CPU to the ARM M4-Cortex every 100 microseconds (10kHz clock-frequency) by using an EPWM-block and an EPWM-Hardware-Interrupt. Unfortunately, the IPC transmission only works fine until clock-frequencies of 1kHz (every 1 milliseconds). For higher clock-frequencys, the IPC-tranmission shuts down. Even by using the IPC-Receive on polling instead of using an IPC-Hardware-Interrupt, frequencies higher than 1kHz cannot be reached. In my understanding, the transmission should only be limited by the reading&writing speed of the Message-RAM (which must be at least 1MHz for an int32).
Could somebody assist how to increase the performance of the IPC transmission? Thanks in advance!
Kind regards!

Answers (1)

Shivam Lahoti
Shivam Lahoti on 16 Sep 2024
Hi Marcel,
I understand you are experiencing performance issues with the IPC transmission. When testing the IPC connection in combination with a UDP-Send block on the M4-Cortex at a discrete sample rate you might encounter performance problems as mentioned.
The speed of UDP might be essentially limited by the LWIP implementation on an embedded target. I believe similar limitations can be observed across targets like the STM32, which relies on LWIP in a non-RTOS configuration. You can verify this with TI examples implemented using CCS projects in C2000Ware as well.
You can try to use a buffer to store the data and send it at a slower rate, keeping only the relevant data to optimize memory allocation. I hope this approach would help you observe an increase in performance.
Regards,
Shivam.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!