Other Parts Discussed in Thread: HALCOGEN
I have observed that MIBSPI RX DMA triggers on any but the last buffer in a transfer group don't fire if there is too long between writing to that buffer and the next one, when using loopback and "suspend single-transfer" or "suspend single-transfer overwrite-protect" buffer modes. I do not understand what "too long" means exactly, but it's longer than waiting for the INTFLGSUS bit to be set and does depend somewhat on the configured baud rate. What constraints must I follow to ensure the DMA channels are reliably triggered?
Note that I am seeing similar symptoms where a DMA channel isn't triggered as many times as it should be with real code talking to another MCU out of loopback mode and using non-suspend buffer modes, which I think might be the same problem, but that one is much harder to reproduce due to timing and other complexities so I think it makes sense to try and resolve the easily reproducible case with loopback first.