I have observed when running my software that the results of an ADC conversion appear to have stuck bits. I get results that always have 'A' or 'C' in the middle four bits of the result and the lower four bits only change in the 0th and 1st bit positions. For example, if I run a sawtooth waveform into the ADC input, let the ADC sample the waveform, and then plot the results, I see a staircase instead of a smooth ramp. I'll see values such as: 0x4A5, 0x4A4, 0x4A4, 0x5A4, 0x5A4, 0x5A5, 0x6A4, 0x6A4, 0x6A4 and so forth. I am unable to easily inject signals into the ADC1 so these results are from the ADC2.
In order to ensure that it isn't my code, I modified the adc_soc_c28 example by simply replicating ADC2 functionality wherever there is ADC1 functionality and setting up the right channels and triggers for my two inputs that I can test. Running this code and injecting an analog test signal I see similar results. It appears that the code has the ADC related errata fixes. Any idea what might be going on?
Mitch