Part Number: TMS320F28388S
Other Parts Discussed in Thread: C2000WARE
Hello,
I am developing a communication layer using the SCI-A module on my TMS320F28388S microcontroller module. We handle a custom serial protocol where data frames can reach up to 70 bytes. We are seeing significant CPU overhead due to high interrupt frequency and context switching.
Current Implementation & Issue:
-
RX Setup: SCI-A RX FIFO is configured to trigger an interrupt at a 1-word level (RX FIFO = 1).
-
RX Logic: The RX ISR reads a single character using
SCI_readCharNonBlocking()and processes it. -
TX Logic: The TX ISR polls the TX FIFO status and writes one byte at a time using
SCI_writeCharNonBlocking(). -
Problem: For 70-byte frames, the constant interrupt servicing significantly impacts the system's real-time control loop.
Desired Goal: Eliminate CPU Overhead using DMA
I want to offload the entire 70-byte transfer process to the DMA controller.
My Assumption & Request for Verification:
-
RX DMA Trigger Constraint: Based on the TRM for my device, I assume that the SCI-A RX FIFO level is not available as a direct hardware peripheral trigger source for the DMA module. This means a standard DMA block transfer (triggered only once after a full frame) is not feasible. Is this assumption correct for my device, or is there an undocumented way to configure the SCI RX status (e.g., level threshold, or idle line) as a DMA trigger?
-
TX DMA Solution: I believe the SCI TX empty status is a viable DMA trigger. What is the recommended, lowest-overhead method for setting up the DMA to send 70 bytes from RAM to the SCI TX register, using the TX FIFO as the trigger?
-
Alternative RX Solutions (If DMA is not viable): Given the limitations, are there any lower-overhead methods for the RX side?
-
Could increasing the RX FIFO interrupt level (e.g., to RX FIFO = 16) reduce the overhead significantly enough?
-
Is there a recommended peripheral-to-peripheral trigger mechanism to emulate a DMA trigger for the SCI RX?
-
Any guidance on maximizing transfer efficiency for high-frequency, multi-byte SCI communications would be greatly appreciated.
Thank you,
Ninad Lomte