I am trying to simply read in an analogue voltage between 0 and 5V on Channel_0 of the ADC but the maximum raw ADC readout (counts) that is returned is 4226 (which equates to 0,79V using the equation below). An observation that I’ve made is that this maximum reading occurs around a 2.9V input, with a further voltage increase the ADC reading wraps around to near-zero, after which the value of 4226 is again achieved nearing 5V.
voltage = counts * (fs_range/2^15) = counts * (6,144 / 32768)
As a control test, I have flashed the official Adafruit ADS1X15 library to an Arduino Uno and confirmed that the ADC is functioning correctly - with raw ADC outputs adhering to the the equation above across an input voltage range of 0 to 5V.
As per the PX4-Autopilot ADS1115.h, by default, the driver configures the ADC in the following manner:
• 4 channels with GND as baseline
• Programmable Gain Aplifier (PGA) set to 2/3, resulting in the full-scale range (fs_range) of 6.144
• Valid output ranges from 0 to 32767 on each channel
The hardware setup is as follows:
• Developing on an NXP UCANS32K146 development board.
• The ADS1115’s Vdd and GND are connected to pin1 (5V) and pin4 (GND), of the P3 header on the NXP, respectively.
• SCL connected pin 2 on P3 header.
• SDA connected pin 2 on P3 header.
• ADC’s A0 (channel 0) is connected to variable DC voltage source, with the later’s negative terminal connected to the NXP’s GND.
Any insights or support would greatly be appreciated.
Thank you in advance!