Digital-to-analog converters, or DACs, are used when a microcontroller needs to output a real analog voltage instead of only digital HIGH/LOW signals or PWM. Two common I2C DAC options are the MCP4725 and MCP4728.
The MCP4725 is a single-channel 12-bit DAC. The MCP4728 is a four-channel 12-bit DAC. Both are useful in Arduino-compatible projects, but they fit different applications. This article compares them from a practical project point of view.
What a DAC Does
A DAC converts a digital number from the microcontroller into an analog output voltage.
- A value of 0 produces an output near 0V
- A mid-scale value produces about half of the reference range
- A full-scale value produces an output near the top of the reference range
This is different from PWM. PWM rapidly switches a digital output on and off. A DAC produces an actual analog voltage level.
MCP4725: Simple Single-Channel DAC
The MCP4725 is a compact and popular single-channel I2C DAC. It is often used when a project needs one adjustable analog voltage output.
- Single DAC output channel
- 12-bit resolution
- I2C interface
- Small and simple module designs
- Good Arduino library support
- Useful for one analog control voltage
The MCP4725 is a good choice when the project only needs one analog output and simplicity is important.
MCP4728: Four DAC Outputs on One I2C Device
The MCP4728 provides four independent 12-bit DAC output channels. This makes it useful when a project needs several analog voltages at the same time.
- Four DAC output channels
- 12-bit resolution per channel
- I2C interface
- Useful for multi-channel analog control
- More complex than MCP4725
- Can reduce module count compared with using several single-channel DACs
The MCP4728 is often the better choice when the project needs multiple analog outputs, such as several control voltages, bias voltages or analog setpoints.
Main Comparison Table
| Feature | MCP4725 | MCP4728 |
|---|---|---|
| DAC channels | 1 channel | 4 channels |
| Resolution | 12-bit | 12-bit per channel |
| Interface | I2C | I2C |
| Best for | One adjustable analog voltage | Several analog outputs from one module |
| Board/module complexity | Simple | More complex, but more capable |
| Software complexity | Low | Medium, because multiple channels must be handled |
| Good for one output? | Excellent | Works, but may be more than needed |
| Good for four outputs? | Requires multiple chips or modules | Excellent |
| Main limitation | Only one output channel | More setup and channel management |
Resolution: What 12-Bit Means
Both MCP4725 and MCP4728 are 12-bit DACs. A 12-bit DAC divides the output range into 4096 steps.
For example, if the DAC output range is 0V to 5V, one step is roughly 5V divided by 4096, or about 1.22 mV. If the output range is 0V to 3.3V, one step is about 0.8 mV.
- 12-bit resolution is enough for many control and adjustment tasks
- It is much smoother than an 8-bit output
- It is not the same as laboratory-grade analog accuracy
- Noise, reference voltage and output loading still matter
Resolution describes step size. Accuracy depends on the whole circuit.
DAC Output Range
The DAC output voltage range depends on the supply voltage and reference arrangement of the chip and module. In many simple modules, the output is limited to the supply range.
- A 5V-powered DAC module can usually output within the 0V to 5V range
- A 3.3V-powered DAC module can usually output within the 0V to 3.3V range
- The output cannot normally create negative voltages by itself
- The output cannot normally exceed its supply range
If the project needs 0-10V, ±5V or ±10V output, extra analog circuitry is required after the DAC.
Output Drive Limitations
A DAC output is a signal output, not a power output. It should not be used to directly drive motors, relays, speakers or heavy loads.
- Use the DAC as a control voltage source
- Use an op-amp buffer when the load requires more current or lower impedance
- Use a driver stage for LEDs, motors, relays or solenoids
- Check the datasheet output loading limits
The DAC creates a voltage reference or control signal. The rest of the circuit must be designed to use that signal correctly.
MCP4725 for One Analog Output
The MCP4725 is ideal when the project needs only one DAC output. It keeps the hardware and software simple.
- Analog reference voltage
- LED dimming control through an analog driver
- Audio tone or simple waveform experiments
- Power supply setpoint
- Analog sensor simulation
- Control voltage for another circuit
If the design only needs one analog voltage, the MCP4725 is usually the cleaner choice.
MCP4728 for Multiple Analog Outputs
The MCP4728 is useful when the project needs several independent analog voltages. It avoids using multiple single-channel DAC modules and keeps all outputs controlled through one I2C device.
- Multi-channel control voltages
- Several analog setpoints
- Multi-output calibration signals
- Bias voltages for analog circuits
- Four-channel sensor simulation
- Compact modular systems needing several analog outputs
If the project needs more than one DAC output, the MCP4728 often makes the design cleaner than several MCP4725 modules.
I2C Bus Considerations
Both chips use I2C, which makes wiring simple. The DAC can share the bus with sensors, displays, RTC modules, ADC modules and I/O expanders.
- SDA and SCL must have suitable pull-up resistors
- All devices on the bus need unique addresses
- Long wires can cause I2C reliability problems
- Bus voltage must be compatible with all connected modules
- I2C speed should be chosen for the bus length and devices
For modular I2C systems, DAC modules fit naturally because they only need power, ground and the two I2C signals.
Address Conflicts
I2C address conflicts can matter when using multiple DAC modules.
A single MCP4728 gives four outputs from one I2C device. If the project needs several analog outputs, this can avoid the address and wiring problems that may come from using several single-channel DAC modules.
- MCP4725 is simple for one output
- Multiple MCP4725 modules may require different I2C addresses
- MCP4728 gives four outputs without needing four separate modules
- Always check the address options of the exact module
Speed and Waveform Generation
I2C DACs can generate changing voltages, but they are not the best choice for high-speed waveform generation. The I2C bus and software overhead limit how fast updates can happen.
- Good for slow control voltages
- Good for setpoints and calibration values
- Usable for simple low-speed waveform experiments
- Not ideal for high-quality audio output
- Not ideal for fast arbitrary waveform generation
If the project needs fast or high-quality analog waveform output, a different DAC interface or audio-specific hardware may be better.
EEPROM / Stored Output Values
Both MCP4725 and MCP4728 families are often used in applications where output settings may be stored. Depending on chip configuration and library support, DAC values can be written so that the output returns to a defined state after power-up.
- Useful for calibration settings
- Useful for startup output values
- EEPROM writes should not be used continuously in fast loops
- Use volatile updates for frequently changing values
For outputs that change constantly, avoid unnecessary nonvolatile writes. Store only values that really need to survive power cycling.
PWM vs DAC
Many microcontrollers can generate PWM outputs, and PWM is often used as a simple analog substitute. However, PWM is not the same as a DAC output.
| Feature | PWM Output | DAC Output |
|---|---|---|
| Signal type | Digital pulses with variable duty cycle | Analog voltage level |
| Needs filter for smooth voltage? | Yes, if a true analog voltage is needed | Usually no simple PWM filter needed |
| Ripple/noise | Can have ripple after filtering | Generally smoother for control-voltage use |
| Best for | LED dimming, motor control, simple power control | Analog references, setpoints and precise control voltages |
For LEDs and motor speed control, PWM is often perfect. For a clean analog control voltage, a DAC is usually better.
Power Supply and Noise
A DAC output is only as useful as the surrounding analog design. Power supply noise, ground noise and digital switching can affect the output.
- Use clean power for analog circuits when possible
- Keep DAC output traces away from noisy switching signals
- Add filtering if the output must be very quiet
- Use proper grounding between digital and analog parts
- Buffer the output when driving external circuits
For high-quality analog results, the DAC module is only one part of the design.
When to Use MCP4725
- You need one analog output
- You want the simplest DAC module
- You are learning DAC basics
- You need one adjustable reference or setpoint
- You want a small low-cost I2C DAC
The MCP4725 is the best choice when a single analog voltage is enough.
When to Use MCP4728
- You need several DAC outputs
- You want four analog outputs from one I2C device
- You are building a multi-channel control system
- You want to avoid using several single-channel DAC modules
- You need independent analog setpoints for several circuits
The MCP4728 is the better choice when the project needs more than one analog output.
Choosing by Project Type
| Project Type | Good Choice | Reason |
|---|---|---|
| One analog setpoint | MCP4725 | Simple and enough for one output |
| Four control voltages | MCP4728 | Four outputs in one chip/module |
| Small waveform experiment | MCP4725 or MCP4728 | Works for slow experiments, but not high-speed waveform generation |
| Analog sensor simulator | MCP4725 or MCP4728 | Use MCP4725 for one signal, MCP4728 for several signals |
| Multi-channel calibration source | MCP4728 | Multiple outputs can be adjusted independently |
| LED dimming | Usually PWM instead | PWM is usually simpler and more efficient for LEDs |
Common Mistakes
- Expecting the DAC to output voltages above its supply voltage
- Expecting the DAC to generate negative voltage without extra circuitry
- Using the DAC output to drive a heavy load directly
- Using EEPROM writes repeatedly in a fast loop
- Choosing MCP4725 and later needing several outputs
- Choosing MCP4728 for a project that only ever needs one output
- Expecting I2C DACs to behave like high-speed audio DACs
Which DAC Should You Choose?
| Need | Best Choice | Why |
|---|---|---|
| One analog voltage | MCP4725 | Simple single-channel DAC |
| Two to four analog voltages | MCP4728 | Four DAC outputs in one device |
| Smallest learning project | MCP4725 | Easier to understand and test |
| Multi-channel analog control | MCP4728 | Cleaner than using several separate single-channel modules |
| Fast audio-quality output | Use different hardware | I2C DAC modules are not the best choice for high-quality fast audio |
| Simple brightness control | Usually PWM instead | PWM is normally better for LED brightness control |
When to Use Something Else
Sometimes a different approach is better than MCP4725 or MCP4728.
- Use PWM when controlling LED brightness or motor speed
- Use an audio DAC or I2S DAC for sound output
- Use an op-amp after the DAC when higher voltage or more output current is needed
- Use a precision voltage reference when absolute accuracy matters
- Use an external ADC such as ADS1115 when measuring analog voltages instead of generating them
Conclusion
The MCP4725 and MCP4728 are both useful I2C DAC options, but they solve different problems.
- Choose the MCP4725 when the project needs one simple analog output voltage.
- Choose the MCP4728 when the project needs multiple analog outputs from one I2C device.
The DAC output is a control signal, not a power output. For reliable analog control, pay attention to output loading, supply noise, reference stability and any required buffer or amplifier stages.
