MCP4728 12-Bit, Quad Digital-to-Analog Converter with EEPROM Memory Features Description • 12-Bit Voltage Output DAC with 4 Buffered Outputs • On-Board Non-Volatile Memory (EEPROM) for DAC Codes and I2CTM Address Bits • Internal or External Voltage Reference Selection • Output Voltage Range: - Using Internal VREF (2.048V): 0.000V to 2.048V with Gain Setting = 1 0.000V to 4.096V with Gain Setting = 2 - Using External VREF (VDD): 0.000V to VDD • ±0.2 LSB DNL (typical) • Fast Settling Time: 6 µs (typical) • Normal or Power-Down Mode • Low Power Consumption • Single-Supply Operation: 2.7V to 5.5V • I2C Interface: - Address bits: User Programmable to EEPROM - Standard (100 kbps), Fast (400 kbps) and High Speed (3.4 Mbps) Modes • 10-Lead MSOP Package • Extended Temperature Range: -40°C to +125°C The MCP4728 device is a quad, 12-bit voltage output Digital-to-Analog Convertor (DAC) with non-volatile memory (EEPROM). Its on-board precision output amplifier allows it to achieve rail-to-rail analog output swing. Applications • • • • • • • • Set Point or Offset Adjustment Sensor Calibration Closed-Loop Servo Control Low Power Portable Instrumentation PC Peripherals Programmable Voltage and Current Source Industrial Process Control Instrumentation The DAC input codes, device configuration bits, and I2C address bits are programmable to the non-volatile memory (EEPROM) by using I2C serial interface commands. The non-volatile memory feature enables the DAC device to hold the DAC input codes during power-off time, allowing the DAC outputs to be available immediately after power-up with the saved settings. This feature is very useful when the DAC device is used as a supporting device for other devices in applications network. The MCP4728 device has a high precision internal voltage reference (VREF = 2.048V). The user can select the internal reference or external reference (VDD) for each channel individually. Each channel can be operated in normal mode or power-down mode individually by setting the configuration register bits. In power-down mode, most of the internal circuits in the powered down channel are turned off for power-savings and the output amplifier can be configured to present a known low, medium, or high resistance output load. The MCP4728 device includes a Power-On-Reset (POR) circuit to ensure reliable power-up and an on-board charge pump for the EEPROM programming voltage. The MCP4728 has a two-wire I2C compatible serial interface for standard (100 kHz), fast (400 kHz), or high speed (3.4 MHz) mode. The MCP4728 DAC is an ideal device for applications requiring design simplicity with high precision, and for applications requiring the DAC device settings to be saved during power-off time. The MCP4728 device is available in a 10-lead MSOP package and operates from a single 2.7V to 5.5V supply voltage. © 2009 Microchip Technology Inc. DS22187C-page 1 MCP4728 Package Type MSOP-10 VDD 1 10 VSS SCL 2 MCP4728 SDA 3 9 VOUT D 8 VOUT C LDAC 4 7 VOUT B RDY/BSY 5 6 VOUT A Functional Block Diagram LDAC EEPROM A VDD INPUT REGISTER A VSS SDA SCL I2C Interface Logic EEPROM B INPUT REGISTER B EEPROM C INPUT REGISTER C EEPROM D UDAC OUTPUT REGISTER A UDAC OUTPUT REGISTER B UDAC OUTPUT REGISTER C UDAC VREF A STRING DAC A VREF B Gain Control STRING DAC B VREF C Gain Control STRING DAC C VREF D Gain Control RDY/BSY INPUT REGISTER D Internal VREF (2.048V) VREF Selector VDD DS22187C-page 2 OUTPUT REGISTER D Output Logic Gain Control STRING DAC D VREF OP AMP A VOUT A Power Down Control Output Logic OP AMP B VOUT B Power Down Control Output Logic OP AMP C VOUT C Power Down Control OP AMP D Output Logic VOUT D Power Down Control (VREF A, VREF B, VREF C, VREF D) © 2009 Microchip Technology Inc. MCP4728 1.0 ELECTRICAL CHARACTERISTICS Absolute Maximum Ratings† VDD...................................................................................6.5V All inputs and outputs w.r.t VSS .................–0.3V to VDD+0.3V Current at Input Pins ....................................................±2 mA † Notice: Stresses above those listed under “Maximum ratings” may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or any other conditions above those indicated in the operation listings of this specification is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability Current at Supply Pins ............................................. ±110 mA Current at Output Pins ...............................................±25 mA Storage Temperature ...................................-65°C to +150°C Ambient Temp. with Power Applied .............-55°C to +125°C ESD protection on all pins ................ ≥ 4 kV HBM, ≥ 400V MM Maximum Junction Temperature (TJ) ......................... +150°C ELECTRICAL CHARACTERISTICS Electrical Specifications: Unless otherwise indicated, all parameters apply at VDD = + 2.7V to 5.5V, VSS = 0V, RL = 5 kΩ, CL = 100 pF, GX = 1, TA = -40°C to +125°C. Typical values are at +25°C, VIH = VDD, VIL = VSS. Parameter Symbol Min VDD 2.7 IDD_EXT — Typical Max Units Conditions 5.5 V 800 1400 µA VREF = VDD, VDD = 5.5V All 4 channels are in normal mode. — 600 — µA 3 channels are in normal mode, 1 channel is powered down. — 400 — µA 2 channels are in normal mode, 2 channel are powered down. — 200 — µA 1 channel is in normal mode, 3 channels are powered down. Power Requirements Operating Voltage Supply Current with External Reference (VREF = VDD ) (Note 1) Power-Down Current withExternal Reference IPD_EXT — 40 — nA All 4 channels are powered down. (VREF = VDD) Supply Current with Internal Reference (VREF = Internal) (Note 1) IDD_INT — 800 1400 µA VREF = Internal Reference VDD = 5.5V All 4 channels are in normal mode. — 600 — µA 3 channels are in normal mode, 1 channel is powered down. — 400 — µA 2 channels are in normal mode, 2 channels are powered down. — 200 — µA 1 channel is in normal mode, 3 channels are powered down. — 45 60 µA All 4 channels are powered down. VREF = Internal Reference Power-Down Current with Internal Reference Note 1: 2: 3: 4: 5: 6: 7: 8: 9: IPD_INT All digital input pins (SDA, SCL, LDAC) are tied to “High”, Output pins are unloaded, code = 0x000. The power-up ramp rate measures the rise of VDD over time. This parameter is ensured by design and not 100% tested. This parameter is ensured by characterization and not 100% tested. Test code range: 100 - 4000 codes, VREF = VDD, VDD = 5.5V. Time delay to settle to a new reference when switching from external to internal reference or vice versa. This parameter is indirectly tested by Offset and Gain error testing. Within 1/2 LSB of the final value when code changes from 1/4 of to 3/4 of full scale. This time delay is measured from the falling edge of ACK pulse in I2C command to the beginning of VOUT. This time delay is not included in the output settling time specification. © 2009 Microchip Technology Inc. DS22187C-page 3 MCP4728 ELECTRICAL CHARACTERISTICS (CONTINUED) Electrical Specifications: Unless otherwise indicated, all parameters apply at VDD = + 2.7V to 5.5V, VSS = 0V, RL = 5 kΩ, CL = 100 pF, GX = 1, TA = -40°C to +125°C. Typical values are at +25°C, VIH = VDD, VIL = VSS. Parameter Symbol Min Typical Max Units Conditions Power-On-Reset Threshold Voltage VPOR — 2.2 — V All circuits including EEPROM are ready to operate. Power-Up Ramp Rate VRAMP 1 — — V/s Note 2, Note 4 n 12 — — Bits Code Change: 000h to FFFh DC Accuracy Resolution INL Error INL — ±2 ±13 LSB (Note 5) DNL Error DNL -0.75 ±0.2 ±0.75 LSB (Note 5) Offset Error VOS — 0.02 0.75 % of FSR Code = 000h ΔVOS/°C — ±0.16 — ppm/°C -45°C to 25°C — ±0.44 — ppm/°C +25°C to +125°C -3 -0.1 3 % of FSR VREF = Internal, Gain = x1 Code = FFFh, Offset error is not included. -3 -0.1 3 % of FSR VREF = Internal, Gain = x2 Code = FFFh, Offset error is not included. -2 -0.1 2 % of FSR VREF = VDD Code = FFFh, Offset error is not included. — -3 — ppm/°C Offset Error Drift Gain Error GE Gain Error Drift ΔGE/°C Internal Voltage Reference (VREF), (Note 3) Internal Voltage Reference Temperature Coefficient VREF 2.007 2.048 2.089 ΔVREF/°C — — 125 0.25 — — ppm/°C -40 to 0°C LSB/°C -40 to 0°C — — 45 0.09 — — ppm/°C 0 to +125°C LSB/°C 0 to +125°C V Reference Output Noise ENREF — 290 — µVp-p Code = FFFh, 0.1 - 10 Hz, Gx=1 Output Noise Density eNREF — 1.2 — μV HZ Code = FFFh, 1 kHz, Gx=1 1/f Corner Frequency fCORNER — 1.0 — — 400 — Hz — FSR — V Code = FFFh, 10 kHz, Gx=1 Analog Output (Output Amplifier) Output Voltage Swing Note 1: 2: 3: 4: 5: 6: 7: 8: 9: VOUT (Note 7) All digital input pins (SDA, SCL, LDAC) are tied to “High”, Output pins are unloaded, code = 0x000. The power-up ramp rate measures the rise of VDD over time. This parameter is ensured by design and not 100% tested. This parameter is ensured by characterization and not 100% tested. Test code range: 100 - 4000 codes, VREF = VDD, VDD = 5.5V. Time delay to settle to a new reference when switching from external to internal reference or vice versa. This parameter is indirectly tested by Offset and Gain error testing. Within 1/2 LSB of the final value when code changes from 1/4 of to 3/4 of full scale. This time delay is measured from the falling edge of ACK pulse in I2C command to the beginning of VOUT. This time delay is not included in the output settling time specification. DS22187C-page 4 © 2009 Microchip Technology Inc. MCP4728 ELECTRICAL CHARACTERISTICS (CONTINUED) Electrical Specifications: Unless otherwise indicated, all parameters apply at VDD = + 2.7V to 5.5V, VSS = 0V, RL = 5 kΩ, CL = 100 pF, GX = 1, TA = -40°C to +125°C. Typical values are at +25°C, VIH = VDD, VIL = VSS. Parameter Symbol Min Typical Max Units FSR — VDD — V VREF = VDD FSR = from 0.0V to VDD — VREF — V VREF = Internal, Gx =1, FSR = from 0.0 V to VREF — 2 * VREF — V VREF = Internal, Gx =2, FSR = from 0.0V to 2*VREF TSETTLING — 6 — µs (Note 8) Analog Output Time Delay from Power-Down Mode TdExPD — 4.5 — µs VDD = 5V, (Note 4), (Note 9) Time delay to settle to new reference (Note 4) TdREF — 26 — µs From External to Internal Reference — 44 — µs From Internal to External Reference dB Full Scale Range (Note 7) Output Voltage Settling Time Power Supply Rejection PSRR — -57 — Capacitive Load Stability CL — — 1000 Slew Rate SR — 0.55 — Phase Margin pM — 66 — Short Circuit Current ISC — 15 24 mA Short Circuit Current Duration TSC_DUR — Infinite — hours pF Conditions VDD = 5V± 10%, VREF = Internal RL = 5 kΩ, No Oscillation, (Note 4) V/µs Degree CL = 400 pF, RL = ∞ (°) VDD = 5V, All VOUT Pins = Grounded. Tested at room temperature. (Note 4) — 1 — Ω Normal mode — 1 — kΩ Power-Down Mode 1 (PD1:PD0 = 0:1), VOUT to VSS — 100 — kΩ Power-Down Mode 2 (PD1:PD0 = 1:0), VOUT to VSS — 500 — kΩ Power-Down Mode 3 (PD1:PD0 = 1:1), VOUT to VSS Major Code Transition Glitch — 45 — nV-s Digital Feedthrough — <10 — nV-s Analog Crosstalk — <10 — nV-s DC Output Impedance (Note 4) ROUT Dynamic Performance (Note 4) Note 1: 2: 3: 4: 5: 6: 7: 8: 9: 1 LSB code change around major carry (from 7FFh to 800h) All digital input pins (SDA, SCL, LDAC) are tied to “High”, Output pins are unloaded, code = 0x000. The power-up ramp rate measures the rise of VDD over time. This parameter is ensured by design and not 100% tested. This parameter is ensured by characterization and not 100% tested. Test code range: 100 - 4000 codes, VREF = VDD, VDD = 5.5V. Time delay to settle to a new reference when switching from external to internal reference or vice versa. This parameter is indirectly tested by Offset and Gain error testing. Within 1/2 LSB of the final value when code changes from 1/4 of to 3/4 of full scale. This time delay is measured from the falling edge of ACK pulse in I2C command to the beginning of VOUT. This time delay is not included in the output settling time specification. © 2009 Microchip Technology Inc. DS22187C-page 5 MCP4728 ELECTRICAL CHARACTERISTICS (CONTINUED) Electrical Specifications: Unless otherwise indicated, all parameters apply at VDD = + 2.7V to 5.5V, VSS = 0V, RL = 5 kΩ, CL = 100 pF, GX = 1, TA = -40°C to +125°C. Typical values are at +25°C, VIH = VDD, VIL = VSS. Parameter Symbol DAC-to-DAC Crosstalk Min Typical Max Units — <10 — nV-s Conditions Digital Interface Output Low Voltage VOL — — 0.4 V IOL = 3 mA SDA and RDY/BSY pins Schmitt Trigger Low Input Threshold Voltage VIL — — 0.3VDD V VDD > 2.7V. SDA, SCL, LDAC pins — — 0.2VDD V VDD ≤ 2.7V. SDA, SCL, LDAC pins Schmitt Trigger High Input Threshold Voltage VIH 0.7VDD — — V SDA, SCL, LDAC pins Input Leakage ILI — — ±1 µA SCL = SDA = LDAC = VDD, SCL = SDA = LDAC = VSS CPIN — — 3 pF (Note 4) TWRITE — 25 50 ms EEPROM write time — 200 — Years At +25°C, (Note 3) 210 — — ns Pin Capacitance EEPROM EEPROM Write Time Data Retention LDAC Input LDAC Low Time Note 1: 2: 3: 4: 5: 6: 7: 8: 9: TLDAC Updates analog outputs (Note 3) All digital input pins (SDA, SCL, LDAC) are tied to “High”, Output pins are unloaded, code = 0x000. The power-up ramp rate measures the rise of VDD over time. This parameter is ensured by design and not 100% tested. This parameter is ensured by characterization and not 100% tested. Test code range: 100 - 4000 codes, VREF = VDD, VDD = 5.5V. Time delay to settle to a new reference when switching from external to internal reference or vice versa. This parameter is indirectly tested by Offset and Gain error testing. Within 1/2 LSB of the final value when code changes from 1/4 of to 3/4 of full scale. This time delay is measured from the falling edge of ACK pulse in I2C command to the beginning of VOUT. This time delay is not included in the output settling time specification. DS22187C-page 6 © 2009 Microchip Technology Inc. MCP4728 TFSCL TRSCL THIGH TSU:STA SCL TLOW SDA TSP THD:STA THD:DAT TBUF 0.7VDD 0.3VDD TAA TFSDA FIGURE 1-1: TSU:STO TSU:DAT TRSDA I2C Bus Timing Data. LDAC TLDAC 0.7VDD 0.3VDD VOUT (UDAC = 1) No Update FIGURE 1-2: Update LDAC Pin Timing vs. VOUT Update. © 2009 Microchip Technology Inc. DS22187C-page 7 MCP4728 I2C SERIAL TIMING SPECIFICATIONS Electrical Specifications: Unless otherwise specified, all limits are specified for TA = -40 to +125°C, VSS = 0V, Standard and Fast Mode: VDD = +2.7V to +5.5V High Speed Mode: VDD = +4.5V to +5.5V. Parameters Clock Frequency Bus Capacitive Loading Start Condition Setup Time (Start, Repeated Start) Start Condition Hold Time Stop Condition Setup Time Clock High Time Clock Low Time Note 1: 2: 3: 4: 5: Sym Min Typ Max Units fSCL 0 — 100 kHz Standard Mode Cb = 400 pF, 2.7V - 5.5V 0 — 400 kHz Fast Mode Cb = 400 pF, 2.7V - 5.5V 0 — 1.7 MHz High Speed Mode 1.7 Cb = 400 pF, 4.5V - 5.5V 0 — 3.4 MHz High Speed Mode 3.4 Cb = 100 pF, 4.5V - 5.5V — — 400 pF Standard Mode 2.7V - 5.5V — — 400 pF Fast Mode 2.7V - 5.5V — — 400 pF High Speed Mode 1.7 4.5V - 5.5V — — 100 pF High Speed Mode 3.4 4.5V - 5.5V Standard Mode Cb TSU:STA THD:STA TSU:STO THIGH TLOW 4700 Conditions — ns 600 — — ns Fast Mode 160 — — ns High Speed Mode 1.7 160 — — ns High Speed Mode 3.4 Standard Mode 4000 — ns 600 — — ns Fast Mode 160 — — ns High Speed Mode 1.7 160 — — ns High Speed Mode 3.4 Standard Mode 4000 — ns 600 — — ns Fast Mode 160 — — ns High Speed Mode 1.7 160 — — ns High Speed Mode 3.4 4000 — — ns Standard Mode 600 — — ns Fast Mode 120 — — ns High Speed Mode 1.7 60 — — ns High Speed Mode 3.4 4700 — — ns Standard Mode 1300 — — ns Fast Mode 320 — — ns High Speed Mode 1.7 160 — — ns High Speed Mode 3.4 This parameter is ensured by characterization and is not 100% tested. After a Repeated Start condition or an Acknowledge bit. If this parameter is too short, it can create an unintentional Start or Stop condition to other devices on the I2C bus line. If this parameter is too long, the Data Input Setup (TSU:DAT) or Clock Low time (TLOW) can be affected. Data Input: This parameter must be longer than tSP. Data Output: This parameter is characterized, and tested indirectly by testing TAA parameter. This specification is not a part of the I2C specification. This specification is equivalent to the Data Hold Time (THD:DAT) plus SDA Fall (or rise) time: TAA = THD:DAT + TFSDA (OR TRSDA). Time between Start and Stop conditions. DS22187C-page 8 © 2009 Microchip Technology Inc. MCP4728 I2C SERIAL TIMING SPECIFICATIONS (CONTINUED) Electrical Specifications: Unless otherwise specified, all limits are specified for TA = -40 to +125°C, VSS = 0V, Standard and Fast Mode: VDD = +2.7V to +5.5V High Speed Mode: VDD = +4.5V to +5.5V. Parameters SCL Rise Time (Note 1) SDA Rise Time (Note 1) SCL Fall Time (Note 1) SDA Fall Time (Note 1) Data Input Setup Time Data Hold Time (Input, Output) (Note 3) Output Valid from Clock (Note 4) Bus Free Time (Note 5) Input Filter Spike Suppression (SDA and SCL) (Not Tested) Note 1: 2: 3: 4: 5: Sym TRSCL TRSDA TFSCL TFSDA TSU:DAT THD:DAT TAA TBUF TSP Min Typ Max Units Conditions — — 1000 ns 20 + 0.1Cb — 300 ns Standard Mode Fast Mode 20 — 80 ns High Speed Mode 1.7 20 — 160 ns High Speed Mode 1.7 (Note 2) 10 — 40 ns High Speed Mode 3.4 10 — 80 ns High Speed Mode 3.4 (Note 2) — — 1000 ns Standard Mode 20 + 0.1Cb — 300 ns Fast Mode 20 — 80 ns High Speed Mode 1.7 10 — 40 ns High Speed Mode 3.4 — — 300 ns Standard Mode 20 + 0.1Cb — 300 ns Fast Mode 20 — 160 ns High Speed Mode 1.7 10 — 80 ns High Speed Mode 3.4 — — 300 ns Standard Mode 20 + 0.1Cb — 300 ns Fast Mode 20 — 160 ns High Speed Mode 1.7 10 — 80 ns High Speed Mode 3.4 250 — — ns Standard Mode 100 — — ns Fast Mode 10 — — ns High Speed Mode 1.7 10 — — ns High Speed Mode 3.4 0 — 3450 ns Standard Mode 0 — 900 ns Fast Mode 0 — 70 ns High Speed Mode 1.7 0 — 150 ns High Speed Mode 3.4 0 — 3750 ns Standard Mode 0 — 1200 ns Fast Mode 0 — 150 ns High Speed Mode 1.7 0 — 310 ns High Speed Mode 3.4 4700 — — ns Standard Mode 1300 — — ns Fast Mode — — — ns High Speed Mode 1.7 — — — ns High Speed Mode 3.4 — — — ns Standard Mode, (Not Applicable) — 50 — ns Fast Mode — 10 — ns High Speed Mode 1.7 — 10 — ns High Speed Mode 3.4 This parameter is ensured by characterization and is not 100% tested. After a Repeated Start condition or an Acknowledge bit. If this parameter is too short, it can create an unintentional Start or Stop condition to other devices on the I2C bus line. If this parameter is too long, the Data Input Setup (TSU:DAT) or Clock Low time (TLOW) can be affected. Data Input: This parameter must be longer than tSP. Data Output: This parameter is characterized, and tested indirectly by testing TAA parameter. This specification is not a part of the I2C specification. This specification is equivalent to the Data Hold Time (THD:DAT) plus SDA Fall (or rise) time: TAA = THD:DAT + TFSDA (OR TRSDA). Time between Start and Stop conditions. © 2009 Microchip Technology Inc. DS22187C-page 9 MCP4728 TEMPERATURE CHARACTERISTICS Electrical Specifications: Unless otherwise indicated, VDD = +2.7V to +5.5V, VSS = GND. Parameters Symbol Min Typical Max Units Specified Temperature Range TA -40 — +125 °C Operating Temperature Range TA -40 — +125 °C Storage Temperature Range TA -65 — +150 °C θJA — 202 — °C/W Conditions Temperature Ranges Thermal Package Resistances Thermal Resistance, 10L-MSOP DS22187C-page 10 © 2009 Microchip Technology Inc. MCP4728 2.0 TYPICAL PERFORMANCE CURVES Note: The graphs and tables provided following this note are a statistical summary based on a limited number of samples and are provided for informational purposes only. The performance characteristics listed herein are not tested or guaranteed. In some graphs or tables, the data presented may be outside the specified operating range (e.g., outside specified power supply range) and therefore, outside the warranted range. Note: Unless otherwise indicated, TA = -40°C to +125°C, VDD = +5.0V, VSS = 0V, RL = 5 kΩ, CL = 100 pF. 6 0.3 VDD = 5.5V, VREF = Internal, Gain = x1 2 0 -2 0 -0.2 -6 0 1024 FIGURE 2-1: 2048 Code 3072 0 4096 INL vs. Code (TA = +25°C). 6 1024 FIGURE 2-4: 0.3 VDD = 5.5V, VREF = Internal, Gain = x2 4 2048 Code 3072 4096 DNL vs. Code (TA = +25°C). VDD = 5.5V, VREF = Internal, Gain = x2 0.2 2 DNL (LSB) INL (LSB) 0.1 -0.1 -4 0 -2 0.1 0 -0.1 -4 -0.2 -6 0 1024 2048 Code 3072 0 4096 INL vs. Code (TA = +25°C). FIGURE 2-2: 1024 2048 Code 2 0.1 DNL (LSB) 4 0 -2 4096 VDD = 5.5V, VREF = VDD VDD = 5.5V, VREF = VDD 0.15 3072 DNL vs. Code (TA = +25°C). FIGURE 2-5: 0.2 6 INL (LSB) VDD = 5.5V, VREF = Internal, Gain = x1 0.2 DNL(LSB) INL (LSB) 4 0.05 0 -0.05 -4 -6 -0.1 0 FIGURE 2-3: 1024 2048 Code 3072 4096 INL vs. Code (TA = +25°C). © 2009 Microchip Technology Inc. 0 FIGURE 2-6: 1024 2048 Code 3072 4096 DNL vs. Code (TA = +25°C). DS22187C-page 11 MCP4728 Note: Unless otherwise indicated, TA = -40°C to +125°C, VDD = +5.0V, VSS = 0V, RL = 5 kΩ, CL = 100 pF. 0.4 VDD = 2.7V, VREF = Internal, Gain = x1 4 0.3 2 0.2 DNL (LSB) INL (LSB) 6 0 -2 0 -0.2 -6 0 1024 2048 Code FIGURE 2-7: 3072 0 4096 INL vs. Code (TA = +25°C). 6 4 0.3 2 0.2 -2 2048 Code 3072 4096 DNL vs. Code (TA = +25°C). 0.4 VDD = 2.7V, VREF = VDD 0 1024 FIGURE 2-10: DNL (LSB) INL (LSB) 0.1 -0.1 -4 VDD = 2.7V, VREF = VDD 0.1 0 -0.1 -4 -0.2 -6 0 1024 2048 Code 3072 6 0 4096 INL vs. Code (TA = +25°C). FIGURE 2-8: o -40 C 2 0.4 DNL(LSB) 0 -2 o +25 C -4 -6 o +125 C FIGURE 2-9: Temperature. DS22187C-page 12 4096 DNL vs. Code (TA = +25°C). VDD = 5.5V, VREF = Internal, Gain = x1 0.2 0.1 0 +125oC -0.2 1024 3072 -0.1 -10 0 2048 Code 0.3 +85°C -8 1024 FIGURE 2-11: VDD = 5.5V, VREF = Internal, Gain = x1 4 INL (LSB) VDD = 2.7V, VREF = Internal, Gain = x1 2048 Code 3072 INL vs. Code and 4096 0 FIGURE 2-12: Temperature. - 40oC to +85oC 1024 2048 Code 3072 4096 DNL vs. Code and © 2009 Microchip Technology Inc. MCP4728 Note: Unless otherwise indicated, TA = -40°C to +125°C, VDD = +5.0V, VSS = 0V, RL = 5 kΩ, CL = 100 pF. 6 o o 85 C DNL (LSB) 0.2 0 -2 -4 -8 0 -0.2 125oC +125oC - 40oC to +85oC -0.3 -10 0 1024 FIGURE 2-13: Temperature. 2048 Code 3072 0 4096 INL vs. Code and 6 0.5 VDD = 2.7V, VREF = Internal, Gain = x1 4 0.4 2 0.3 0 -2 - 40oC -4 25oC -6 125 C 0 1024 FIGURE 2-14: Temperature. 4096 DNL vs. Code and 0.2 0.1 0 +125oC -0.3 2048 Code 3072 4096 INL vs. Code and 6 3072 VDD = 2.7V, VREF = Internal, Gain = 1X -0.2 o -10 2048 Code -0.1 85oC -8 1024 FIGURE 2-16: Temperature. DNL (LSB) INL (LSB) 0.1 -0.1 -6 0 - 40oC to +85oC 1024 FIGURE 2-17: Temperature. 2048 Code 3072 4096 DNL vs. Code and 0.4 VDD = 5.5V, VREF = VDD VDD = 5.5V, VREF = VDD 0.3 4 85oC 2 DNL (LSB) INL (LSB) VDD = 5.5V, VREF = Internal, Gain = x2 0.3 o - 40 C 25 C 2 INL (LSB) 0.4 VDD = 5.5V, VREF = Internal, Gain = x2 4 0 - 40oC -2 -4 125oC 0.2 0.1 0 -0.1 25oC +125oC - 40oC to +85oC -0.2 -6 0 FIGURE 2-15: Temperature. 1024 2048 Code 3072 INL vs. Code and © 2009 Microchip Technology Inc. 4096 0 FIGURE 2-18: Temperature. 1024 2048 Code 3072 4096 DNL vs. Code and DS22187C-page 13 MCP4728 Note: Unless otherwise indicated, TA = -40°C to +125°C, VDD = +5.0V, VSS = 0V, RL = 5 kΩ, CL = 100 pF. 6 0.5 VDD = 2.7V, VREF = VDD 4 o - 40 C 0.3 DNL (LSB) INL (LSB) 2 0 -2 125oC -4 0.1 0 -0.2 -8 +125oC -0.3 0 1024 FIGURE 2-19: Temperature. 2048 Code 3072 4096 INL vs. Code and 0 - 40oC to +85oC 1024 FIGURE 2-22: Temperature. 2048 Code 3072 4096 DNL vs. Code and 6 -10 VDD = 2.7V, Gain = 1 -20 VDD = 5.5V, Gain = 1 -30 -40 5 Offset Error (mV) Full Scale Error (mV) 0.2 -0.1 25oC -6 VDD = 5.5V, Gain = 2 4 3 VDD = 5.5V, Gain = 1 2 VDD = 2.7V, Gain = 1 1 VDD = 5.5V, Gain = 2 0 -50 -40 -25 -10 5 20 35 50 65 80 Temperature (oC) -40 -25 -10 95 110 125 FIGURE 2-20: Full Scale Error vs. Temperature (Code = FFFh, VREF = Internal). 5 20 35 50 65 80 Temperature (oC) 95 110 125 FIGURE 2-23: Zero Scale Error vs. Temperature (Code = 000h, VREF = Internal). 4 50 VDD = 5.5V, Gain = 1 40 Offset Error (mV) Full Scale Error (mV) VDD = 2.7V, VREF = VDD 0.4 85oC 30 VDD = 2.7V, Gain = 1 20 3 VDD = 5.5V 2 VDD = 2.7V 1 0 10 -40 -25 -10 5 20 35 50 65 80 Temperature (oC) 95 110 125 FIGURE 2-21: Full Scale Error vs. Temperature (Code = FFFh, VREF = VDD). DS22187C-page 14 -40 -25 -10 5 20 35 50 65 80 95 110 125 o Temperature ( C) FIGURE 2-24: Zero Scale Error vs. Temperature (Code = 000h, VREF = VDD). © 2009 Microchip Technology Inc. MCP4728 Note: Unless otherwise indicated, TA = -40°C to +125°C, VDD = +5.0V, VSS = 0V, RL = 5 kΩ, CL = 100 pF. VOUT (2V/Div) LDAC Time (2 µs/Div) FIGURE 2-25: Full Scale Settling Time (VREF = VDD, VDD = 5V, UDAC = 1, Code Change: 000h to FFFh). VOUT (2V/Div) LDAC Time (2 µs/Div) FIGURE 2-26: Half Scale Settling Time (VREF = VDD, VDD = 5V, UDAC = 1, Code Change: 000h to 7FFh). VOUT (2V/Div) LDAC Time (2 µs/Div) FIGURE 2-27: Full Scale Settling Time (VREF = Internal, VDD = 5V, UDAC = 1, Gain = x1, Code Change: 000h to FFFh). © 2009 Microchip Technology Inc. VOUT (2V/Div) LDAC Time (2 µs/Div) FIGURE 2-28: Full Scale Settling Time (VREF = VDD, VDD = 5V, UDAC = 1, Code Change: FFFh to 000h ). VOUT (2V/Div) LDAC Time (2 µs/Div) FIGURE 2-29: Half Scale Settling Time (VREF = VDD, VDD = 5V, UDAC = 1, Code Change: 7FFh to 000h). VOUT (2V/Div) LDAC Time (2 µs/Div) FIGURE 2-30: Full Scale Settling Time (VREF = Internal, VDD = 5V, UDAC = 1, Gain = x1, Code Change: FFFh to 000h). DS22187C-page 15 MCP4728 Note: Unless otherwise indicated, TA = -40°C to +125°C, VDD = +5.0V, VSS = 0V, RL = 5 kΩ, CL = 100 pF. VOUT (1V/Div) Time (2 µs/Div) LDAC FIGURE 2-31: Half Scale Settling Time (VREF = Internal, VDD = 5V, UDAC = 1, Gain = x1, Code Change: 000h to 7FFh). VOUT (1V/Div) Time (2 µs/Div) LDAC FIGURE 2-34: Half Scale Settling Time (VREF = Internal, VDD = 5V, UDAC = 1, Gain = x1, Code Change: 7FFh to 000h). VOUT (2V/Div) VOUT (1V/Div) TdExPD TdExPD Time (5 µs/Div) Time (5 µs/Div) CLK CLK Last ACK CLK pulse FIGURE 2-32: Exiting Power Down Mode (Code : FFFh, VREF = Internal, VDD = 5V, Gain = x1, for all Channels.). Last ACK CLK pulse FIGURE 2-35: Exiting Power Down Mode (Code : FFFh, VREF = VDD, VDD = 5V, for all Channels). Discharging Time due to VOUT (1V/Div) internal pull-down resistor (500 kΩ) Discharging Time due to internal pull-down resistor (500 kΩ) VOUT (2V/Div) Time (10 µs/Div) CLK Last ACK CLK pulse FIGURE 2-33: Entering Power Down Mode (Code : FFFh, VREF = Internal, VDD = 5V, Gain = x1, PD1= PD0 = 1, No External Load). DS22187C-page 16 Time (20 µs/Div) CLK Last ACK CLK pulse FIGURE 2-36: Entering Power Down Mode (Code : FFFh, VREF = VDD, VDD = 5V, PD1= PD0 = 1, No External Load). © 2009 Microchip Technology Inc. MCP4728 Note: Unless otherwise indicated, TA = -40°C to +125°C, VDD = +5.0V, VSS = 0V, RL = 5 kΩ, CL = 100 pF. VOUT (2V/Div) VOUT (50 mV/Div) Time (10 µs/Div) Time (2 µs/Div) CLK Last ACK CLK pulse FIGURE 2-37: VOUT Time Delay when VREF changes from Internal Reference to VDD. FIGURE 2-40: Code Change Glitch (VREF = External, VDD = 5V, No External Load), Code Change: 800h to 7FFh. VOUT (2V/Div) VOUT (50 mV/Div) Time (2 µs/Div) Time (10 µs/Div) CLK Last ACK CLK pulse FIGURE 2-38: VOUT Time Delay when VREF changes from VDD to Internal Reference. FIGURE 2-41: Code Change Glitch (VREF = Internal, VDD = 5V, Gain = 1, No External Load), Code Change: 800h to 7FFh. 6 VOUT at Channel D (5V/Div) 5 VDD = 5V VREF = VDD Code = FFFh VOUT (V) 4 LDAC VOUT at Channel A (100 mV/Div) Time (5 µs/Div) 3 2 1 0 0 FIGURE 2-39: Channel Cross Talk (VREF = VDD, VDD = 5V). © 2009 Microchip Technology Inc. FIGURE 2-42: 1 2 3 Load Resistance (kΩ) 4 5 VOUT vs. Resistive Load. DS22187C-page 17 MCP4728 Note: Unless otherwise indicated, TA = -40°C to +125°C, VDD = +5.0V, VSS = 0V, RL = 5 kΩ, CL = 100 pF. 1000 1000 VDD = 5.0V 800 3 Channels On 600 2 Channels On 400 200 3 Channels On 2 Channels On 400 1 Channel On 200 1 Channel On 5 All Channels On 600 0 -40 -25 -10 VDD = 5.0V 800 IDD_INT (µA) IDD_EXT (µA) All Channels On 0 20 35 50 65 80 95 110 125 -40 -25 -10 5 20 35 50 65 80 95 110 125 Temperature (oC) Temperature (oC) FIGURE 2-43: IDD vs. Temperature (VREF = VDD, VDD = 5V, Code = FFFh). 800 FIGURE 2-46: IDD vs. Temperature (VREF = Internal, VREF = 5V, Code = FFFh). 1000 VDD = 2.7V V DD = 2.7V All Channels On 400 2 Channels On IDD_INT (µA) IDD_EXT (µA) 600 3 Channels On All Channels On 800 200 3 Channels On 600 2 Channels On 400 1 Channel On 200 1 Channel On 0 0 -40 -25 -10 5 20 35 50 65 80 -40 -25 -10 95 110 125 5 20 35 50 65 80 95 110 125 Temperature (oC) Temperature (oC) FIGURE 2-44: IDD vs. Temperature (VREF = VDD, VDD = 2.7V, Code = FFFh). IDD_EXT (µA) 800 All Channels On 900 VDD = 5.5V V DD = 5V 800 700 VDD = 4.5V VDD = 3.3V IDD_INT (µA) 900 FIGURE 2-47: IDD vs. Temperature (VREF = Internal, VDD = 2.7V, Code = FFFh). VDD = 5.5V All Channels On VDD = 5V VDD = 4.5V 700 VDD = 3.3V 600 600 VDD = 2.7V VDD = 2.7V 500 500 -40 -25 -10 5 20 35 50 65 80 95 110 125 Temperature (oC) FIGURE 2-45: IDD vs. Temperature (VREF = VDD, All channels are in Normal Mode, Code = FFFh). DS22187C-page 18 -40 -25 -10 5 20 35 50 65 80 95 110 125 o Temperature ( C) FIGURE 2-48: IDD vs. Temperature (VREF = Internal , All Channels are in Normal Mode, Code = FFFh). © 2009 Microchip Technology Inc. MCP4728 Note: Unless otherwise indicated, TA = -40°C to +125°C, VDD = +5.0V, VSS = 0V, RL = 5 kΩ, CL = 100 pF. 6 Code = 000h All Channels Off 50 5 VDD = 5.5V VDD = 5V V DD = 4.5V VOUT (V) IDDP_INT (µA) 60 40 30 5 2 0 20 -40 -25 -10 3 1 VDD = 2.7V VDD = 3.3V 4 20 35 50 65 o Temperature ( C) 80 95 110 125 2 4 6 8 10 12 14 Sink Current (mA) FIGURE 2-49: IDD vs. Temperature (VREF = Internal , All Channels are in Powered Down). 6 0 FIGURE 2-51: Sink Current Capability (VREF = VDD, Code = 000h). Code = FFFh VOUT (V) 5 4 3 2 1 0 0 2 4 6 8 10 12 14 16 Current (mA) FIGURE 2-50: Source Current Capability (VREF = VDD, Code = FFFh). © 2009 Microchip Technology Inc. DS22187C-page 19 MCP4728 NOTES: DS22187C-page 20 © 2009 Microchip Technology Inc. MCP4728 3.0 PIN DESCRIPTIONS The descriptions of the pins are listed in Table 3-1. TABLE 3-1: PIN FUNCTION TABLE Pin No. Name Pin Type Function 1 VDD P Supply Voltage 2 SCL OI I2C Serial Clock Input. (Note 1) 3 SDA OI/OO 4 LDAC ST This pin is used for two purposes: (a) Synchronization Input. It is used to transfer the contents of the DAC input registers to the output registers (VOUT). (b) Select the device for reading and writing I2C address bits. (Note 2) 5 RDY/BSY OO This pin is a status indicator of EEPROM programming activity. An external pull-up resistor (about 100 kΩ) is needed from RDY/BSY pin to VDD line. (Note 1) 6 VOUT A AO Buffered analog voltage output of channel A. The output amplifier has rail-to-rail operation. 7 VOUT B AO Buffered analog voltage output of channel B. The output amplifier has rail-to-rail operation. 8 VOUT C AO Buffered analog voltage output of channel C. The output amplifier has rail-to-rail operation. 9 VOUT D AO Buffered analog voltage output of channel D. The output amplifier has rail-to-rail operation. 10 VSS P I2C Serial Data Input and Output. (Note 1) Ground reference. Legend: P = Power, OI = Open-Drain Input, OO = Open-Drain Output, ST = Schmitt Trigger Input Buffer, AO = Analog Output Note 1: This pin needs an external pull-up resistor from VDD line. Leave this pin float if it is not used. 2: This pin can be driven by MCU. 3.1 Analog Output Voltage Pins (VOUTA, VOUTB, VOUTC, VOUTD) The device has four analog voltage output (VOUT) pins. Each output is driven by its own output buffer with a gain of 1 or 2 depending on the gain and VREF selection bit settings. In normal mode, the DC impedance of the output pin is about 1Ω. In Power-Down mode, the output pin is internally connected to 1 kΩ, 100 kΩ, or 500 kΩ, depending on the Power-Down selection bit settings. The VOUT pin can drive up to 1000 pF of capacitive load. It is recommended to use a load with RL greater than 5 kΩ. 3.2 Supply Voltage Pins (VDD, VSS) VDD is the power supply pin for the device. The voltage at the VDD pin is used as the power supply input as well as the DAC external reference. The power supply at the VDD pin should be as clean as possible for a good DAC performance. It is recommended to use an appropriate bypass capacitor of about 0.1 µF (ceramic) to ground. An additional 10 µF capacitor (tantalum) in parallel is also recommended to further attenuate high frequency noise present in application boards. The supply voltage (VDD) must be maintained in the 2.7V to 5.5V range for specified operation. VSS is the ground pin and the current return path of the device. The user must connect the VSS pin to a ground plane through a low impedance connection. If an analog ground path is available in the application PCB (printed circuit board), it is highly recommended that the VSS pin be tied to the analog ground path or isolated within an analog ground plane of the circuit board. © 2009 Microchip Technology Inc. DS22187C-page 21 MCP4728 3.3 Serial Data Pin (SDA) 2 SDA is the serial data pin of the I C interface. The SDA pin is used to write or read the DAC register and EEPROM data. Except for start and stop conditions, the data on the SDA pin must be stable during the high duration of the clock pulse. The High or Low state of the SDA pin can only change when the clock signal on the SCL pin is Low. The SDA pin is an open-drain N-channel driver. Therefore, it needs a pull-up resistor from the VDD line to the SDA pin. Refer to Section 5.0 “I2C Serial Interface Communications” for more details on the I2C Serial Interface communication. 3.4 Serial Clock Pin (SCL) SCL is the serial clock pin of the I2C interface. The MCP4728 device acts only as a slave and the SCL pin accepts only external input serial clocks. The input data from the Master device is shifted into the SDA pin on the rising edges of the SCL clock and output from the MCP4728 occurs at the falling edges of the SCL clock. The SCL pin is an open-drain N-channel driver. Therefore, it needs a pull-up resistor from the VDD line to the SCL pin. Refer to Section 5.0 “I2C Serial Interface Communications” for more details on I2C Serial Interface communication. Typical range of the pull-up resistor value for SCL and SDA is from 5 kΩ to 10 kΩ for standard (100 kHz) and fast (400 kHz) modes, and less than 1 kΩ for high speed mode (3.4 MHz). DS22187C-page 22 3.5 LDAC Pin This pin can be driven by an external control device such as an MCU I/O pin. This pin is used (a) to transfer the contents of the input registers to their corresponding DAC output registers and (b) to select a device of interest when reading or writing I2C address bits. See Section 5.4.4 “General call Read Address Bits” and Section 5.6.8 “Write Command: Write I2C Address bits (C2=0, C1=1, C0=1)” for more details on the reading and writing the device I2C address bits, respectively. When the logic status of the LDAC pin changes from “High” to “Low”, the contents of all input registers (Channels A - D) are transferred to their corresponding output registers and all analog voltage outputs are updated simultaneously. If this pin is permanently tied to “Low”, the content of the input register is transferred to its output register (VOUT) immediately at the last input data byte’s acknowledge pulse. The user can also use the UDAC bit instead. However, the UDAC bit updates a selected channel only. See Section 4.8 “Output Voltage Update” for more information on the LDAC pin and UDAC bit functions. 3.6 RDY/BSY Status Indicator Pin This pin is a status indicator of EEPROM programming activity. This pin is “High” when the EEPROM has no programming activity and “Low” when the EEPROM is in programming mode. It goes “High” when the EEPROM program is completed. The RDY/BSY pin is an open-drain N-channel driver. Therefore, it needs a pull-up resistor (about 100 kΩ) from the VDD line to the RDY/BSY pin. Leave this pin float if it is not used. © 2009 Microchip Technology Inc. MCP4728 4.0 THEORY OF DEVICE OPERATION The MCP4728 device is a 12-bit 4-channel buffered voltage output DAC with non-volatile memory (EEPROM). The user can program the EEPROM with I2C address bits, configuration and DAC input data of each channel. The device has an internal charge pump circuit to provide the programming voltage of the EEPROM. When the device is first powered-up, it automatically loads the stored data in its EEPROM to the DAC input and output registers, and provides analog outputs with the saved settings immediately. This event does not require an LDAC or UDAC bit condition. After the device is powered-up, the user can update the input registers using I2C write commands. The analog outputs can be updated with new register values if the LDAC pin or UDAC bit is low. The DAC output of each channel is buffered with a low power and precision output amplifier. This amplifier provides a rail-to-rail output with low offset voltage and low noise. The device uses a resistor string architecture. The resistor ladder DAC can be driven from VDD or internal VREF depending on the reference selection. The user can select internal (2.048V) or external reference (VDD) for each DAC channel individually by software control. The VDD is used as the external reference. Each channel is controlled and operated independently. The device has a Power-Down mode feature. Most of the circuit in each powered down channel are turned off. Therefore, operating power can be saved significantly by putting any unused channel to the Power-Down mode. 4.1 Power-On-Reset (POR) The device contains an internal Power-On-Reset (POR) circuit that monitors power supply voltage (VDD) during operation. This circuit ensures correct device start-up at system power-up and power-down events. 4.2 Reset Conditions The device can be reset by two independent events: (a) by Power-On-Reset or (b) by I2C General Call Reset Command. Under the reset conditions, the device uploads the EEPROM data into both of the DAC input and output registers simultaneously. The analog output voltage of each channel is available immediately regardless of the LDAC and UDAC bit conditions. The factory default settings for the EEPROM prior to the device shipment are shown in Table 4-2. 4.3 Output Amplifier The DAC output is buffered with a low power precision amplifier. This amplifier provides low offset voltage and low noise, as well as rail-to-rail output. The output amplifier can drive the resistive and high capacitive loads without oscillation. The amplifier can provide a maximum load current of 24 mA which is enough for most of programmable voltage reference applications. Refer to Section 1.0 “Electrical Characteristics” for the specifications of the output amplifier. 4.3.1 PROGRAMMABLE GAIN BLOCK The rail-to-rail output amplifier of each channel has configurable gain option. When the internal voltage reference is selected, the output amplifier gain has two selection options: gain of 1 or gain of 2. When the external reference is selected (VREF = VDD), the gain of 2 option is disabled, and only the gain of 1 is used by default. 4.3.1.1 Resistive and Capacitive Loads The analog output (VOUT) pin is capable of driving capacitive loads up to 1000 pF in parallel with 5 kΩ load resistance. Figure 2-42 shows the VOUT vs. Resistive Load. If the power supply voltage is less than the POR threshold (VPOR = 2V, typical), all circuits are disabled and there will be no analog output. When the VDD increases above the VPOR, the device takes a reset state. During the reset period, each channel uploads all configuration and DAC input codes from EEPROM, and analog output (VOUT) will be available accordingly. This enables the device to return to the same state that it was at the last write to the EEPROM before it was powered off. The POR status is monitored by the POR status bit by using the I2C read command. See Figure 5-15 for the details of the POR status bit. © 2009 Microchip Technology Inc. DS22187C-page 23 MCP4728 4.4 DAC Input Registers and Non-Volatile EEPROM Memory Each channel has its own volatile DAC input register and EEPROM. The details of the input registers and EEPROM are shown in Table 4-1 and Table 4-2, respectively. TABLE 4-1: INPUT REGISTER MAP (VOLATILE) Configuration Bits Bit Name RDY /BSY A2 A1 A0 VREF DAC Input Data (12 bits) DAC1 DAC0 PD1 PD0 GX D11 D10 D9 D8 D7 D6 D5 Ref. DAC Channel Power-Down Gain I2C Address Bits Select Select Select (Note 2) (Note 2) (Note 1) (Note 2) (Note 2) (Note 2) Bit Function D4 D3 D2 D1 D0 (Note 2) CH. A CH. B CH. C CH. D Note 1: 2: EEPROM write status indication bit (flag). Loaded from EEPROM during power-up, or can be updated by the user. TABLE 4-2: EEPROM MEMORY MAP AND FACTORY DEFAULT SETTINGS Configuration Bits Bit Name Bit Function CH. A A2 A1 A0 I2C Address Bits (Note 1) 0 PD1 PD0 Power-Down Select GX D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Gain Select (Note 3) 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CH. C 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CH. D 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2: 3: 0 Ref. Select (Note 2) CH. B Note 1: 0 VREF DAC Input Data (12 bits) Device I2C address bits. The user can also specify these bits during the device ordering process. The factory default setting is “000”. These bits can be reprogrammed by the user using the I2C Address Write command. Voltage Reference Select: 0 = External VREF (VDD), 1 = Internal VREF (2.048V). Gain Select: 0 = Gain of 1, 1 = Gain of 2. DS22187C-page 24 © 2009 Microchip Technology Inc. MCP4728 TABLE 4-3: CONFIGURATION BITS Bit Name RDY/BSY (A2, A1, A0) VREF DAC1, DAC0 Functions This is a status indicator (flag) of EEPROM programming activity: 1 = EEPROM is not in programming mode 0 = EEPROM is in programming mode Note: RDY/BSY status can also be monitored at the RDY/BSY pin. Device I2C address bits. See Section 5.3 “MCP4728 Device Addressing” for more details. Voltage Reference Selection bit: 0 = VDD 1 = Internal voltage reference (2.048V) Note: Internal voltage reference circuit is turned off if all channels select external reference (VREF = VDD). DAC Channel Selection bits: 00 = Channel A 01 = Channel B 10 = Channel C 11 = Channel D PD1, PD0 Power-Down selection bits: 00 = Normal Mode 01 = VOUT is loaded with 1 kΩ resistor to ground. Most of the channel circuits are powered off. 10 = VOUT is loaded with 100 kΩ resistor to ground. Most of the channel circuits are powered off. 11 = VOUT is loaded with 500 kΩ resistor to ground. Most of the channel circuits are powered off. Note: See Table 4-7 and Figure 4-1 for more details. GX Gain selection bit: 0 = x1 (gain of 1) 1 = x2 (gain of 2) Note: Applicable only when internal VREF is selected. If VREF = VDD, the device uses a gain of 1 regardless of the gain selection bit setting. UDAC DAC latch bit. Upload the selected DAC input register to its output register (VOUT): 0 = Upload. Output (VOUT) is updated. 1 = Do not upload. Note: UDAC bit affects the selected channel only. © 2009 Microchip Technology Inc. DS22187C-page 25 MCP4728 4.5 Voltage Reference 4.7.1 The device has a precision internal voltage reference which provides a nominal voltage of 2.048V. The user can select the internal voltage reference or VDD as the voltage reference source of each channel using the VREF configuration bit. The internal voltage reference circuit is turned off when all channels select VDD as their references. However, it stays turned on if any one of the channels selects the internal reference. 4.6 LSB Size The LSB is defined as the ideal voltage difference between two successive codes. LSB sizes of the MCP4728 device are shown in Table 4-4. TABLE 4-4: LSB SIZES (EXAMPLE) VREF Gain (GX) Selection LSB Size Condition Internal VREF (2.048V) x1 x2 0.5 mV 1 mV 2.048V/4096 4.096V/4096 VDD Note 1: 4.7 x1 VDD/4096 (Note 1) LSB size varies with the VDD range. When VREF = VDD, the device uses GX = 1 by default. GX = 2 option is ignored. DAC Output Voltage Each channel has an independent output associated with its own configuration bit settings and DAC input code. When the internal voltage reference is selected (VREF = internal), it supplies the internal VREF voltage to the resistor string DAC of the channel. When the external reference (VREF=VDD) is selected, VDD is used for the channel’s resistor string DAC. The VDD needs to be as clean as possible for accurate DAC performance. When the VDD is selected as the voltage reference, any variation or noises on the VDD line can directly affect on the DAC output. The analog output of each channel has a programmable gain block. The rail-to-rail output amplifier has a configurable gain of 1 or 2. But the gain of 2 is not applicable if VDD is selected for the voltage reference. The formula for the analog output voltage is given in Equation 4-1 and Equation 4-2. OUTPUT VOLTAGE RANGE The DAC output voltage range varies depending on the voltage reference selection. • When the internal reference (VREF=2.048V) is selected: - VOUT = 0.000V to 2.048V * 4095/4096 for Gain of 1 - VOUT = 0.000V to 4.096V * 4095/4096 for Gain of 2 • When the external reference (VREF=VDD) is selected: - VOUT = 0.000V to VDD Note that the gain selection bit is not applicable for VREF = VDD. In this case, Gain of 1 is used regardless of the gain selection bit setting. EQUATION 4-1: V OUT VOUT FOR VREF = INTERNAL REFERENCE ( V REF × D n ) = ------------------------------- G x ≤ V DD 4096 Where: VREF Dn Gx = = = 2.048V for internal reference selection DAC input code Gain Setting EQUATION 4-2: VOUT FOR VREF = VDD ( V DD × D n ) V OUT = ----------------------------4096 Where: Dn 4.8 = DAC input code Output Voltage Update The following events update the output registers (VOUT): a. b. c. d. LDAC pin to “Low”: Updates all DAC channels. UDAC bit to “Low”: Updates a selected channel only. General Call Software Update Command: Updates all DAC channels. Power-On-Reset or General Call Reset command: Both input and output registers are updated with EEPROM data. All channels are affected. 4.8.1 LDAC PIN AND UDAC BIT The user can use the LDAC pin or UDAC bit to upload the input DAC register to output DAC register (VOUT). However, the UDAC affects only the selected channel while the LDAC affects all channels. The UDAC bit is not used in the Fast Mode Writing. Table 4-5 shows the output update vs. LDAC pin and UDAC bit conditions. DS22187C-page 26 © 2009 Microchip Technology Inc. MCP4728 TABLE 4-5: LDAC AND UDAC CONDITIONS VS. OUTPUT UPDATE LDAC Pin UDAC Bit 4.9 DAC Output (VOUT) 0 0 Update all DAC channel outputs. 0 1 Update all DAC channel outputs. 1 0 Update a selected DAC channel output. 1 1 No update Analog Output Vs. DAC Input Code Table 4-6 shows an example of the DAC input data code vs. analog output. The MSB of the input data is always transmitted first and the format is unipolar binary. TABLE 4-6: DAC INPUT CODE VS. ANALOG OUTPUT (VOUT) VREF = Internal (2.048 V) DAC Input Code Gain Selection Nominal Output Voltage (V) (See Note 1) 111111111111 x1 VREF - 1 LSB x2 2*VREF - 1 LSB 111111111110 x1 VREF - 2 LSB x2 2*VREF - 2 LSB x1 2 LSB x2 2 LSB x1 1 LSB x2 1 LSB x1 0 x2 0 000000000010 000000000001 000000000000 Note 1: VREF = VDD Gain Selection Ignored Nominal Output Voltage (V) VDD - 1 LSB VDD - 2 LSB 2 LSB 1 LSB 0 (a) LSB with gain of 1 = 0.5 mV, and (b) LSB with gain of 2 = 1 mV. © 2009 Microchip Technology Inc. DS22187C-page 27 MCP4728 4.10 Normal and Power-Down Modes Each channel has two modes of operation: (a) Normal mode where analog voltage is available and (b) Power-Down mode which turns off most of the internal circuits for power savings. The user can select the operating mode of each channel individually by setting the Power-Down selection bits (PD1 and PD0). For example, the user can select normal mode for channel A while selecting power-down mode for all other channels. See Section 5.6 “Write Commands for DAC Registers and EEPROM” for more details on the writing the power-down bits. Most of the internal circuit in the powered down channel are turned off. However, the internal voltage reference circuit is not affected by the Power-Down mode. The internal voltage reference circuit is turned off only if all channels select external reference (VREF = VDD). Device actions during Power-Down mode: • The powered down channel stays in a power saving condition by turning off most of its circuits. • No analog voltage output at the powered down channel. • The output (VOUT) pin of the powered down channel is switched to a known resistive load. The value of the resistive load is determined by the state of the Power-Down bits (PD1 and PD0). Table 4-7 shows the outcome of the Power-Down bit settings. • The contents of both the DAC registers and EEPROM are not changed. • Draws less than 40 nA (typical) when all four channels are powered down and VDD is selected as the voltage reference. Circuits that are not affected during Power-Down Mode: When the DAC operation mode is changed from the Power-Down to normal mode, there will be a time delay until the analog output is available. Typical time delay for the output voltage is approximately 4.5 µs. This time delay is measured from the acknowledge pulse of the I2C serial communication command to the beginning of the analog output (VOUT). This time delay is not included in the output settling time specification. See Section 2.0 “Typical Performance Curves” for more details. TABLE 4-7: PD1 POWER-DOWN BITS PD0 0 0 1 Function Normal Mode 1 kΩ resistor to ground (Note 1) 100 kΩ resistor to ground (Note 1) 1 500 kΩ resistor to ground (Note 1) In Power-Down mode: VOUT is off and most of internal circuits in the selected channel are disabled. 0 1 0 1 Note 1: VOUT OP Amp Power-Down Control Circuit 1 kΩ 100 kΩ 500 kΩ Resistor String DAC Resistive Load FIGURE 4-1: Output Stage for Power-Down Mode. • The I2C serial interface circuits remain active in order to receive any command from the Master. • The internal voltage reference circuit stays turned-on if it is selected as reference by at least one channel. Exiting Power-Down Mode: The device exits Power-Down mode immediately by the following commands: • Any write command for normal mode. Only selected channel is affected. • I2C General Call Wake-Up Command. All channels are affected. • I2C General Call Reset Command. This is a conditional case. The device exits Power-Down mode depending on the Power-Down bit settings in EEPROM as the configuration bits and DAC input codes are uploaded from EEPROM. All channels are affected. DS22187C-page 28 © 2009 Microchip Technology Inc. MCP4728 5.0 I2C SERIAL INTERFACE COMMUNICATIONS The MCP4728 device uses a two-wire I2C serial interface. When the device is connected to the I2C bus line, the device works as a slave device. The device supports standard, fast and high speed modes. The following sections describes how to communicate the MCP4728 device using the I2C serial interface commands. 5.1 Overview of I2C Serial Interface Communications An example of hardware connection diagram is shown in Figure 7-1. A device that sends data onto the bus is defined as transmitter, and a device receiving data as receiver. The bus has to be controlled by a master (MCU) device which generates the serial clock (SCL), controls the bus access and generates the START and STOP conditions. Both master (MCU) and slave (MCP4728) can operate as transmitter or receiver, but the master device determines which mode is activated. Communication is initiated by the master (MCU) which sends the START bit, followed by the slave (MCP4728) address byte. The first byte transmitted is always the slave (MCP4728) address byte, which contains the device code (1100), the address bits (A2, A1, A0), and the R/W bit. The device code for the MCP4728 device is 1100, and the address bits are user-writable. When the MCP4728 device receives a read command (R/W = 1), it transmits the contents of the DAC input registers and EEPROM sequentially. When writing to the device (R/W = 0), the device will expect write command type bits in the following byte. The reading and various writing commands are explained in the following sections. The MCP4728 device supports all three I2C serial communication operating modes: • Standard Mode: bit rates up to 100 kbit/s • Fast Mode: bit rates up to 400 kbit/s • High Speed Mode (HS mode): bit rates up to 3.4 Mbit/s Refer to the Philips I2C document for more details of the I2C specifications. 5.1.1 HIGH-SPEED (HS) MODE The I2C specification requires that a high-speed mode device must be ‘activated’ to operate in high-speed (3.4 Mbit/s) mode. This is done by sending a special address byte of 00001XXX following the START bit. The XXX bits are unique to the high-speed (HS) mode Master. This byte is referred to as the high-speed (HS) Master Mode Code (HSMMC). The MCP4728 device does not acknowledge this byte. However, upon receiving this command, the device switches to HS © 2009 Microchip Technology Inc. mode and can communicate at up to 3.4 Mbit/s on SDA and SCL lines. The device will switch out of the HS mode on the next STOP condition. For more information on the HS mode, or other I2C modes, please refer to the Philips I2C specification. 5.2 I2C BUS CHARACTERISTICS The specification of the I2C serial communication defines the following bus protocol: • Data transfer may be initiated only when the bus is not busy. • During data transfer, the data line must remain stable whenever the clock line is HIGH. Changes in the data line while the clock line is HIGH will be interpreted as a START or STOP condition. Accordingly, the following bus conditions have been defined using Figure 5-1. 5.2.1 BUS NOT BUSY (A) Both data and clock lines remain HIGH. 5.2.2 START DATA TRANSFER (B) A HIGH to LOW transition of the SDA line while the clock (SCL) is HIGH determines a START condition. All commands must be preceded by a START condition. 5.2.3 STOP DATA TRANSFER (C) A LOW to HIGH transition of the SDA line while the clock (SCL) is HIGH determines a STOP condition. All operations must be ended with a STOP condition. 5.2.4 DATA VALID (D) The state of the data line represents valid data when, after a START condition, the data line is stable for the duration of the HIGH period of the clock signal. The data on the line must be changed during the LOW period of the clock signal. There is one clock pulse per bit of data. Each data transfer is initiated with a START condition and terminated with a STOP condition. 5.2.5 ACKNOWLEDGE Each receiving device, when addressed, is obliged to generate an acknowledge after the reception of each byte. The master device must generate an extra clock pulse which is associated with this acknowledge bit. The device that acknowledges, has to pull down the SDA line during the acknowledge clock pulse in such a way that the SDA line is stable LOW during the HIGH period of the acknowledge related clock pulse. Of course, setup and hold times must be taken into account. During reads, a master must send an end of data to the slave by not generating an acknowledge bit on the last byte that has been clocked out of the slave. DS22187C-page 29 MCP4728 In this case, the slave (MCP4728) will leave the data line HIGH to enable the master to generate the STOP condition. (A) (B) (D) (D) (C) (A) SCL SDA START CONDITION FIGURE 5-1: 5.3 DATA ADDRESS OR ACKNOWLEDGE ALLOWED TO CHANGE VALID Data Transfer Sequence On The Serial Bus. MCP4728 Device Addressing 5.3.1 The address byte is the first byte received following the START condition from the master device. The first part of the address byte consists of a 4-bit device code which is set to 1100 for the MCP4728 device. The device code is followed by three I2C address bits (A2, A1, A0) which are programmable by the users. Although the three address bits are programmable at the user’s application PCB, the user can also specify the address bits during the product ordering process. If there is no user’s request, the factory default setting of the three address bits is “000” which is programmed into the EEPROM. The three address bits allows eight unique addresses. Start bit Read/Write bit R/W Slave Address ACK Slave Address for MCP4728 1 0 Address Bits 0 A2 When the customer first receives any new MCP4728 device, its default address bit setting is “000” if the address bit programming was not requested. The customer can reprogram the I2C address bits into the EEPROM by using “Write Address Bit” command. This write command needs current address bits. If the address bits are unknown, the user can find them by sending “General Call Read Address” Command. The LDAC pin is also used to select the device of interest to be programmed or to read the current address. The following steps are needed for the I2C address programming. (b) Write I2C address bits using “Write I2C Address Bits” Command. The write address command will replace the current address with a new address in both input registers and EEPROM. Address Byte Device Code PROGRAMMING OF I2C ADDRESS BITS (a) Read the address bits using “General Call Read Address” Command. (This is the case when the address is unknown.) Acknowledge bit 1 STOP CONDITION A1 See Section 5.4.4 “General call Read Address Bits” for the details of reading the address bits, and Section 5.6.8 “Write Command: Write I2C Address bits (C2=0, C1=1, C0=1)” for writing the address bits. A0 Note: Device Code: Programmed (hard-wired) at the factory. Address Bits: Reprogrammable into EEPROM by the user. FIGURE 5-2: DS22187C-page 30 Device Addressing. © 2009 Microchip Technology Inc. MCP4728 5.4 I2C General Call Commands 5.4.1 The General Call Reset occurs if the second byte is “00000110” (06h). At the acknowledgement of this byte, the device will abort the current conversion and perform the following tasks: The device acknowledges the general call address command (0x00 in the first byte). The meaning of the general call address is always specified in the second byte. The I2C specification does not allow to use “00000000” (00h) in the second byte. Please refer to the Philips I2C document for more details of the General Call specifications. • Internal reset similar to a Power-On-Reset (POR). The contents of the EEPROM are loaded into each DAC input and output registers immediately. • VOUT will be available immediately regardless of the LDAC pin condition. The MCP4728 device supports the following I2C General Calls: • • • • GENERAL CALL RESET General Call Reset General Call Wake-Up General Call Software Update General Call Read Address Bits ACK (MCP4728) Clock Pulse (CLK Line) Start 1 2 3 4 5 Stop 6 7 8 9 1 2 3 4 5 6 7 8 2nd Byte (Command Type = General Call Reset) 1st Byte (General Call Command) 9 Note 1 Data (SDA Line) Note 1: FIGURE 5-3: 5.4.2 At this falling edge of the last ACK clock bit: a. Startup Timer starts a reset sequence and b. EEPROM data is loaded into the DAC Input and Output Registers immediately. General Call Reset. GENERAL CALL WAKE-UP If the second byte is “00001001” (09h), the device will reset the Power-Down bits (PD1,PD0 = 0,0). ACK (MCP4728) Clock Pulse (CLK Line) Stop Start 1 2 3 4 5 6 7 1st Byte (General Call Command) 8 9 1 2 3 4 5 6 7 2nd Byte (Command Type = General Call Wake-Up) 8 9 Note 1 Data (SDA Line) Note 1: FIGURE 5-4: Resets Power-Down bits at this falling edge of the last ACK clock bit. General Call Wake-Up. © 2009 Microchip Technology Inc. DS22187C-page 31 MCP4728 5.4.3 GENERAL CALL SOFTWARE UPDATE If the second byte is “00001000” (08h), the device updates all DAC analog outputs (VOUT) at the same time. ACK (MCP4728) Clock Pulse (CLK Line) Start 1 2 3 4 5 Stop 6 7 8 9 1st Byte (General Call Command) 1 2 3 4 5 6 7 8 2nd Byte (Command Type = General Call Software Update) 9 Note 1 Data (SDA Line) Note 1: FIGURE 5-5: DS22187C-page 32 At this falling edge of the last ACK clock bit, VOUT A, VOUT B, VOUT C, VOUT D are updated. General Call Software Update. © 2009 Microchip Technology Inc. MCP4728 5.4.4 select the device of interest to read on the I2C bus. The LDAC pin needs a logic transition from “High” to “Low” during the negative pulse of the 8th clock of the second byte, and stays “Low” until the end of the 3rd byte. The maximum clock rate for this command is 400 kHz. GENERAL CALL READ ADDRESS BITS This command is used to read the I2C address bits of the device. If the second byte is “00001100” (0Ch), the device will output its address bits stored in EEPROM and register. This command uses the LDAC pin to ACK (MCP4728) ACK (Master) Restart Start Stop 4th Byte S 0 0 0 0 0 0 0 0 A 0 0 0 0 1 1 0 0 A Sr 1 1 0 0 X X X 1 A A2 A1 A0 1 A2 A1 A0 0 A P 1st Byte (General Call Address) 2nd Byte 3rd Byte Restart Byte Address Bits Address Bits in in Input EEPROM Register Reading Address Bits LDAC Pin (Notes 1, 2, 3) Note 3 Clock and LDAC Transition Details: ACK Clock Clock Pulse (CLK Line) 6 7 8 9 Restart Clock Sr 1 2 ACK Clock 3 2nd Byte 4 5 6 7 3rd Byte 8 9 1 2 3 4th Byte Reading Address Bits Note 2(b, c) LDAC Pin Note 2(b) Note 2 (a) Note 3 Stay “Low” until the end of the 3rd Byte Note 1: Clock Pulse and LDAC Transition Details. 2: LDAC pin events at the 2nd and 3rd bytes. a. Keep LDAC pin “High” until the end of the positive pulse of the 8th clock of the 2nd byte. b. LDAC pin makes a transition from “High” to “Low” during the negative pulse of the 8th clock of the 2nd byte (just before the rising edge of the 9th clock) and stays “Low” until the rising edge of clock 9 of the 3rd byte. The MCP4728 device does not acknowledge the 3rd byte if the conditions (a) and (b) are not met. c. 3: LDAC pin resumes its normal function after “Stop” bit. FIGURE 5-6: General Call Read I2C Address. © 2009 Microchip Technology Inc. DS22187C-page 33 MCP4728 5.5 Writing and Reading Registers and EEPROM 5.6 The Master (MCU) can write or read the DAC input registers or EEPROM using the I2C interface command. The following sections describe the communication examples to write and read the DAC registers and EEPROM using the I2C interface. TABLE 5-1: Table 5-1 summarizes the write command types and their functions.The write command is defined by using three write command type bits (C2, C1, C0) and two write function bits (W1, W0). The register selection bits (DAC1, DAC0) are used to select the DAC channel. WRITE COMMAND TYPES Command Field Write Function C2 W1 C1 Write Commands for DAC Registers and EEPROM C0 Command Name Function Fast Write for DAC Input Registers This command writes to the DAC input registers sequentially with limited configuration bits. The data is sent sequentially from channels A to D. The input register is written at the acknowledge clock pulse of the channel’s last input data byte. EEPROM is not affected. (Note 1) W0 Fast Mode Write 0 0 X Not Used Write DAC Input Register and EEPROM 0 1 0 0 0 Multi-Write for DAC Input Registers 1 0 Sequential Write for DAC Input Registers and EEPROM 1 1 Single Write for DAC Input Register and EEPROM This command writes to multiple DAC input registers, one DAC input register at a time. The writing channel register is defined by the DAC selection bits (DAC1, DAC0). EEPROM is not affected. (Note 2) This command writes to both the DAC input registers and EEPROM sequentially. The sequential writing is carried out from a starting channel to channel D. The starting channel is defined by the DAC selection bits (DAC1 and DAC0). The input register is written at the acknowledge clock pulse of the last input data byte of each register. However, the EEPROM data is written altogether at the same time sequentially at the end of the last byte. (Note 2),(Note 3) This command writes to a single selected DAC input register and its EEPROM. Both the input register and EEPROM are written at the acknowledge clock pulse of the last input data byte. The writing channel is defined by the DAC selection bits (DAC1 and DAC0). (Note 2),(Note 3) Write I2C Address Bits (A2, A1, A0) 0 1 1 Not Used Write I2C Address Bits This command writes new I2C address bits (A2, A1, A0) to the DAC input register and EEPROM. Write VREF, Gain, and Power-Down Select Bits (Note 4) 0 0 Not Used 1 1 0 Not Used Write Gain selection This command writes Gain selection bits of each channel. bits to Input Registers 1 0 1 Not Used Write Power-Down This command writes Power-Down bits of each channel. bits to Input Registers Note 1: 2: 3: 4: Write Reference (VREF) selection bits to Input Registers This command writes Reference (VREF) selection bits of each channel. 1 The analog output is updated when LDAC pin is (or changes to) “Low”. UDAC bit is not used for this command. The DAC output is updated when LDAC pin or UDAC bit is “Low”. The device starts writing to the EEPROM on the acknowledge clock pulse of the last channel. The device does not execute any command until RDY/BSY bit comes back to “High”. The input and output registers are updated at the acknowledge clock pulse of the last byte. The update does not require LDAC pin or UDAC bit conditions. EEPROM is not affected. DS22187C-page 34 © 2009 Microchip Technology Inc. MCP4728 5.6.1 FAST WRITE COMMAND (C2=0, C1=0, C0=X, X = DON’T CARE) 5.6.2 MULTI-WRITE COMMAND: WRITE DAC INPUT REGISTERS (C2=0, C1=1, C0=0; W1=0, W0=0) The Fast Write command is used to update the input DAC registers from channels A to D sequentially. The EEPROM data is not affected by this command. This command is called “Fast Write” because it updates the input registers with only limited data bits. Only the Power-Down mode selection bits (PD1 and PD0) and 12 bits of DAC input data are writable. This command is used to write DAC input register, one at a time. The EEPROM data is not affected by this command. The input register is updated at the acknowledge pulse of each channel’s last data byte. Figure 5-7 shows an example of the Fast Write command. The D11 - D0 bits in the third and fourth bytes are the DAC input data of the selected DAC channel. Bytes 2 4 can be repeated for the other channels. Figure 5-8 shows an example of the Multi-Write command. Updating Analog Outputs: a. b. c. When the LDAC pin is “High” before the last byte of the channel D, all analog outputs are updated simultaneously by bringing down the LDAC pin to “Low” any time. If the command starts with the LDAC pin “Low”, the channel’s analog output is updated at the falling edge of the acknowledge clock pulse of the channel’s last byte. Send the General Call Software Update command: This command updates all channels simultaneously. Note 1: UDAC bit is not used in this command. © 2009 Microchip Technology Inc. The DAC selection bits (DAC1, DAC0) select the DAC channel to write. Only a selected channel is affected. Repeated bytes are used to write more multiple DAC registers. Updating Analog Outputs: The analog outputs can be updated by one of the following events after the falling edge of the acknowledge clock pulse of the 4th byte. a. b. c. When the LDAC pin or UDAC bit is “Low”. If UDAC bit is “High”, bringing down the LDAC pin to “Low” any time. By sending the General Call Software Update command. Note 1: The UDAC bit can be used effectively to upload the input register to the output register, but it affects only a selected channel only, while the LDAC pin and General Call Software Update command affect all channels. DS22187C-page 35 MCP4728 5.6.3 SEQUENTIAL WRITE COMMAND: WRITE DAC INPUT REGISTERS AND EEPROM SEQUENTIALLY FROM STARTING CHANNEL TO CHANNEL D (C2=0, C1=1, C0=0; W1=1, W0=0) When the device receives this command, it writes the input data to the DAC input registers sequentially from the starting channel to channel D, and also writes to EEPROM sequentially. The starting channel is determined by the DAC1 and DAC0 bits. Table 5-2 shows the functions of the channel selection bits for the sequential write command. When the device is writing EEPROM, the RDY/BSY bit stays “Low” until the EEPROM write operation is completed. The state of the RDY/BSY bit flag can be monitored by a read command or at the RDY/BSY pin. Any new command received during the EEPROM write operation (RDY/BSY bit is “Low”) is ignored. Figure 5-9 shows an example of the sequential write command. Updating Analog Outputs: The analog outputs can be updated by one of the following events after the falling edge of the acknowledge clock pulse of the 4th byte. a. b. c. When the LDAC pin or UDAC bit is “Low”. If UDAC bit is “High”, bringing down the LDAC pin to “Low” any time. By sending the General Call Software Update command. 5.6.4 SINGLE WRITE COMMAND: WRITE A SINGLE DAC INPUT REGISTER AND EEPROM (C2=0, C1=1, C0=0; W1=1, W0=1) When the device receives this command, it writes the input data to a selected single DAC input register and also to its EEPROM. The channel is selected by the channel selection bits (DAC1 and DAC0). See Table for the channel selection bit function. Figure 5-10 shows an example of the single write command. Updating Analog Outputs: The analog outputs can be updated by one of the following events after the falling edge of the acknowledge clock pulse of the 4th byte. a. b. c. When the LDAC pin or UDAC bit is “Low”. If UDAC bit is “High”, bringing down the LDAC pin to “Low” any time. By sending the General Call Software Update command. Note 1: The UDAC bit can be used effectively to upload the input register to the output register, but it affects only a selected channel only, while the LDAC pin and General Call Software Update command affect all channels. Note 1: The UDAC bit can be used effectively to upload the input register to the output register, but it affects only a selected channel only, while the LDAC pin and General Call Software Update command affect all channels. TABLE 5-2: DAC CHANNEL SELECTION BITS FOR SEQUENTIAL WRITE COMMAND DAC1 DAC0 Channels 0 0 Ch. A - Ch. D 0 1 Ch. B - Ch. D 1 0 Ch. C - Ch. D 1 1 Ch. D DS22187C-page 36 © 2009 Microchip Technology Inc. MCP4728 5.6.5 WRITE COMMAND: SELECT VREF BIT (C2=1, C1=0, C0=0) When the device receives this command, it updates the DAC voltage reference selection bit (VREF) of each channel. The EEPROM data is not affected by this command. The affected channel’s analog output is updated after the acknowledge pulse of the last byte. Figure 5-12 shows an example of the write command for Select VREF bits. 5.6.6 WRITE COMMAND: SELECT POWER-DOWN BITS (C2=1, C1=0, C0=1) When the device receives this command, it updates the Power-Down selection bits (PD1, PD0) of each channel. The EEPROM data is not affected by this command. The affected channel is updated after the acknowledge pulse of the last byte. Figure 5-13 shows an example of the write command for the Select Power-Down bits. 5.6.7 WRITE COMMAND: SELECT GAIN BIT (C2=1, C1=1, C0=0) When the device receives this command, it updates the gain selection bits (GX) of each channel. The EEPROM data is not affected by this command. The analog output is updated after the acknowledge pulse of the last byte. Figure 5-14 shows an example of the write command for select gain bits. 5.6.8 WRITE COMMAND: WRITE I2C ADDRESS BITS (C2=0, C1=1, C0=1) This command writes new I2C address bits (A2, A1, A0) to the DAC input registers and EEPROM. When the device receives this command, it overwrites the current address bits with the new address bits. This command is valid only when the LDAC pin makes a transition from “High” to “Low” at the low time of the last bit (8th clock) of the second byte, and stays “Low” until the end of the 3rd byte. The update occurs after “Stop” bit if the conditions are met. The LDAC pin is used to select a device of interest to write. The highest clock rate of this command is 400 kHz. Figure 5-11 shows the details of the address write command. Note 1: To write a new device address, the current address of the device is also required. If the current address is not known, it can be read out by sending General Call Read Address Bits command. See 5.4.4 “General call Read Address Bits” for more details of reading the I2C address bits. 5.6.9 READ COMMAND If the R/W bit is set to a logic “High” in the I2C serial communications command, the device enters a reading mode and reads out the input registers and EEPROM. Figure 5-15 shows the details of the read command. Note 1: The device address bits are read by using General Call Read Address Bits command. © 2009 Microchip Technology Inc. DS22187C-page 37 MCP4728 Command Type Bits: C2=0 C1=0 C0=X ACK (MCP4728) Start S 1st byte 1 1 0 0 (C2 C1) R/W A2 A1 A0 Device Addressing 0 A 0 2nd Byte 3rd Byte 0 PD1 PD0 D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A DAC Input Register of Channel A Fast Write Command Update Channel A DAC Input Register at this ACK pulse. ACK (MCP4728) 3rd Byte 2nd Byte X X PD1 PD0 D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A DAC Input Register of Channel B Update Channel B DAC Input Register at this ACK pulse. ACK (MCP4728) 3rd Byte 2nd Byte X X PD1 PD0 D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A DAC Input Register of Channel C Update Channel C DAC Input Register at this ACK pulse. ACK (MCP4728) 3rd Byte 2nd Byte X X PD1 PD0 D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A DAC Input Register of Channel D Update Channel D DAC Input Register at this ACK pulse. Repeat Bytes P Stop Note 1: X is a don’t care bit. VOUT can be updated after the last byte’s ACK pulse is issued and by bringing down the LDAC pin to “Low”. FIGURE 5-7: DS22187C-page 38 Fast Write Command: Write DAC Input Registers Sequentially from Channel A to D. © 2009 Microchip Technology Inc. MCP4728 Command Type Bits: C2=0 C1=1 C0=0 W1=0 W0=0 ACK (MCP4728) Start 1st byte S 1 1 0 0 A2 A1 A0 0 A R/W Device Addressing ACK (MCP4728) (C2 C1 C0 W1 W2) 0 1 0 2nd Byte 3rd Byte 4th Byte 0 DAC1 DAC0 UDAC A VREF PD1 PD0 Gx D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A 0 Channel Select Multi-Write Command DAC Input Register of Selected Channel Note 1 Repeat Bytes of the 2nd - 4th Bytes ACK (MCP4728) 2nd byte X X X X 3rd Byte 4th Byte X DAC1 DAC0 UDAC A VREF PD1 PD0 Gx D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A Note 3 Channel Select Note 2 DAC Input Register of Selected Channel Note 1 Repeat Bytes of the 2nd - 4th Bytes P Note 1: 2: Stop VOUT Update: If UDAC = 0 or LDAC Pin = 0: VOUT is updated after the 4th byte’s ACK is issued. The user can write to the other channels by sending repeated bytes with new channel selection bits (DAC1, DAC0). 3: X is don’t care bit. FIGURE 5-8: Multi-Write Command: Write Multiple DAC Input Registers. © 2009 Microchip Technology Inc. DS22187C-page 39 MCP4728 Command Type Bits: C2=0 C1=1 C0=0 W1=1 W0=0 ACK (MCP4728) Start S 1st byte 1 1 0 0 A2 A1 A0 0 A R/W Device Addressing ACK (MCP4728) 2nd Byte (C2 C1 C0 W1 W2) 0 1 0 1 3rd Byte 4th Byte 0 DAC1 DAC0 UDAC A VREF PD1 PD0 Gx D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A Sequential Write Command Sequential Write Starting Channel Select DAC Input Register of Starting Channel Note 1 Repeat Bytes of the 3rd - 4th Bytes for the Starting Channel + 1, ... until Channel D. ACK (MCP4728) 3rd Byte Stop 4th Byte VREF PD1 PD0 Gx D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A DAC Input Register of Channel D (Last Channel) Note 1: 2: P Notes 1 and 2 VOUT Update: If UDAC = 0 or LDAC Pin = 0: VOUT is updated after the 4th byte’s ACK is issued. EEPROM Write: The MCP4728 device starts writing EEPROM at the falling edge of the 4th byte’s ACK pulse. FIGURE 5-9: Sequential Write Command: Write DAC Input Registers and EEPROM Sequentially from Starting Channel to Channel D. The sequential input register starts with the "Starting Channel" and ends at Channel D. For example, if DAC1:DAC0 = 00, then it starts with channel A and ends at channel D. If DAC1:DAC0 = 01, then it starts with channel B and ends at Channel D. Note that this command can send up to 10 bytes including the device addressing and command bytes. Any byte after the 10th byte is ignored. DS22187C-page 40 © 2009 Microchip Technology Inc. MCP4728 Command Type Bits: C2=0 C1=1 C0=0 W1=1 W0=1 ACK (MCP4728) Start S 1st byte 1 1 0 0 A2 A1 A0 0 A R/W Device Addressing ACK (MCP4728) C2 C1 C0 W1 W0 0 1 0 1 Single Write Command 2nd Byte 4th Byte 1 DAC1 DAC0 UDAC A VREF PD1 PD0 Gx D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A Channel Select Note 1: 2: FIGURE 5-10: 3rd Byte Stop P DAC Input Register of Selected Channel Note 1 and Note 2 VOUT Update: If UDAC = 0 or LDAC Pin = 0: VOUT is updated after the 4th byte’s ACK is issued. EEPROM Write: The MCP4728 device starts writing EEPROM at the falling edge of the 4th byte’s ACK pulse. Single Write Command: Write to a Single DAC Input Register and EEPROM. © 2009 Microchip Technology Inc. DS22187C-page 41 MCP4728 Command Type Bits: Start C2=0 C1=1 (C2 C1 C0) 1st Byte C0=1 2nd Byte 3rd Byte S 1 1 0 0 A2 A1 A0 0 A 0 1 1 A2 A1 A0 0 1 A 0 1 1 A2 A1 A0 1 0 A 0 Current R/W Command Current Device Type Address Bits Code Address Bits Stop 4th Byte Command New Type Address Bits 1 1 A2 A1 A0 1 1 A P Command New Address Bits (for confirmation) Type Note 4 LDAC Pin (Notes 1, 2, 3) Note 3 Clock and LDAC Transition Details: ACK (MCP4728) Clock Pulse (CLK Line) Stop 5 6 7 8 9 1 2 3 4 5 6 3rd Byte 2nd Byte 7 8 9 1 ----- 9 P 4th Byte Note 4 Note 2(b) LDAC Pin Note 2 (a) Note 2(b) Note 3 Stay “Low” during this 3rd byte Note 1: 2: Clock Pulse and LDAC Transition Details. LDAC pin events at the 2nd and 3rd bytes: a. b. c. 3: LDAC pin resumes its normal function after “Stop” bit. 4: EEPROM Write: a. b. FIGURE 5-11: DS22187C-page 42 Keep LDAC pin “High” until the end of the positive pulse of the 8th clock of the 2nd byte. LDAC pin makes a transition from “High” to “Low” during the negative pulse of the 8th clock of the 2nd byte (just before the rising edge of the 9th clock), and stays “Low” until the rising edge of the 9th clock of the 3rd byte. The MCP4728 device does not acknowledge the 3rd byte if the conditions (a) and (b) are not met. Charge Pump initiates the EEPROM write sequence at the falling edge of the 4th byte’s ACK pulse. The RDY/BSY bit (pin) goes “Low” at the falling edge of this ACK clock and back to “High” immediately after the EEPROM write is completed. Write Command: Write I2C Address Bits to the DAC Registers and EEPROM. © 2009 Microchip Technology Inc. MCP4728 Command Type Bits: C2=1 C1=0 C0=0 ACK (MCP4728) Start S 1 1 0 0 A2 A1 A0 0 A 1 0 0 Stop 2nd Byte (C2 C1 C0) 1st byte X VREF A VREF B VREF C VREF D A P R/W Device Addressing Note 1: Write Command Note 1 Registers and VOUT are updated at this falling edge of ACK pulse. VREF = 0: VDD = 1: Internal Reference (2.048V) VREF A = Voltage reference of Channel A VREF B = Voltage reference of Channel B VREF C = Voltage reference of Channel C VREF D = Voltage reference of Channel D 2: X is don’t care bit. FIGURE 5-12: Registers. Write Command: Write Voltage Reference Selection Bit (VREF) to the DAC Input Command Type Bits: C2=1 C1=0 C0=1 ACK (MCP4728) Start S 1st byte 1 1 0 0 A2 A1 A0 0 A R/W Device Addressing Stop ACK (MCP4728) (C2 C1 C0) 1 0 1 3rd Byte 2nd Byte X PD1 A PD0 A PD1 B PD0 B A Write Command Channel A for Power-Down Selection Bits Note 1: Channel B PD1 C PD0 C PD1 D Channel C PD0 D X X X X A P Channel D Registers and VOUT are updated at this falling edge of ACK pulse. X is don’t care bit. FIGURE 5-13: Write Command: Write Power-Down Selection Bits (PD1, PD0) to the DAC Input Registers. See Table 4-7 for the power-down bit setting. © 2009 Microchip Technology Inc. DS22187C-page 43 MCP4728 Command Type Bits: C2=1 C1=1 C0=0 ACK (MCP4728) Start 1st Byte S 1 1 0 0 A2 (C2 C1 C0) A1 Device Addressing A0 0 R/W A 1 1 0 2nd Byte X Write Command for Gain Selection Bits GX A GX B GX C GX D A Stop P Note 1 Registers and VOUT are updated at this falling edge of ACK pulse. Note 1: GX A = Gain Selection for Channel A GX B = Gain Selection for Channel B GX C = Gain Selection for Channel C GX D = Gain Selection for Channel D Ex: GX A = 0: Gain of 1 for Channel A = 1: Gain of 2 for Channel A 2: FIGURE 5-14: DS22187C-page 44 X is don’t care bit. Write Command: Write Gain Selection Bit (GX) to the DAC Input Registers. © 2009 Microchip Technology Inc. MCP4728 ACK (MCP4728) Read Command Start S 1 1 0 0 A2 A1 A0 1 A R/W Device Code Address Bits ACK (MCP4728) 2nd Byte RDY/ BSY POR DAC1 DAC 0 0 A2 3rd Byte A1 A0 A VREF 4th Byte Stop PD1 PD0 GX D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A P Channel A DAC Input Register 6th Byte 5th Byte RDY/ BSY POR DAC1 DAC 0 0 A2 A1 A0 A VREF 7th Byte Stop PD1 PD0 GX D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A P Channel A DAC EEPROM 3rd Byte 2nd Byte RDY/ BSY POR DAC1 DAC 0 0 A2 A1 A0 A VREF 4th Byte Stop PD1 PD0 GX D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A P Channel B DAC Input Register 6th Byte 5th Byte RDY/ BSY POR DAC1 DAC 0 0 A2 A1 A0 A VREF 7th Byte Stop PD1 PD0 GX D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A P Channel B DAC EEPROM 2nd Byte RDY/ BSY POR DAC1 DAC 0 0 A2 3rd Byte A1 A0 A VREF 4th Byte Stop PD1 PD0 GX D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A P Channel C DAC Input Register 6th Byte 5th Byte RDY/ BSY POR DAC1 DAC 0 0 A2 A1 A0 A VREF 7th Byte Stop PD1 PD0 GX D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A P Channel C DAC EEPROM 3rd Byte 2nd Byte RDY/ BSY POR DAC1 DAC 0 0 A2 A1 A0 A VREF 4th Byte Stop PD1 PD0 GX D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A P Channel D DAC Input Register 6th Byte 5th Byte RDY/ BSY POR DAC1 DAC 0 0 A2 A1 A0 A VREF FIGURE 5-15: Stop PD1 PD0 GX D11 D10 D9 D8 A D7 D6 D5 D4 D3 D2 D1 D0 A P Channel D DAC EEPROM Note 1: 7th Byte Repeat The 2nd - 4th bytes are the contents of the DAC Input Register and the 5th - 7th bytes are the EEPROM contents. The device outputs sequentially from channel A to D. POR Bit: 1 = Set (Device is powered on with VDD > VPOR), 0 = Powered off state. Read Command and Device Outputs. © 2009 Microchip Technology Inc. DS22187C-page 45 MCP4728 NOTES: DS22187C-page 46 © 2009 Microchip Technology Inc. MCP4728 6.0 TERMINOLOGY 6.1 Resolution The resolution is the number of DAC output states that divide the full scale range. For the 12-bit DAC, the resolution is 212, meaning the DAC code ranges from 0 to 4095. 6.2 LSB 7 INL = < -1 LSB 6 INL = - 1 LSB 5 Analog 4 Output (LSB) 3 INL = 0.5 LSB 2 The least significant bit or the ideal voltage difference between two successive codes. 1 EQUATION 6-1: 0 000 001 010 V REF LSB = -----------n 2 Ideal Transfer Function ( V Full Scale – V Zero Scale ) = --------------------------------------------------------12 2 –1 ( V Full Scale – V Zero Scale ) = --------------------------------------------------------4095 Where VREF = = n 6.3 = VDD If external reference is selected 2.048V If internal reference is selected The number of digital input bits, n = 12 for MCP4728. Integral Nonlinearity (INL) Integral nonlinearity (INL) error is the maximum deviation of an actual transfer function from an ideal transfer function (straight line). In the MCP4728, INL is calculated using two end-points (zero and full scale). INL can be expressed as a percentage of full scale range (FSR) or in fraction of an LSB. INL is also called relative accuracy. Equation 6-2 shows how to calculate the INL error in LSB and Figure 6-1 shows an example of INL accuracy. EQUATION 6-2: 011 100 101 110 111 DAC Input Code Actual Transfer Function FIGURE 6-1: 6.4 INL Accuracy. Differential Nonlinearity (DNL) Differential nonlinearity (DNL) error (see Figure 6-2) is the measure of step size between codes in actual transfer function. The ideal step size between codes is 1 LSB. A DNL error of zero would imply that every code is exactly 1 LSB wide. If the DNL error is less than 1 LSB, the DAC guarantees monotonic output and no missing codes. The DNL error between any two adjacent codes is calculated as follows: EQUATION 6-3: DNL DNL ERROR ΔV OUT – LSB = --------------------------------LSB Where: DNL is expressed in LSB. ΔVOUT = The measured DAC output voltage difference between two adjacent input codes. INL ERROR ( V OUT – V Ideal ) INL = -------------------------------------LSB Where: INL is expressed in LSB = Code*LSB VIdeal VOUT = The output voltage measured at the given input code © 2009 Microchip Technology Inc. DS22187C-page 47 MCP4728 7 DNL = 0.5 LSB 6 5 DNL = 2 LSB Analog 4 Output (LSB) 3 For the MCP4728 device, the gain error is not calibrated at the factory and most of the gain error is contributed by the output buffer (op amp) saturation near the code range beyond 4000. For applications that need the gain error specification less than 1% maximum, a user may consider using the DAC code range between 100 and 4000 instead of using full code range (code 0 to 4095). The DAC output of the code range between 100 and 4000 is much more linear than full scale range (0 to 4095). The gain error can be calibrated out by software in applications. 2 6.7 1 0 000 001 010 011 100 101 110 111 DAC Input Code Full Scale Error (FSE) Full scale error (see Figure 6-4) is the sum of offset error plus gain error. It is the difference between the ideal and measured DAC output voltage with all bits set to one (DAC input code = FFFh). Ideal Transfer Function Actual Transfer Function FIGURE 6-2: 6.5 EQUATION 6-4: ( V OUT – V Ideal ) FSE = -------------------------------------LSB DNL Accuracy. Offset Error Where: Offset error (see Figure 6-3) is the deviation from zero voltage output when the digital input code is zero (zero scale voltage). This error affects all codes by the same amount. For the MCP4728 device, the offset error is not trimmed at the factory. However, it can be calibrated by software in application circuits. FSE is expressed in LSB. VIdeal = (VREF) (1 - 2-n) - Offset Voltage (VOS) VREF = Voltage Reference Actual Transfer Function Actual Transfer Function Full Scale Error Analog Output Gain Error Analog Output 0 FIGURE 6-3: 6.6 Actual Transfer Function after Offset Error is removed Ideal Transfer Function Offset Error Offset Error. Gain Error Gain error (see Figure 6-4) is the difference between the actual full scale output voltage from the ideal output voltage of the DAC transfer curve. The gain error is calculated after nullifying the offset error, or full scale error minus the offset error. The gain error indicates how well the slope of the actual transfer function matches the slope of the ideal transfer function. The gain error is usually expressed as percent of full scale range (% of FSR) or in LSB. DS22187C-page 48 Ideal Transfer Function DAC Input Code 0 DAC Input Code FIGURE 6-4: Error. 6.8 Gain Error and Full Scale Gain Error Drift Gain error drift is the variation in gain error due to a change in ambient temperature. The gain error drift is typically expressed in ppm/°C. © 2009 Microchip Technology Inc. MCP4728 6.9 Offset Error Drift Offset error drift is the variation in offset error due to a change in ambient temperature. The offset error drift is typically expressed in ppm/oC. 6.10 Settling Time The Settling time is the time delay required for the DAC output to settle to its new output value from the start of code transition, within specified accuracy. In the MCP4728 device, the settling time is a measure of the time delay until the DAC output reaches its final value within 0.5 LSB when the DAC code changes from 400h to C00h. 6.11 Major-Code Transition Glitch Major-code transition glitch is the impulse energy injected into the DAC analog output when the code in the DAC register changes state. It is normally specified as the area of the glitch in nV-Sec. and is measured when the digital code is changed by 1 LSB at the major carry transition (Example: 011...111 to 100... 000, or 100... 000 to 011... 111). 6.12 Digital Feedthrough Digital feedthrough is the glitch that appears at the analog output caused by coupling from the digital input pins of the device. The area of the glitch is expressed in nV-Sec, and is measured with a full scale change (Example: all 0s to all 1s and vice versa) on the digital input pins. The digital feedthrough is measured when the DAC is not being written to the output register. This condition can be created by writing input register with both UDAC bit and LDAC pin high. © 2009 Microchip Technology Inc. 6.13 Analog Crosstalk Analog crosstalk is the glitch that appears at the output of one DAC due to a change in the output of the other DAC. The area of the glitch is expressed in nV-Sec, and measured by loading one of the input registers with a full scale code change (all 0s to all 1s and vice versa) while keeping both UDAC bit and LDAC pin high. Then bring down the LDAC pin to low and measure the output of the DAC whose digital code was not changed. 6.14 DAC-to-DAC Crosstalk DAC-to-DAC crosstalk is the glitch that appears at the output of one DAC due to an input code change and subsequent output change of the other DAC. This includes both digital and analog crosstalks. The area of the glitch is expressed in nV-Sec, and measured by loading one of the input registers with a full scale code change (all 0s to all 1s and vice versa) while keeping UDAC bit or LDAC pin low. 6.15 Power-Supply Rejection Ratio (PSRR) PSRR indicates how the output of the DAC is affected by changes in the supply voltage. PSRR is the ratio of the change in VOUT to a change in VDD for full scale output of the DAC. It is measured on one DAC that is using an internal VREF while the VDD is varied +/- 10%, and expressed in dB or µV/V. DS22187C-page 49 MCP4728 NOTES: DS22187C-page 50 © 2009 Microchip Technology Inc. MCP4728 7.0 TYPICAL APPLICATIONS 7.1 The MCP4728 device is a part of Microchip’s latest DAC family with non-volatile EEPROM memory. The device is a general purpose resistor string DAC intended to be used in applications where a precision, and low power DAC with moderate bandwidth is required. The SCL, SDA, and RDY/BSY pins of the MCP4728 device are open-drain configurations. These pins require a pull-up resistor as shown in Figure 7-1. The LDAC pin has a schmitt trigger input configuration and it can be driven by an external MCU I/O pin. Since the device includes non-volatile EEPROM memory, the user can use this device for applications that require the output to return to the previous set-up value on subsequent power-ups. The pull-up resistor values (R1 and R2) for SCL and SDA pins depend on the operating speed (standard, fast, and high speed) and loading capacitance of the I2C bus line. Higher value of pull-up resistor consumes less power, but increases the signal transition time (higher RC time constant) on the bus line. Therefore, it can limit the bus operating speed. A lower resistor value, on the other hand, consumes higher power, but allows for higher operating speed. If the bus line has higher capacitance due to long metal traces or multiple device connections to the bus line, a smaller pull-up resistor is needed to compensate the long RC time constant. The pull-up resistor is typically chosen between 1 kΩ and 10 kΩ ranges for standard and fast modes, and less than 1 kΩ for high speed mode. Applications generally suited for the MCP4728 device family include: • • • • Connecting to I2C BUS using Pull-Up Resistors Set Point or Offset Trimming Sensor Calibration Portable Instrumentation (Battery Powered) Motor Speed Control VDD C1 C2 R1 R2 R3 VSS VDD 1 10 SCL 2 9 VOUT D SDA 3 MCP4728 8 VOUT C LDAC 4 7 VOUT B RDY/BSY 5 6 VOUT A Analog Outputs To MCU R1 - R3 are the pull-up resistors: R1 and R2 (Pull-up resistors for I2C Serial Communications): 5 kΩ - 10 kΩ for fSCL = 100 kHz to 400 kHz ~700Ω for fSCL = 3.4 MHz R3 (Pull-Up resistor ( ~ 100 kΩ) to monitor RDY/BSY bit. Leave this pin float if it is not used.): C1: 0.1 µF, Ceramic capacitor C2: 10 µF, Tantalum capacitor FIGURE 7-1: Example of the MCP4728 Device Connection. © 2009 Microchip Technology Inc. DS22187C-page 51 MCP4728 7.1.1 7.3 DEVICE CONNECTION TEST The user can test the presence of the MCP4728 device on the I2C bus line without performing a data conversion. This test can be achieved by checking an acknowledge response from the MCP4728 device after sending a read or write command. Figure 7-2 shows an example with a read command: Set the R/W bit “High” or “Low” in the address byte. Check the ACK pulse after sending the address byte. If the device acknowledges (ACK = 0) the command, then the device is connected, otherwise it is not connected. Send Stop bit. a. b. c. Address Byte SDA Start Bit 1 2 3 4 5 6 7 8 1 1 0 1 A2 A1 A0 1 9 Stop Bit Device Code Address bits R/W MCP4728 Response FIGURE 7-2: 7.2 The power source should be as clean as possible. The power supply to the device is used for both VDD and DAC voltage reference by selecting VREF = VDD. Any noise induced on the VDD line can affect DAC performance. A typical application will require a bypass capacitor in order to filter out high frequency noise on the VDD line. The noise can be induced onto the power supply’s traces or as a result of changes on the DAC output. The bypass capacitor helps to minimize the effect of these noise sources on signal integrity. Figure 7-1 shows an example of using two bypass capacitors (a 10 µF tantalum capacitor and a 0.1 µF ceramic capacitor) in parallel on the VDD line. These capacitors should be placed as close to the VDD pin as possible (within 4 mm). If the application circuit has separate digital and analog power supplies, the VDD and VSS pins of the MCP4728 device should reside on the analog plane. 7.4 ACK SCL I2C Bus Connection Test. Layout Considerations Power Supply Considerations Using Power Saving Feature The device consumes very little power when it is in Power-Down (shut-down) mode. During the Power-Down mode, most circuits in the selected channel are turned off. It is recommended to power down any unused channel. The device consumes the least amount of power if it enters the Power-Down mode after the internal voltage reference is disabled. This can be achieved by selecting VDD as the voltage reference for all 4 channels and then issuing the Power-Down mode for all channels. Inductively-coupled AC transients and digital switching noise from other devices can affect DAC performance and DAC output signal integrity. Careful board layout will minimize these effects. Bench testing has shown that a multi-layer board utilizing a low-inductance ground plane, isolated inputs, isolated outputs and proper decoupling are critical to achieving good DAC performance. 7.5 Separate digital and analog ground planes are recommended. In this case, the VSS pin and the ground pins of the VDD capacitors of the MCP4728 should be terminated to the analog ground plane. When the MCP4728 device is first powered-up or receives General Call Reset Command, it uploads the EEPROM contents to the DAC output registers automatically and provides analog outputs immediately with the saved settings in EEPROM. This feature is very useful in applications where the MCP4728 device is used to provide set points or calibration data for other devices in the application systems. The MCP4728 device can save important system parameters when the application system experiences power failure. See Section 5.5 “Writing and Reading Registers and EEPROM” for more details on using the non-volatile EEPROM memory. DS22187C-page 52 Using Non-Volatile EEPROM Memory The user can store the I2C device address bits, configuration bits and DAC input code of each channel in the on-board non-volatile EEPROM memory using the I2C write command. The contents of EEPROM are readable and writable using the I2C command. © 2009 Microchip Technology Inc. MCP4728 7.6 Application Examples The MCP4728 device is a rail-to-rail output DAC designed to operate with a VDD range of 2.7V to 5.5V. Its output amplifier of each channel is robust enough to drive common, small-signal loads directly, thus eliminating the cost and size of external buffers for most applications. Since each channel has its own configuration bits for selecting the voltage reference, gain, power-down, etc., the MCP4728 device offers great simplicity and flexibility to use for various DAC applications. 7.6.1 DC SET POINT OR CALIBRATION VOLTAGE SETTINGS A common application for the MCP4728 device is a digitally-controlled set point or a calibration of variable parameters such as sensor offset or bias point. Figure 7-3 shows an example of the set point settings. Let us consider that the application requires different trip voltages (Trip 1 - Trip 4). Assuming the DAC output voltage requirements are given as shown in Table 7-1, examples of sending the Sequential Write and Fast Write commands are shown in Figure 7-4 and Figure 7-5. TABLE 7-1: © 2009 Microchip Technology Inc. EXAMPLE: SETTING VOUT OF EACH CHANNEL DAC Channel Voltage Reference DAC Output (VOUT) VOUT A VDD VDD/2 VOUT B VDD VDD - 1 LSB VOUT C Internal 2.048V VOUT D Internal 4.096V DS22187C-page 53 MCP4728 VDD Light Comparator 1 RSENSE R1 VTRIP1 R2 0.1 µF VDD Light Comparator 2 RSENSE VDD 0.1 µF 10 µF R1 VTRIP2 R1 R2 R3 R4 R2 VDD 1 10 SCL 2 9 VOUT D SDA 3 MCP4728 0.1 µF VSS 8 VOUT C LDAC 4 7 VOUT B RDY/BSY 5 6 VOUT A VDD Light Analog Outputs Comparator 3 RSENSE R1 VTRIP3 To MCU R2 0.1 µF VDD Light D n = Input Code (0 to 4095) Dn V OUT = V REF × ------------ G x 4096 R2 V TRIP = V OUT ⎛ -------------------⎞ ⎝ R 1 + R 2⎠ FIGURE 7-3: DS22187C-page 54 Comparator 4 RSENSE R1 VTRIP4 R2 0.1 µF Using the MCP4728 for Set Point or Threshold Calibration. © 2009 Microchip Technology Inc. MCP4728 ACK (MCP4728) Start R/W UDAC VREF GX S 1 1 0 0 0 0 0 0 A 0 1 0 1 0 0 0 0 A 0 0 0 0 1 0 0 0 A 0 0 0 0 0 0 0 0 A 1st Byte Device Addressing Dn = 211 = 2048 Sequential Write Selecting Command Channel A as Starting Channel Update DAC A Input Register at this ACK pulse. ACK (MCP4728) VREF GX 0 0 0 0 1 1 1 1 A 1 1 1 1 1 1 1 1 A Dn = 4095 Update DAC B Input Register at this ACK pulse. ACK (MCP4728) VREF GX 1 0 0 1 1 0 0 0 A 0 0 0 0 0 0 0 0 A Dn = 2048 Update DAC C Input Register at this ACK pulse. ACK (MCP4728) VREF Stop GX 1 0 0 1 1 1 1 1 A 1 1 1 1 1 1 1 1 A P Dn = 4095 Update DAC D Input Register at this ACK pulse. Expected Output Voltage at Each Channel: Dn V OUT A = V DD × -----------4096 Dn V OUT B = V DD × -----------4096 Dn V OUT C = V REF × -----------4096 Dn V OUT D = V REF × -----------4096 FIGURE 7-4: 2048 = V DD × -----------4096 V DD = ---------2 4095 = V DD × -----------4096 = (V) ( V DD – LSB ) (V) 2048 G x = 2.048 × ------------ × 2 = 2.048 4096 (V) 4095 G x = 2.048 × ------------ × 2 = 4.096 4096 (V) Sequential Write Command for Setting Test Points in Figure 7-3. © 2009 Microchip Technology Inc. DS22187C-page 55 MCP4728 Start 1st Byte Stop 3rd Byte 2nd Byte S 1 1 0 0 A2 A1 A0 0 A 0 1 1 A2 A1 A0 0 1 A 0 1 1 A2 A1 A0 1 0 A Address Byte Fast Mode Write Command ....... P DAC A Next DAC Channels The following example shows the expected analog outputs with the corresponding DAC input codes: DAC A Input Code = 001111-11111111 DAC B Input Code = 000111-11111111 DAC C Input Code = 000011-11111111 DAC D Input Code = 000001-11111111 ( V REF × D n ) V OUT = --------------------------------- Gx 4096 (A) Channel A Output: Dn for Channel A = 0FFF (hex) = 4095 (decimal) V OUT A ( V DD × 4095 ) 4096 – 1 1 = ----------------------------------- = V DD ⎛ ---------------------⎞ = V DD ⎛ 1 – ------------⎞ = V DD – LSB ⎝ 4096 ⎠ ⎝ 4096⎠ 4096 (B) Channel B Output: Dn for Channel B = 07FF (hex) = 2047 (decimal) V OUT B ( V DD × 2047 ) V DD V DD 2048 – 1 2 - = V DD ⎛ ---------------------⎞ = ------------ ⎛ 1 – ------------⎞ = -----------= ----------------------------------- – LSB ⎝ ⎠ ⎝ ⎠ 4096 4096 2 4096 2 (C) Channel C Output: Dn for Channel C = 03FF (hex) = 1023 (decimal) V DD V DD V DD × 1023 1024 – 1 4 - ⎛ 1 – ------------⎞ = -----------= V DD ⎛ ---------------------⎞ = ------------ – LSB V OUT C = ---------------------------------⎝ ⎠ ⎝ ⎠ 4096 4096 4 4096 4 (D) Channel D Output: Dn for Channel D = 01FF (hex) = 511 (decimal) V DD V DD × 511 V DD 512 – 1 8 - ⎛ 1 – ------------⎞ = -----------V OUT D = ------------------------------= V DD ⎛ ------------------⎞ = ------------ – LSB ⎝ 4096 ⎠ 4096⎠ 4096 8 ⎝ 8 FIGURE 7-5: Channels. DS22187C-page 56 Example of Writing Fast Write Command for Various VOUT. VREF = VDD for all © 2009 Microchip Technology Inc. MCP4728 8.0 DEVELOPMENT SUPPORT 8.1 Evaluation & Demonstration Boards The MCP4728 Evaluation Board is available from Microchip Technology Inc. This board works with Microchip’s PICkit™ Serial Analyzer. The user can easily program the DAC input registers and EEPROM using the PICkit Serial Analyzer, and test out the DAC analog output voltages.The PICkit Serial Analyzer uses the PC Graphic User Interface software. Refer to www.microchip.com for further information on this product’s capabilities and availability. FIGURE 8-2: Setup for the MCP4728 Evaluation Board with PICkit™ Serial Analyzer. FIGURE 8-1: Board. MCP4728 Evaluation FIGURE 8-3: Example of PICkit™ Serial User Interface. © 2009 Microchip Technology Inc. DS22187C-page 57 MCP4728 NOTES: DS22187C-page 58 © 2009 Microchip Technology Inc. MCP4728 9.0 PACKAGING INFORMATION 9.1 Package Marking Information 10-Lead MSOP Example XXXXXX 4728 YWWNNN 906256 Legend: XX...X Y YY WW NNN e3 * Note: Customer-specific information Year code (last digit of calendar year) Year code (last 2 digits of calendar year) Week code (week of January 1 is week ‘01’) Alphanumeric traceability code Pb-free JEDEC designator for Matte Tin (Sn) This package is Pb-free. The Pb-free JEDEC designator ( e3 ) can be found on the outer packaging for this package. In the event the full Microchip part number cannot be marked on one line, it will be carried over to the next line, thus limiting the number of available characters for customer-specific information. © 2009 Microchip Technology Inc. DS22187C-page 59 MCP4728 1% & %! % 2 %% 033)))& &3 " ) 2 ' % 2 $ % % " % D N E E1 NOTE 1 1 2 b e A A2 c φ L A1 L1 4% & 5&% 6!&( $ 55** 6 6 +./ 7 9 % 2 % "$$ 7 <"% " " 2 7 5 % 8 % " " 2 67 : : + ;+ + : + * <"% ./ * ,./ ,./ 1%5 % 5 1% % 5 1% > : ;> 5 ; : , "2 = ; +*1 5 "<"% ( + : ,, ! " #$ %! & '(!%&! %( % ")%% % " & "*"%!" &"$ %! "$ %! % # "+&& , & "% *-+ ./0 . & % # % ! ))%!%% *10 $ & '! ! )%!%% '$$& % ! " ) / . DS22187C-page 60 © 2009 Microchip Technology Inc. MCP4728 APPENDIX A: REVISION HISTORY Revision C (September 2009) The following is the list of modifications: 1. Updated Figure 5-11 and Figure 7-4. Revision B (August 2009) The following is the list of modifications: 2. 3. Updated Figure 2-25 to Figure 2-41 in Section 2.0 “Typical Performance Curves”. Updated Figure 5-7, Figure 5-8 and Figure 5-11. Revision A (June 2009) • Original Release of this Document. © 2009 Microchip Technology Inc. DS22187C-page 61 MCP4728 NOTES: DS22187C-page 62 © 2009 Microchip Technology Inc. MCP4728 PRODUCT IDENTIFICATION SYSTEM To order or obtain information, e.g., on pricing or delivery, refer to the factory or the listed sales office. PART NO. Device Device: X /XX Temperature Range Package ‚ MCP4728: Temperature Range: E Package: Examples: a) MCP4728: Tape and Reel, Extended Temperature, 10LD MSOP package. Single Comparator = -40°C to +125°C UN = Plastic Micro Small Outline Transistor, 10-lead © 2009 Microchip Technology Inc. DS22187C-page 63 MCP4728 NOTES: DS22187C-page 64 © 2009 Microchip Technology Inc. Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as “unbreakable.” Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights. Trademarks The Microchip name and logo, the Microchip logo, dsPIC, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART, rfPIC and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor, MXDEV, MXLAB, SEEVAL and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLINK, mTouch, Octopus, Omniscient Code Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit, PICtail, PIC32 logo, REAL ICE, rfLAB, Select Mode, Total Endurance, TSHARC, UniWinDriver, WiperLock and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. All other trademarks mentioned herein are property of their respective companies. © 2009, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India. The Company’s quality system processes and procedures are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip’s quality system for the design and manufacture of development systems is ISO 9001:2000 certified. © 2009 Microchip Technology Inc. DS22187C-page 65 WORLDWIDE SALES AND SERVICE AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://support.microchip.com Web Address: www.microchip.com Asia Pacific Office Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 India - Bangalore Tel: 91-80-3090-4444 Fax: 91-80-3090-4080 India - New Delhi Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 Austria - Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 Denmark - Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 India - Pune Tel: 91-20-2566-1512 Fax: 91-20-2566-1513 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Japan - Yokohama Tel: 81-45-471- 6166 Fax: 81-45-471-6122 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Atlanta Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 Boston Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 Chicago Itasca, IL Tel: 630-285-0071 Fax: 630-285-0075 Cleveland Independence, OH Tel: 216-447-0464 Fax: 216-447-0643 Dallas Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 Detroit Farmington Hills, MI Tel: 248-538-2250 Fax: 248-538-2260 Kokomo Kokomo, IN Tel: 765-864-8360 Fax: 765-864-8387 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 Santa Clara Santa Clara, CA Tel: 408-961-6444 Fax: 408-961-6445 Toronto Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China - Beijing Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 China - Chengdu Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 Korea - Daegu Tel: 82-53-744-4301 Fax: 82-53-744-4302 China - Hong Kong SAR Tel: 852-2401-1200 Fax: 852-2401-3431 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 China - Nanjing Tel: 86-25-8473-2460 Fax: 86-25-8473-2470 Malaysia - Kuala Lumpur Tel: 60-3-6201-9857 Fax: 60-3-6201-9859 China - Qingdao Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 Malaysia - Penang Tel: 60-4-227-8870 Fax: 60-4-227-4068 China - Shanghai Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 Philippines - Manila Tel: 63-2-634-9065 Fax: 63-2-634-9069 China - Shenyang Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 China - Shenzhen Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 Taiwan - Hsin Chu Tel: 886-3-6578-300 Fax: 886-3-6578-370 China - Wuhan Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 Taiwan - Kaohsiung Tel: 886-7-536-4818 Fax: 886-7-536-4803 China - Xiamen Tel: 86-592-2388138 Fax: 86-592-2388130 Taiwan - Taipei Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 China - Xian Tel: 86-29-8833-7252 Fax: 86-29-8833-7256 Thailand - Bangkok Tel: 66-2-694-1351 Fax: 66-2-694-1350 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 Spain - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 UK - Wokingham Tel: 44-118-921-5869 Fax: 44-118-921-5820 China - Zhuhai Tel: 86-756-3210040 Fax: 86-756-3210049 03/26/09 DS22187C-page 66 © 2009 Microchip Technology Inc.