nRF52833 SAADC issue

I have a photodiode, and under indoor lighting conditions, the reading on the oscilloscope is about 150mV. When I connect it to an Arduino Uno or Adafruit nRF52840 Sense, I can get a reading close to 150mV.

However, when I connect it to the nRF52840 DK, nRF52832 DK, or nRF52833 DK, using the official SDK's SAADC code, I cannot get the correct reading—the value stays negative. I need to use a flashlight to illuminate the photodiode for the ADC to respond and return the correct reading. Why is this happening? Could it be that the internal input impedance of the SAADC is much lower than that of the photodiode? I also noticed that Adafruit uses Nordic's SAADC, but they don't seem to have this issue. I look forward to your reply!

Related