Thanks Hippy,
I overlooked that table. But I'm not confident that its intent is to say that 1.024 FVR should NOT be used as the ADC VREF+ and/or that this configuration is "not recommended". However ....Let's discuss the 18M2 PIC16F1847 instead since FVRSETUP and ADCCONFIG are are supported, and because the PIC 16F1847 has equivalent ADC specs. (DS40001453E-page 367 Table 25-8)
It is interesting that 1.8V is also the minimum supply voltage. So it makes sense to not use FVR 1.024 with a supply voltage less than 1.8V.. (Similar to using FVR 4.096 with a Supply < 5.0V ).
The Microchip Datasheet is void of any clear statements or warnings along the lines of "not recommended" and certainly not anything as strong as the statement in Picaxe Manual 2 that says:
"Note that the 1.024V reference may not be used as the Vref+ of the ADC (only
2.048 or 4.096 may be used for this purpose)"
"May Not be used" ? Who came up with that statement?
I am not very confident that Microchip intended the table data to mean that 1.024 FVR "may not be used" or even "not recommended." , If it were that much of a problem then it seems to me that Microchip would have issued a clear warning or even eliminated the possibility. They did not.
My testing on an 18M2 actually shows that it MAY be used and that it works quite well. Here's the setup and the test code.
My conclusion is that FVR1024 MAY be used As the ACD VREF+ as long as the impedance is not too high. In my test circuit VR2 is 3.4K when calibrated and VR1 with the shunt is 0 - 909R, so that's about 4.3K.
What did not work was a 10K Pot for VR1 and 34K for VR2. There simply was not enough current.
Here's the test code and schematic for anyone who cares to confirm/replicate my findings.
Code:
'===================
'File: FVR1024_ADC_TEST.BAS
'Author: "Goeytex"
'===================
#Picaxe 18M2 'Firmware 2.A
#No_Data
#Terminal 19200
Setfreq M16
Pause 4000
INIT:
FVRSETUP FVR1024 ' Fixed Voltage Reference @ 1.024V
ADCCONFIG %011 ' Use FVR for Vref +. OV for Vref -
MAIN:
Do
ReadADC10 B.1,W0
Sertxd (#W0,CR,LF)
pause 1000
Loop