I am using a MKE18F16 MCU. I was having issues while using two ADCs simultaneously (ADC0 and ADC2). The issue was that ADC2 was performing significantly worse than ADC0. The same AutoCalibration mechanisms for both ADCs, and each ADC had its own unique calibration stored in NVM to be used out of reset. However, every time the device was reset, ADC2 would give different results that were not accurate at all. ADC0 sometimes would randomly give different results, but not to the extent that ADC2 was showing.
Since then, this error that was being observed with the two ADCs has gone down significantly. The issue was determined to be that both ADC0 and ADC2 were interfering with each other, because they were being triggered at the same time. ADC0 and ADC2 would both trigger at a 50% duty cycle, and since ADC0 was set to be triggered first, it is believed that this is why ADC0 performed better then ADC2. Changing the operation to give some space between ADC triggers fixed the issue.
Now the question is why? Why does having them trigger at the same time cause issues? Why does spacing them apart help? Is there any recommendation on how much time should be allocated between triggers?