I am using the ADC Control Core (ADCCC) to sample all 8+1 ADC inputs at 1 Msps.
Note that I specifically want to use the ADC Control Core, rather than the other ADC IP blocks.
The (UG-M10ADC) ADC User Guide explains reading the TSD but is somewhat ambiguous about how you can do it and leaves questions unanswered.
My sequencer starts ADCCC conversions in a continuous 10-pass cycle. Each cycle step converts and reads 1 sample from each of 9 channels plus one unused sample time. Therefore each channel produces 1 sample every 10 us under sequencer control. This works fine.
I now want to add reading of the Temperature Sensing Diode (TSD) though ADC1.
The procedure it looks like I can use is: (1) read the TSD using my 1 Msps ADC so long as I only do 1 TSD conversion every 20 us (50 kHz), (2) average 64 of these 20 us-interval samples to produce 1 temperature measurement every 1280 us.
My questions are:
(a) Is it correct that I can use this procedure?
(b) What is the ADC Control Core channel code for COMMAND_CHANNEL to read the TSD?
I have read through UG-M10ADC, other MAX 10 documentation and everything I can find on the internet but cannot get answers to these. Thanks.
1) I dont see a problem. It is up to the user to determine how often you want to read, and for post-processing, it is really up to you how many samples you want to average.
2) the command_channel for TSD is channel 17. See https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max-10/ug_m10_adc.pdf (Table 26)