PIC16F1947 ..ADC input has 82k impedance instead of the required 10k

Status
Not open for further replies.

Flyback

Well-Known Member
Hello,
Page 398 of PIC16F1947 datasheet says that the ADC needs an input impedance of 10k. We have 82k and we need 82k there. We dont have room for a buffer opamp. We take ADC readings every 500usecs. Does this mean our ADC readings will be different to what they would be if we had 10k of input impedance.?

(also, we can’t put 10nF on the ADC pin as the signal would be affected too much. We only have 100pF on the 82k resistor to gnd at the ADC input, which incidentally is the resistor at the output of a current source output light sensor [SFH5711])

PIC16F1947 datasheet
https://ww1.microchip.com/downloads/en/DeviceDoc/40001414E.pdf
 
Where does it mention the resistance and capacitance at the A/D input in that data sheet?
 
Where does it mention the resistance and capacitance at the A/D input in that data sheet?
Page 398 of the OP's link. Table 30-8.

To the OP:
Yes your readings will be different and have more error. The high output impedance of your signal source is close enough to the input impedance of the ADC that the two will act like an impedance divider. You want the source input impedance to be negligible compared to the ADC's input impedance impedance so the so that the ADC will not be measuring the input voltage through a voltage divider.

No room for an op-amp buffer? What about an NPN emitter follower? You will lose some headroom due to Vbe and may need to adjust your resistor a bit to make up for the lost range but at least your circuit will work.
 
Last edited:
If you keep the ADC permanently turned on with the same channel selected then the sample and hold capacitor will track your voltage. Errors will come from the leakage current of the pin (typically 10nA). However, this error should be constant. I'd try it and see as it sounds like the only solution possible is in software. Dependant on what you're using the reading for you, may be able to eliminate the error in other ways.

Mike.
 
What is the slew rate of the input signal? If it is slow, then just hang a capacitor across the AD input. The "source impedance" requirement stems from maintaining a constant input voltage as the external signal charges the capacitors in the successive approximation network during the actual conversion sequence. If you hold up the voltage with an external capacitor, the DC source impedance that charges that external capacitor can be 100s of KΩ.

I use this trick all the time when reading battery voltage with a PIC or Arduino ADC. I use a voltage divider that employs resistors that are 100KΩ+, but then I bypass the tap at the divider with a 10nF or higher capacitor. This makes the "source impedance" much less than 10KΩ (for the few us while the SAR does its dance). This way, the accuracy is preserved, and the resistors don't discharge the battery, besides, the shunt cap acts as an anti-aliasing filter, too.
 
Thanks, the output of the sfh5711 is going up and down as our led lamps turn on and off with the mains half cycle.

So i wonder if the sfh5711, with 82k at its output, (thats 82k to goround) can charge the s&h capacitor quick enough for 500us sampling rate?

We need the sfh5711 output to be changing fast with the actual led light, since we do ambient light sensing at the mains zero crossing, where our leds are temporarily off and wont spoil the ambient light reading.
 
The time constant of 82k with a 10pF cap is less than a microsecond. As I said, try it and see. You could turn your LEDs on for 1 cycle and then off for 1 cycle and see how the ambient light varies. You could take this further and plot the variation over a full range of ambient light and work out a correction factor.

Mike.
 
This is an absolute basic requirement - A2D 101 - why wasn't a buffer included in the very first stages of the design?.

Add a buffer - although you might try Mike's 'trick' and see if it helps.
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…