2023-08-17 02:08 AM
Hi guys,
In my project, i am implementing DMA-SPI Tx/Rx for SPC58NH.
Interrupt SPI is verified. Communication is checked.
Problem is when i activate DMA for specific SPI channel, it triggers DBE(destination Bus Error).
For example, DMA ch 12(DMACHMUX_0) - DSPI 3 Tx, it always reports DBE flag and there is no Tx(monitored by Oscilloscope) and of course, there is no data in PUSHR(Tx data)
But DMA ch 12 - DSPI 0, 2, 4, 6 are working without DBE flag, i also can monitor data in PUSHR(Tx data).
Funny thing is DSPI 1, 3, 5 are not working with same flag.
I believe SPI/DMA configuration has no issue, if it has issue, it shouldn’t work with other channel.
I’ve tried to search related information but it has very less information about DBE.
If you have any clue on this, please share your knowledge.
Thank you!
2023-08-23 01:14 AM - edited 2023-08-23 01:15 AM
Hello YJ_Joe ,
Please Check your DMA Configuration in the chapter 24.4.3 Error reporting and handling
"If a system bus read or write is terminated with an error, the data transfer is stopped and the
appropriate bus error flag set. In this case, the state of the channel’s transfer control
descriptor is updated by the eDMA engine with the current source address, destination
address, and current iteration count at the point of the fault. When a system-bus error
occurs, the channel terminates after the read or write transaction (which is already pipelined
after errant access) has completed. If a bus error occurs on the last read prior to beginning
the write sequence, the write executes using the data captured during the bus error. If a bus
error occurs on the last write prior to switching to the next read sequence, the read
sequence executes before the channel terminates due to the destination bus error."
I am checking with experts
Best Regards
Erwan