We are using NXP MPC5746C MicroController for one of our projects.
We have used external Multiplexers (PartNumber: 74HC4051PW) to connect to ADC_0.
Below are the configurations I used for ADC_0:
ADC Bus clock(FS80) is set to 80MHz using a system clock of 160 MHz.
ADC Clock - 40MHz ( ADC_0.MCR.B.ADCLKSEL = 0 - Half of the bus clock)
Sample Time - 0.6 microseconds (ADC_0.CTR2.B.INPSAMP = 24)
Decode Signal Delay - 2.5 micro seconds (ADC_0.DSDR.B.DSD = 100)
One shot mode and Normal Conversion is enabled for all the external Channels(64 to 95) of ADC_0.
With this configuration I applied a voltage of 0.337V to one of the external channels and expected to observe the ADC Count as 69. But I have observed the ADC Count as 77.
If I change the decode signal delay (ADC_0.DSDR.B.DSD) to 4000 (which is approximately 50microseconds), only then I am receiving the ADC Count as 69.
But increasing the DSD shall increase the total conversion time which may make our system slow.
Please suggest if we should use a delay of 4000 values in DSD register to get the accurate ADC results or is there any other solution to increase the ADC Accuracy.
Using this DSD delay, to convert 32 external channels (Decode Signal delay of 50*8 = 400 microseconds + sampling time of ~1*8 = 8 => Results in total of ~410microseconds)
Please correct me if above calculation is wrong