Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Best way to buffer inputs to ADC (MCP3008)?

pmi

Newbie
Joined
Sep 23, 2023
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
14
I am using a MCP3008 8 channel ADC to capture some different voltage levels on a board I am making that interfaces to a Raspberry Pi through the SPI bus. The clock speed is ~2.4 MHz. Since the ADC inputs need low impedance inputs, I thought I would use a TLV2464 (8 op amps) configured as unity gain buffers for each input to the ADC. The board has three DC power systems - 3.3V, 5V, and 12V, and the 12V system uses a MOSFET to deliver 2-4 A to a load every few minutes for about 1 second. The voltages under measurement are changing during the time the MOSFET delivers the 2-4 A.

I was wondering how I should filter the inputs of the 8 op-amps in the TLV2464 chip. Maybe just a 1 nF cap to ground?

Thanks!
 
Hi,

To add to Brian's post:
Opamps have a settling time (filters, too). The more precision you need the faster settling time you need.
Also important infirmation: introduced capacitance by the ADC or it's MUX.

In my early designer times I thought I did something good to add Opamps as ADC buffer. Turned out it was counter productive.
I encountered high channel crosstalk in the ADC results that did not fit to what the scope pictures showed. The scope pictures did not show any crosstalk. But when I zoomed in (time) I saw some ringing every time the MUX switched to the according channel. Barely noticable. But the ADC's hold timing exactly met this ringing. And this ringing depends on the level of the previous channel's level, thus it "looked like" crosstalk.

From my experience:
Decide your requirements first. Levels, errors, timing ... all in values with units, so you can calculate with them.
Don't use Opamps when you can do without them.
OPAMPs are not bad, they are extremely good fir a lot of applications. I like to use them.
Opamps introduce errors: Distortion, offset, drifts ... more than passive filters.
But they can amplify signals, they can stabilize signals (by lowering signal impedance) ... passive filters can't do.

So if you use Opamps, do it properly.

Klaus
 
One solution is to use a single chip part that can implement high Z in capability :

1695519356368.png


Note has diff inputs (you can config as single ended), and various COM to interface to Pi. Includes
onchip Vref.

PSOC 4 or PSOC 5LP. Other stuff on part (5LP has all, 4 subset) (multiple ones in many cases) :

1695518690594.png



Regards, Dana.
 
Last edited:

LaTeX Commands Quick-Menu:

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top