I am using a TMS570LS3137 and TMS570LS20216 dev board, I see the same behaviour on both boards.
I have ADC 2 Group 1 set up to continuously convert 2 ADC channels (8 and 9). FIFO size and threshold interrupt is set to 4. Memory BNDA=0 and BNDB=2. I set it up to trigger an interrupt when the the FIFO is full, so that I can read the new data. The interrupt works and the ADC conversions work. After I read the last entry in the FIFO, the ADC fills the FIFO with new data (I do not set the group select register again), but sometimes the data is placed in the FIFO in the wrong order.
When reading ADC channels 8 and 9 into a 4 entry FIFO, I expect the first and third entries to be the conversion of channel 8 and the second and fourth entries to be the conversion value of channel 9. However sometimes channel 9 is in the first and third entries.
I am monitoring 0xFF3A0000 directly:
I see this sometimes (This is the expected behavior)
0xFF3A0000: 0x00008XXX
0xFF3A0004: 0x00009XXX
0xFF3A0008: 0x00008XXX
0xFF3A000C: 0x00009XXX
I see this other times (This is NOT the expected behavior)
0xFF3A0000: 0x00009XXX
0xFF3A0004: 0x00008XXX
0xFF3A0008: 0x00009XXX
0xFF3A000C: 0x00008XXX
I have never seen this happen when using single conversion groups with multiple inputs. This makes reading the continuous data via ADC->GxBUF[1].BUFFER0 upredictable.
The TRM states that conversions always start with the lowest channel, is this not the case when continuous conversion groups restart conversion due to an empty buffer?