I have a 4051 multiplexer muxing 8 pots into ADC1 Ch0 pin 22 ( GPIO 15) on the Seed.
ChipEn and Select lines of the 4051 being driven from pin 1 to pin 4 of the Seed.header
All timing signals etc are perfectly ok.
Seed digital and analog vcc are 3.3v.
My 4051 is at digital 3.3v
Pots are wired to digital 3.3v
On the output of the 4051 the lowest voltage is 0.3v highest is 3.2v for min to max pot rotation
My mux circuit works perfectly well, it’s worked with both STM32F4 and ESP32 processors.
On the F4 and ESP I use 10bit resolution and read 20 to 4070 decimal for pot rotations min to max.
On the Seed using 16bit resolution I get 51856 to 63567 decimal for pot rotations min to max.
If I set the ADC to 10bit resolution (recompile libdaisy) I get 75 to 939 decimal for pot rotations min to max.
As you can see these values are not what I’d expect.
I’d expect 16 bit to be 200 to 65000 at least:
10bit 30 to 4050. allowing for dither/noise etc etc.
To read the ADC I use hardware.adc.Get(0)
Can someone please tell me what I’m doing wrong.
As I mentioned the mux works perfectly on F4 and ESP, my code is ok.
I’ve experimented with delays on the select lines changing logical states for stability etc.