Buffering analog outputs from an MCP4728 AO chip

Dear Forum,

I am using an MCP4728 chip (4 analog output, 12 bit) with an arduino uno or yun. It works very well and I can set the outputs programmatically between 0 and Vdd which is 0-5V.

I have an application which is likely to want to draw more current than the chip offers so I tried to build a buffer circuit.

I am using an 074 quad OP amp with three of the amplifiers in a simple voltage follower mode and the fourth in a non-inverted configuration using two 4.7k resistors to give a gain of 2.

The outputs of the MCP4728 provide the correct voltages and these are connected directly to the +ve input pins of the 074. The outputs seem OK at input voltages above 2V but voltages below this cause the outputs of the 074 to head towards the Vdd of the 074. I have tried powering the 074 between 0 and +12 volts. If the MCP4728 outputs are set to zero, then the 074 outputs swing to roughly the Vdd.

I am inexperienced with electronics and wonder if I have mismatched the loads between the amplifiers or whether I need to measure the outputs from the 074 with a load attached. I don't know how to do this. Is it OK to connect the MCP4728 directly to the inputs of the 074 or should I have some resistors in between.

The MCP4728 chip can deliver a maximum output of 24 mA. The specs also say that the V OUT pin can drive up to 1000 pF of capacitive load. It is recommended to use a load with RL greater than 5 k Ω.

Hope someone can help.


Look at the data sheet on that op amp. You will see how close you can get the output to the power rails. What you need is a better op amp, these are known as "rail to rail" amps and give you a much better output voltage swing.

Ah… of course.
That makes sense.
Thank you,