Arduino Nano, AREF and 3.3V voltages not as I expected

I have an Arduino Nano, powered by USB. When by itself on the desk, attached to nothing but the USB cable the pins have the following values

-5V pin reads 4.62V
-AREF pin reads 4.62V
-3.3V pin read 3.32V

My plan is to connect to an accelerometer that requires 3.3V and outputs 0-3.3V (actually 1.65 +/-1.65V).

To get the most resolution from the ADC, I was going to connect the AREF and 3.3V pins and use the EXTERNAL reference.

However when I connect 3.3V and AREF pins, (I have not connected the sensor, just the two pins) the pin voltages are as follows:

-5V pin reads 4.62V
-AREF pin reads 4.62V
-3.3V pin read 4.62V

Why does AREF read 4.62V with nothing connected? Why does 3.3V pin rise to match the AREF and 5V pin voltages?

If you want to use AREF you need set the registers to disable Vcc as a reference.

septillion:
If you want to use AREF you need set the registers to disable Vcc as a reference.

I thought that was accomplished by analogReference(EXTERNAL). No? Yes?

It does, but I never read you did :wink: Let alone do I read you don't do an analogRead() before calling analogReference().

Quote from the Arduino reference:

If you’re using an external reference on the AREF pin, you must set the analog reference to EXTERNAL before calling analogRead(). Otherwise, you will short together the active reference voltage (internally generated) and the AREF pin, possibly damaging the microcontroller on your Arduino board.

septillion:
It does, but I never read you did :wink: Let alone do I read you don't do an analogRead() before calling analogReference().

adwsystems:
...
To get the most resolution from the ADC, I was going to connect the AREF and 3.3V pins and use the EXTERNAL reference.
...

I don't use analogRead. I use the ISR method from Nick's website. But I haven't added that yet because

If you're using an external reference on the AREF pin, you must set the analog reference to EXTERNAL before calling analogRead(). Otherwise, you will short together the active reference voltage (internally generated) and the AREF pin, possibly damaging the microcontroller on your Arduino board.

The sensor is not 5V tolerant and wanted to make sure the ADC and the 3.3V output was working right. Needless to say I was a little surprised when it wasn't.

Perhaps my code would help

void setup()
 {
  analogReference(EXTERNAL);
 }

void loop()
 {

 }

adwsystems:
I use the ISR method from Nick's website.

Why?

septillion:
Why?

Does using analogRead() instead of the ISR solve the issue?

Might. We would have to compare the code the OP has and the analogRead() code.

septillion:
Might. We would have to compare the code the OP has and the analogRead() code.

Why is my MCVE broken as well. No ISR and no analogRead()?

void setup()
 {
  analogReference(EXTERNAL);
 }

void loop()
 {

 }

I tried this with an UNO and got the same result. :frowning: