I am currently working with a custom board that captures an ECG using an AD8233 chip from analog devices. Attached to the board are gold plated pads that act as electrodes that a person will touch with their fingers, which is wired to the AD8233.
The analog output from the AD8233 goes to one of the analog in ports on the NRF52382, which is then read as a 12 bit value via the SAADC module.
Things work properly for the most part, but there will be periods where the ADC will return values ranging from about 65525 to 65535. There will sometimes be a few zeros returned by the ADC in between these 16 bit numbers.
From what I've been reading, it doesn't seem like the ADC should ever be returning 16 bit values if I've configured it to sample in 12 bit mode in sdk_config.h. I am storing the values in a uint16_6 type. Is this some kind of error code, or is this indicative of some sort of hardware issue due to the user making physical contact with the PCB?
EDIT: its also worth noting that this is seen with other ADC inputs, and will also occur without a person making physical contact with the PCB.