MAXIM DS3231M+

19-5312; Rev 0; 6/10
±5ppm, I2C Real-Time Clock
The DS3231M is a low-cost, extremely accurate, I2C
real-time clock (RTC). The device incorporates a battery
input and maintains accurate timekeeping when main
power to the device is interrupted. The integration of
the microelectromechanical systems (MEMS) resonator enhances the long-term accuracy of the device and
reduces the piece-part count in a manufacturing line.
The DS3231M is available in the same footprint as the
popular DS3231 RTC.
The RTC maintains seconds, minutes, hours, day, date,
month, and year information. The date at the end of the
month is automatically adjusted for months with fewer
than 31 days, including corrections for leap year. The
clock operates in either the 24-hour or 12-hour format
with an AM/PM indicator. Two programmable time-ofday alarms and a 1Hz output are provided. Address and
data are transferred serially through an I2C bidirectional
bus. A precision temperature-compensated voltage
reference and comparator circuit monitors the status of
VCC to detect power failures, to provide a reset output,
and to automatically switch to the backup supply when
necessary. Additionally, the RST pin is monitored as a
pushbutton input for generating a microprocessor reset.
See the Block Diagram for more details.
Features
S Timekeeping Accuracy Q5ppm (Q0.432 Second/
Day) from -40NC to +85NC
S Battery Backup for Continuous Timekeeping
S Low Power Consumption
S Footprint and Functionally Compatible to DS3231
S Complete Clock Calendar Functionality Including
Seconds, Minutes, Hours, Day, Date, Month, and
Year with Leap Year Compensation Up to Year
2100
S Two Time-of-Day Alarms
S 1Hz and 32.768kHz Outputs
S Reset Output and Pushbutton Input with
Debounce
S Fast (400kHz) I2C-Compatible Serial Bus
S +2.3V to +5.5V Supply Voltage
S Digital Temp Sensor with Q3NC Accuracy
S -40NC to +85NC Temperature Range
S 16-Pin SO (300 mils) Package
S Underwriters Laboratories (UL) Recognized
Typical Operating Circuit
Applications
Power Meters
+3.3V
+3.3V
Industrial Applications
Ordering Information
PART
TEMP RANGE
PIN-PACKAGE
DS3231MZ+*
-40NC to +85NC
8 SO
DS3231M+
-40NC to +85NC
16 SO
+Denotes a lead(Pb)-free/RoHS-compliant package.
*Future product—contact factory for availability.
I/O PORT
SCL
SDA
32KHZ
INTERRUPTS
CPU
VBAT
INT/SQW
RST
DS3231M
Note: Some revisions of this device may incorporate deviations from published specifications known as errata. Multiple revisions of any device
may be simultaneously available through various sales channels. For information about device errata, go to: www.maxim-ic.com/errata.
________________________________________________________________ Maxim Integrated Products 1
For pricing, delivery, and ordering information, please contact Maxim Direct at 1-888-629-4642,
or visit Maxim’s website at www.maxim-ic.com.
DS3231M
General Description
DS3231M
±5ppm, I2C Real-Time Clock
ABSOLUTE MAXIMUM RATINGS
Voltage Range on Any Pin Relative to GND.........-0.3V to +6.0V
Operating Temperature Range........................... -40NC to +85NC
Storage Temperature Range............................. -55NC to +125NC
Lead Temperature (soldering, 10s).................................+260NC
Soldering Temperature (reflow).......................................+260NC
Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only, and functional
operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to absolute
maximum rating conditions for extended periods may affect device reliability.
RECOMMENDED OPERATING CONDITIONS
(TA = -40NC to +85NC, unless otherwise noted.) (Note 1)
PARAMETER
SYMBOL
CONDITIONS
MIN
TYP
MAX
UNITS
VCC
2.3
3.3
5.5
VBAT
2.3
3.0
5.5
Logic 1
VIH
0.7 x
VCC
VCC +
0.3
V
Logic 0
VIL
-0.3
0.3 x
VCC
V
Supply Voltage
V
ELECTRICAL CHARACTERISTICS—FREQUENCY AND TIMEKEEPING
(VCC or VBAT = +3.3V, TA = -40NC to +85NC, unless otherwise noted. Typical values are at VCC = +3.3V, VBAT = +3.0V, and
TA = +25NC, unless otherwise noted.)
PARAMETER
1Hz Frequency Tolerance
SYMBOL
Df/fOUT
CONDITIONS
MIN
TYP
Measured over R 10s interval
MAX
UNITS
Q5
ppm
1Hz Frequency Stability vs. VCC
Voltage
Df/V
Timekeeping Accuracy
tKA
Q0.432
Seconds/
Day
Df/fOUT
Q2.5
%
32kHz Frequency Tolerance
ppm/V
Q1
DC ELECTRICAL CHARACTERISTICS—GENERAL
(VCC = +2.3V to +5.5V, TA = -40NC to +85NC, unless otherwise noted. Typical values are at VCC = +3.3V, VBAT = +3.0V, and TA =
+25NC, unless otherwise noted.)
PARAMETER
SYMBOL
Active Supply Current
(I2C Active: Includes
Temperature Conversion Current)
ICCA
Standby Supply Current
(I2C Inactive: Includes
Temperature Conversion Current)
ICCS
Temperature Conversion Current
(I2C Inactive)
ICCSCONV
2
CONDITIONS
MIN
TYP
MAX
VCC = +3.63V
200
VCC = VCCMAX
300
VCC = +3.63V
130
VCC = VCCMAX
200
VCC = +3.63V
575
VCC = VCCMAX
650
UNITS
µA
µA
µA
±5ppm, I2C Real-Time Clock
(VCC = +2.3V to +5.5V, TA = -40NC to +85NC, unless otherwise noted. Typical values are at VCC = +3.3V, VBAT = +3.0V, and TA =
+25NC, unless otherwise noted.)
PARAMETER
SYMBOL
MIN
TYP
MAX
UNITS
2.45
2.575
2.70
V
IOL = 3mA
0.4
V
IOL = 1mA
0.4
V
-0.1
+0.1
µA
ILI
-0.1
+0.1
µA
IOL
-200
+10
µA
100
nA
Power-Fail Voltage
VPF
Logic 0 Output
(32KHZ, INT/SQW, SDA)
VOL
Logic 0 Output
(RST)
VOL
Output Leakage
(32KHZ, INT/SQW, SDA)
ILO
Input Leakage
(SCL)
RST I/O Leakage
VBAT Leakage
Temperature Accuracy
CONDITIONS
IBATLKG
TEMPACC
25
VCC or VBAT = +3.3V
Q3
NC
Temperature Conversion Time
tCONV
10
ms
Pushbutton Debounce
ms
PBDB
250
Reset Active Time
tRST
250
Oscillator Stop Flag (OSF) Delay
tOSF
(Note 2)
125
ms
200
ms
DC ELECTRICAL CHARACTERISTICS—VBAT CURRENT CONSUMPTION
(VCC = 0V, VBAT = +2.3V to +5.5V, TA = -40NC to +85NC, unless otherwise noted. Typical values are at VCC = 0V, VBAT = +3.0V,
and TA = +25NC, unless otherwise noted.)
PARAMETER
SYMBOL
Active Battery Current
(I2C Active) (Note 3)
IBATA
Timekeeping Battery Current
(I2C Inactive) (Note 3)
IBATT
Temperature Conversion Current
(I2C Inactive)
IBATTC
Data Retention Current
(Oscillator Stopped and I2C
Inactive)
IBATDR
CONDITIONS
MIN
TYP
MAX
VBAT = +3.63V
70
VBAT = VBATMAX
150
VBAT = +3.63V, EN32KHZ = 0
2
3.0
VBAT = VBATMAX, EN32KHZ = 0
2
3.5
UNITS
µA
µA
VBAT = +3.63V
575
VBAT = VBATMAX
650
TA = +25NC
100
nA
MAX
UNITS
µA
AC ELECTRICAL CHARACTERISTICS—POWER SWITCH
(TA = -40NC to +85NC, unless otherwise noted.) (Figure 2)
PARAMETER
SYMBOL
CONDITIONS
MIN
TYP
VCC Fall Time, VPFMAX to
VPFMIN
tVCCF
300
Fs
VCC Rise Time, VPFMIN to
VPFMAX
tVCCR
0
Fs
Recovery at Power-Up
tREC
(Note 4)
250
300
ms
3
DS3231M
DC ELECTRICAL CHARACTERISTICS—GENERAL (continued)
DS3231M
±5ppm, I2C Real-Time Clock
AC ELECTRICAL CHARACTERISTICS—I2C INTERFACE
(VCC or VBAT = +2.3V to +5.5V, TA = -40NC to +85NC, unless otherwise noted. Typical values are at VCC = +3.3V, VBAT = +3.0V,
and TA = +25NC, unless otherwise noted.) (Note 5, Figure 1)
PARAMETER
SYMBOL
CONDITIONS
MIN
TYP
MAX
UNITS
400
kHz
SCL Clock Frequency
fSCL
0
Bus Free Time Between STOP
and START Conditions
tBUF
1.3
Fs
Hold Time (Repeated) START
Condition
tHD:STA
0.6
Fs
Low Period of SCL
tLOW
1.3
Fs
High Period of SCL
tHIGH
0.6
Data Hold Time
tHD:DAT
0
Data Set-Up Time
tSU:DAT
100
ns
START Set-Up Time
tSU:STA
0.6
Fs
SDA and SCL Rise Time
tR
(Note 6)
20 +
0.1CB
300
ns
SDA and SCL Fall Time
tF
(Note 6)
20 +
0.1CB
300
ns
STOP Set-Up Time
SDA, SCL Input Capacitance
tSU:STO
CBIN
Fs
0.9
0.6
Fs
Fs
10
pF
All voltages are referenced to ground.
The parameter tOSF is the period of time the oscillator must be stopped for the OSF flag to be set.
Includes the temperature conversion current (averaged).
This delay applies only if the oscillator is enabled. If the EOSC bit is 1, tREC is bypassed and RST immediately goes high.
The state of RST does not affect the I2C interface or RTC functions.
Note 5: Interface timing shown is for fast-mode (400kHz) operation. This device is also backward-compatible with standard mode
I2C timing.
Note 6: CB: Total capacitance of one bus line in picofarads.
Note
Note
Note
Note
4
1:
2:
3:
4:
±5ppm, I2C Real-Time Clock
SDA
tBUF
tF
tLOW
tHD:STA
tSP
SCL
tHD:STA
tHIGH
tR
tHD:DAT
STOP
START
tSU:STA
tSU:STO
tSU:DAT
REPEATED
START
NOTE: TIMING IS REFERENCED TO VILMAX AND VIHMIN.
Figure 1. I2C Timing
tVCCF
tVCCR
VPFMAX
VPFMIN
VCC
tREC
RST
Figure 2. Power Switch Timing
RST
PBDB
tRST
Figure 3. Pushbutton Reset Timing
5
DS3231M
Timing Diagrams
Typical Operating Characteristics
(TA = +25°C, unless otherwise noted.)
+85°C
120
110
100
+25°C
90
-40°C
80
INCREASE BELOW VPF
DUE TO INTERNAL PULLUP
RESISTOR ON RST
70
60
+25°C
2.5
2.0
-40°C
1.0
3
2
4
5
6
4
5
6
INT/SQW OUTPUT VOLTAGE
vs. OUTPUT CURRENT
RST OUTPUT VOLTAGE
vs. OUTPUT CURRENT
0.5
0.2
VCC = 2.45V,
VBAT = 3.0V,
TA = +25°C
0.4
OUTPUT VOLTAGE (V)
0.3
0.1
DS3231M toc04
SUPPLY VOLTAGE (V)
VCC = 2.3V,
VBAT = 0V,
TA = +25°C
0.4
3
2
SUPPLY VOLTAGE (V)
DS3231M toc03
0.5
OUTPUT VOLTAGE (V)
+85°C
3.0
1.5
50
0.3
0.2
0.1
0
0
4
6
8
0
1
2
3
4
OUTPUT CURRENT (mA)
OUTPUT CURRENT (mA)
RST OUTPUT VOLTAGE
vs. POWER SUPPLY VOLTAGE
FREQUENCY ERROR
vs. TEMPERATURE
VBAT = 3.0V,
TA = +25°C
5
10
10
4
3
TRACKS WITH VCC
2
VCC = 3.3V
8
FREQUENCY ERROR (ppm)
6
2
DS3231M toc05
0
5
6
4
LIMITS
2
0
-2
-4
-6
1
-8
-10
0
0
2
4
SUPPLY VOLTAGE (V)
6
VCC = 0V, EN32KHZ = 1, BBSQW = 0
3.5
DS3231M toc06
SUPPLY CURRENT (µA)
130
4.0
SUPPLY CURRENT (µA)
VBAT = 2.3V, EN32KHZ = 1, IOUT = 0mA
140
DS3231M toc01
150
BATTERY-SUPPLY CURRENT
vs. BATTERY-SUPPLY VOLTAGE
DS3231M toc02
POWER-SUPPLY CURRENT
vs. POWER-SUPPLY VOLTAGE
OUTPUT VOLTAGE (V)
DS3231M
±5ppm, I2C Real-Time Clock
6
-50
0
50
TEMPERATURE (°C)
100
±5ppm, I2C Real-Time Clock
TOP VIEW
32KHZ 1
+
16 SCL
VCC 2
15 SDA
INT/SQW 3
14 VBAT
TOP VIEW
32KHZ
1
13 GND
VCC
2
N.C. 5
12 N.C.
INT/SQW
N.C. 6
11 N.C.
RST
N.C. 7
10 N.C.
N.C. 8
9
RST 4
DS3231M
+
8 SCL
7
SDA
3
6
VBAT
4
5
GND
DS3231M
SO
N.C.
SO
Pin Description
PIN
NAME
FUNCTION
8 SO
16 SO
1
1
32KHZ
32.768kHz Output (50% Duty Cycle). This open-drain pin requires an external pullup resistor.
When enabled with the EN32KHZ bit in the Status register (0Fh), this output operates on either
power supply. This pin can be left open circuit if not used.
2
2
VCC
DC Power Pin for Primary Power Supply. This pin should be decoupled using a 0.1FF to 1.0FF
capacitor. Connect to ground if not used.
INT/
SQW
Active-Low Interrupt or 1Hz Square-Wave Output. This open-drain pin requires an external pullup
resistor connected to a supply at 5.5V or less. It can be left open if not used. This multifunction
pin is determined by the state of the INTCN bit in the Control register (0Eh). When INTCN is set to
logic 0, this pin outputs a 1Hz square wave. When INTCN is set to logic 1, a match between the
timekeeping registers and either of the alarm registers activates the INT/SQW pin (if the alarm is
enabled). Because the INTCN bit is set to logic 1 when power is first applied, the pin defaults to
an interrupt output with alarms disabled.
RST
Active-Low Reset. This pin is an open-drain input/output. It indicates the status of VCC relative
to the VPF specification. As VCC falls below VPF, the RST pin is driven low. When VCC exceeds
VPF, for tRST, the RST pin is pulled high by the internal pullup resistor. The active-low, open-drain
output is combined with a debounced pushbutton input function. This pin can be activated by a
pushbutton reset request. It has an internal 50kI (RPU) nominal value pullup resistor to VCC. No
external pullup resistors should be connected. If the oscillator is disabled, tREC is bypassed and
RST immediately goes high.
3
3
4
4
—
5–12
N.C.
No Connection. These pins must be connected to ground.
5
13
GND
Ground
VBAT
Backup Power-Supply Input. When using the device with the VBAT input as the primary power
source, this pin should be decoupled using a 0.1FF to 1.0FF low-leakage capacitor. When using the
device with the VBAT input as the backup power source, the capacitor is not required. If VBAT is not
used, connect to ground. The device is UL recognized to ensure against reverse charging when
used with a primary lithium battery. Go to www.maxim-ic.com/qa/info/ul for more information.
6
14
7
DS3231M
Pin Configuration
±5ppm, I2C Real-Time Clock
DS3231M
Pin Description (continued)
PIN
NAME
FUNCTION
15
SDA
Serial-Data Input/Output. This pin is the data input/output for the I2C serial interface. This open-drain
pin requires an external pullup resistor. The pullup voltage can be up to 5.5V, regardless of the voltage on VCC.
16
SCL
Serial-Clock Input. This pin is the clock input for the I2C serial interface and is used to synchronize
data movement on the serial interface. The pullup voltage can be up to 5.5V, regardless of the
voltage on VCC.
8 SO
16 SO
7
8
Block Diagram
32KHZ
DIVIDER
N
DS3231M
INT/SQW
1Hz
TIME-BASE
RESONATOR
VBAT
VCC
RPU
POWER
CONTROL
INTERRUPT
OR 1Hz
SELECT
N
DIGITAL
ADJUSTMENT
RST
TEMP
SENSOR
N
FACTORY TRIM
GND
SDA
SCL
I2C
INTERFACE
CONTROL AND STATUS
REGISTERS
Detailed Description
The DS3231M is a serial real-time clock (RTC) driven by
an internal, temperature-compensated, microelectromechanical systems (MEMS) resonator. The oscillator provides a stable and accurate reference clock and maintains the RTC to within Q0.432 seconds-per-day accuracy from -40NC to +85NC. The RTC is a low-power clock/
calendar with two programmable time-of-day alarms. INT/
SQW provides either an interrupt signal due to alarm
conditions or a 1Hz square wave. The clock/calendar
provides seconds, minutes, hours, day, date, month,
and year information. The date at the end of the month
is automatically adjusted for months with fewer than
8
CLOCK/CALENDAR
WITH ALARM
31 days, including corrections for leap year. The clock
operates in either the 24-hour or 12-hour format with an
AM/PM indicator. The internal registers are accessible
though an I2C bus interface. A temperature-compensated voltage reference and comparator circuit monitors the
level of VCC to detect power failures and to automatically
switch to the backup supply when necessary. The RST
pin provides an external pushbutton function and acts as
an indicator of a power-fail event.
Operation
The Block Diagram shows the device’s main elements.
Each of the major blocks is described separately in the
following sections.
±5ppm, I2C Real-Time Clock
The temperature sensor, oscillator, and digital adjustment controller logic form the highly accurate time base.
The controller reads the output of the on-board temperature sensor and adjusts the final 1Hz output to maintain
the required accuracy. The device is trimmed at the
factory to maintain a tight accuracy over the operating
temperature range. When the device is powered by VCC,
the adjustment occurs once a second. When the device
is powered by VBAT, the adjustment occurs once every
10s to conserve power. Adjusting the 1Hz time base less
often does not affect the device’s long-term timekeeping
accuracy. The device also contains an Aging Offset register that allows a constant offset (positive or negative) to
be added to the factory-trimmed adjustment value.
VCC
VBAT
Figure 4. Single Supply (VCC Only)
VCC
Power-Supply Configurations
The DS3231M can be configured to operate on a single
power supply (using either VCC or VBAT) or in a dualsupply configuration, which provides a backup supply
source to keep the timekeeping circuits alive during
absence of primary system power.
VBAT
Figure 4 illustrates a single-supply configuration using
VCC only, with the VBAT input grounded. When VCC < VPF,
the RST output is asserted (active low). Temperature
conversions are executed once per second.
Figure 5. Single Supply (VBAT Only)
Figure 5 illustrates a single-supply configuration using
VBAT only, with the VCC input grounded. The RST output
is disabled and is held at ground through the connection
of the internal pullup resistor. Temperature conversions
are executed once every 10s.
+3.3V
VCC
Figure 6 illustrates a dual-supply configuration, using
the VCC supply for normal system operation and the
VBAT supply for backup power. In this configuration, the
power-selection function is provided by a temperaturecompensated voltage reference and a comparator circuit
that monitors the VCC level. When VCC is greater than
VPF, the device is powered by VCC. When VCC is less
than VPF but greater than VBAT, the device is powered
VBAT
Figure 6. Dual Power Supply
Table 1. Power Control
CONFIGURATION
CONDITION
VCC Only
(Figure 4)
VCC > VPF
VBAT Only
(Figure 5)
EOSC = 0
Dual Supply
(Figure 6)
VCC < VPF
EOSC = 1
VCC > VPF
VCC < VPF
I/O ACTIVE
I/O INACTIVE
ICCA
ICCS
Active (Low)
IBATT
IBATA
Disabled (Low)
IBATDR
ICCA
RST
Inactive (High)
ICCS
Inactive (High)
VCC > VBAT
ICCA
VCC > VBAT
ICCS
VCC < VBAT
IBATA
VCC < VBAT
IBATT
Active (Low)
9
DS3231M
High-Accuracy Time Base
+3.3V
DS3231M
±5ppm, I2C Real-Time Clock
by VCC. If VCC is less than VPF and is less than VBAT, the
device is powered by VBAT (see Table 1).
When VCC < VPF, the RST output is asserted (active
low). When VCC is the presently selected power source,
temperature conversions are executed once per second.
When VBAT is the presently selected power source, temperature conversions are executed once every 10s.
To preserve the battery, the first time VBAT is applied
to the device the oscillator does not start up until VCC
exceeds VPF or until a valid I2C address is written to
the device. Typical oscillator startup time is less than
1s. Approximately 2s after VCC is applied, or a valid
I2C address is written, the device makes a temperature
measurement and applies the calculated correction to
the oscillator. Once the oscillator is running, it continues
to run as long as a valid power source is available (VCC
or VBAT), and the device continues to measure the temperature and correct the oscillator frequency. On the first
application of VCC power, or (if VBAT powered) when a
valid I2C address is written to the device, the time and
date registers are reset to 01/01/00 01 00:00:00 (MM/DD/
YY DOW HH:MM:SS).
VBAT Operation
There are several modes of operation that affect the
amount of VBAT current that is drawn. While the device
is powered by VBAT and the serial interface is active,
the active battery current IBATA is drawn. When the
serial interface is inactive, the timekeeping current IBATT
(which includes the averaged temperature-conversion
current IBATTC) is used. The temperature-conversion
current IBATTC is specified since the system must be
able to support the periodic higher current pulse and
still maintain a valid voltage level. The data-retention
current IBATDR is the current drawn by the device when
the oscillator is stopped (EOSC = 1). This mode can be
used to minimize battery requirements for periods when
maintaining time and date information is not necessary,
e.g., while the end system is waiting to be shipped to a
customer.
Pushbutton Reset Function
The device provides for a pushbutton switch to be connected to the RST input/output pin. When the device is
not in a reset cycle, it continuously monitors RST for a
low-going edge. If an edge transition is detected, the
device debounces the switch by pulling RST low. After
the internal timer has expired (PBDB), the device continues to monitor the RST line. If the line is still low, the
device continuously monitors the line looking for a rising
10
edge. Upon detecting release, the device forces RST
low and holds it low for tRST. RST is also used to indicate
a power-fail condition. When VCC is lower than VPF, an
internal power-fail signal is generated, which forces RST
low. When VCC returns to a level above VPF, RST is held
low for approximately 250ms (tREC) to allow the power
supply to stabilize. If the oscillator is not running when
VCC is applied, tREC is bypassed and RST immediately goes high. Assertion of the RST output, whether by
pushbutton or power-fail detection, does not affect the
device’s internal operation. RST output operation and
pushbutton monitoring are only available if VCC power
is available.
Real-Time Clock (RTC)
With the 1Hz source from the temperature-compensated
oscillator, the RTC provides seconds, minutes, hours,
day, date, month, and year information. The date at the
end of the month is automatically adjusted for months
with fewer than 31 days, including corrections for leap
year. The clock operates in either the 24-hour or the
12-hour format with an AM/PM indicator. The clock provides two programmable time-of-day alarms. INT/SQW
can be enabled to generate either an interrupt due to an
alarm condition or a 1Hz square wave. This selection is
controlled by the INTCN bit in the Control register.
I2C Interface
The I2C interface is accessible whenever either VCC or
VBAT is at a valid level. If a microcontroller connected
to the device resets because of a loss of VCC or other
event, it is possible that the microcontroller and device’s
I2C communications could become unsynchronized,
e.g., the microcontroller resets while reading data from
the device. When the microcontroller resets, the device’s
I2C interface can be placed into a known state by toggling SCL until SDA is observed to be at a high level. At
that point the microcontroller should pull SDA low while
SCL is high, generating a START condition.
Address Map
Table 2 shows the address map for the device’s timekeeping registers. During a multibyte access, when the
address pointer reaches the end of the register space
(12h), it wraps around to location 00h. On an I2C START
or address pointer incrementing to location 00h, the current time is transferred to a second set of registers. The
time information is read from these secondary registers,
while the clock can continue to run. This eliminates the
need to reread the registers in case the main registers
update during a read.
±5ppm, I2C Real-Time Clock
ADDRESS
BIT 7
MSB
00h
0
10 Seconds
01h
0
10 Minutes
02h
0
12/24
20
Hours
03h
0
0
0
04h
0
0
05h
Century
0
BIT 6
BIT 5
AM/PM
06h
BIT 4
BIT 3
BIT 2
0
RANGE
Seconds
Seconds
00–59
Minutes
Minutes
00–59
Hour
Hours
1–12 +
AM/PM
00–23
0
Day
1–7
Date
Day
Date
01–31
Month
Month/Century
01–12 +
Century
Year
Year
00–99
10 Date
10
Month
0
BIT 0
LSB
FUNCTION
10
Hours
BIT 1
10 Year
07h
A1M1
10 Seconds
Seconds
Alarm 1
Seconds
00–59
08h
A1M2
10 Minutes
Minutes
Alarm 1
Minutes
00–59
Hour
Alarm 1 Hours
1–12 +
AM/PM
00–23
AM/PM
10
Hours
09h
A1M3
12/24
0Ah
A1M4
DY/DT
0Bh
A2M2
0Ch
A2M3
12/24
0Dh
A2M4
DY/DT
0Eh
EOSC
OSF
BBSQW
CONV
NA
NA
INTCN
A2IE
0Fh
0
0
0
EN32KHZ
BSY
A2F
10h
SIGN
DATA
DATA
DATA
DATA
DATA
DATA
20
Hours
Day
Alarm 1 Day
1–7
Date
Alarm 1 Date
1–31
Minutes
Alarm 2
Minutes
00–59
Hour
Alarm 2 Hours
1–12 +
AM/PM
00–23
10 Date
10 Minutes
AM/PM
20
Hours
10
Hours
10 Date
Day
Alarm 2 Day
1–7
Date
Alarm 2 Date
1–31
A1IE
Control
—
A1F
Status
—
DATA
Aging Offset
—
—
—
11h
SIGN
DATA
DATA
DATA
DATA
DATA
DATA
DATA
Temperature
MSB
12h
DATA
DATA
0
0
0
0
0
0
Temperature
LSB
Note: Unless otherwise specified, the registers’ state is not defined when power is first applied.
Clock and Calendar
The time and calendar information is obtained by reading the appropriate register bytes. Table 2 shows the
RTC registers. The time and calendar data are set or
initialized by writing the appropriate register bytes. The
contents of the time and calendar registers are in the
binary-coded decimal (BCD) format. The device can
be run in either 12-hour or 24-hour mode. Bit 6 of the
Hours register is defined as the 12-hour or 24-hour mode
select bit. When high, the 12-hour mode is selected. In
the 12-hour mode, bit 5 is the AM/PM bit with logic-high
being PM. In the 24-hour mode, bit 5 is the 20-hour bit
(20–23 hours). The century bit (bit 7 of the Month register) is toggled when the Years register overflows from 99
11
DS3231M
Table 2. Timekeeping Registers
DS3231M
±5ppm, I2C Real-Time Clock
to 00. The day-of-week register increments at midnight.
Values that correspond to the day of week are userdefined but must be sequential (i.e., if 1 equals Sunday,
then 2 equals Monday, and so on). Illogical time and
date entries result in undefined operation. When reading
or writing the time and date registers, secondary buffers
are used to prevent errors when the internal registers
update. When reading the time and date registers, the
secondary buffers are synchronized to the internal registers on any I2C START and when the register pointer
rolls over to zero. The time information is read from these
secondary registers, while the clock continues to run.
This eliminates the need to reread the registers in case
the main registers update during a read. The countdown
chain is reset whenever the seconds register is written. Write transfers occur on the acknowledge from the
device. Once the countdown chain is reset, to avoid rollover issues the remaining time and date registers must
be written within 1s.
Alarms
The device contains two time-of-day/date alarms. Alarm
1 can be set by writing to registers 07h–0Ah. Alarm
2 can be set by writing to registers 0Bh–0Dh. See
Table 2. The alarms can be programmed (by the alarm
enable and INTCN bits in the Control register) to activate the INT/SQW output on an alarm match condition.
Bit 7 of each of the time-of-day/date alarm registers are
mask bits (Table 2). When all the mask bits for each
alarm are logic 0, an alarm only occurs when the values
in the timekeeping registers match the corresponding
values stored in the time-of-day/date alarm registers.
The alarms can also be programmed to repeat every
second, minute, hour, day, or date. Table 3 shows the
possible settings. Configurations not listed in the table
result in illogical operation. The DY/DT bits (bit 6 of the
alarm day/date registers) control whether the alarm
value stored in bits 0–5 of that register reflects the day
of the week or the date of the month. If DY/DT is written
to logic 0, the alarm is the result of a match with date of
the month. If DY/DT is written to logic 1, the alarm is the
result of a match with day of the week. When the RTC
register values match alarm register settings, the corresponding alarm flag A1F or A2F bit is set to logic 1. If
the corresponding alarm interrupt enable A1IE or A2IE
bit is also set to logic 1, the alarm condition activates
the INT/SQW signal if the INTCN bit is set to logic 1. The
match is tested on the once-per-second update of the
time and date registers.
Table 3. Alarm Mask Bits
DY/DT
ALARM RATE
A1M3
A1M2
A1M1
X
1
1
1
1
Alarm once a second
X
1
1
1
0
Alarm when seconds match
X
1
1
0
0
Alarm when minutes and seconds match
X
1
0
0
0
Alarm when hours, minutes, and seconds match
0
0
0
0
0
Alarm when date, hours, minutes, and seconds match
1
0
0
0
0
Alarm when day, hours, minutes, and seconds match
DY/DT
12
ALARM 1 REGISTER MASK BITS (BIT 7)
A1M4
ALARM 2 REGISTER MASK BITS (BIT 7)
ALARM RATE
A2M4
A2M3
A2M2
X
1
1
1
Alarm once per minute (00 seconds of every minute)
X
1
1
0
Alarm when minutes match
X
1
0
0
Alarm when hours and minutes match
0
0
0
0
Alarm when date, hours, and minutes match
1
0
0
0
Alarm when day, hours, and minutes match
±5ppm, I2C Real-Time Clock
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
ESOC
0
BBSQW
CONV
NA
NA
INTCN
A2IE
A1IE
0
0
1
1
1
0
0
BIT 7
ESOC: Enable oscillator. When set to logic 0, the oscillator is started. When set to logic 1, the oscillator is
stopped when the device switches to VBAT. This bit is clear (logic 0) when power is first applied. When the
device is powered by VCC, the oscillator is always on regardless of the status of the EOSC bit. When the oscillator is disabled, all register data is static.
BIT 6
BBSQW: Battery-backed square-wave enable. When set to logic 1 with INTCN = 0 and VCC < VPF, this bit
enables the 1Hz square wave. When BBSQW is logic 0, INT/SQW goes high impedance when VCC falls below
VPF. This bit is disabled (logic 0) when power is first applied.
BIT 5
CONV: Convert temperature. Setting this bit to 1 forces the temperature sensor to convert the temperature
into digital code and execute the temperature compensate algorithm to update the oscillator’s accuracy. The
device cannot be forced to execute the temperature-compensate algorithm faster than once per second. A
user-initiated temperature conversion does not affect the internal update cycle. The CONV bit remains at a 1
from the time it is written until the temperature conversion is completed, at which time both CONV and BSY go
to 0. The CONV bit should be used when monitoring the status of a user-initiated conversion. See Figure 7 for
more details.
BITS 4:3
NA: Not applicable. These bits have no affect on the device and can be set to either 0 or 1.
BIT 2
INTCN: Interrupt control. This bit controls the INT/SQW output signal. When the INTCN bit is set to logic 0, a
1Hz square wave is output on INT/SQW. When the INTCN bit is set to logic 1, a match between the timekeeping registers and either of the alarm registers activates the INT/SQW output (if the alarm is also enabled). The
corresponding alarm flag is always set regardless of the state of the INTCN bit. The INTCN bit is set to a logic
1 when power is first applied.
BIT 1
A2IE: Alarm 2 interrupt enable. When set to logic 1, this bit permits the alarm 2 flag (A2F) bit in the status register to assert INT/SQW (when INTCN = 1). When the A2IE bit is set to logic 0 or INTCN is set to logic 0, the
A2F bit does not initiate an interrupt signal. The A2IE bit is disabled (logic 0) when power is first applied.
BIT 0
A1IE: Alarm 1 interrupt enable. When set to logic 1, this bit permits the alarm 1 flag (A1F) bit in the status register to assert INT/SQW (when INTCN = 1). When the A1IE bit is set to logic 0 or INTCN is set to logic 0, the
A1F bit does not initiate an interrupt signal. The A1IE bit is disabled (logic 0) when power is first applied.
13
DS3231M
Control Register (0Eh)
DS3231M
±5ppm, I2C Real-Time Clock
VCC POWERED
INTERNAL 1Hz
CLOCK
BSY
CONV
THE USER SETS THE CONV BIT
THE DEVICE CLEARS THE CONV BIT
AFTER THE TEMPERATURE CONVERSION
HAS COMPLETED
BSY IS HIGH DURING
THE TEMPERATURE CONVERSION
VBAT POWERED
10 SECONDS
INTERNAL 1Hz
CLOCK
BSY
CONV
THE USER SETS THE CONV BIT
Figure 7. CONV Control Bit and BSY Status Bit Operation
14
THE DEVICE CLEARS THE CONV BIT
AFTER THE TEMPERATURE CONVERSION
HAS COMPLETED
±5ppm, I2C Real-Time Clock
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
OSF
0
0
0
EN32KHZ
BSY
A2F
A1F
1
0
0
0
1
X
X
X
OSF: Oscillator stop flag. A logic 1 in this bit indicates that the oscillator either is stopped or was stopped for
some period and could be used to judge the validity of the timekeeping data. This bit is set to logic 1 any time
that the oscillator stops. This bit remains at logic 1 until written to logic 0. The following are examples of
BIT 7
BITS 6:4
conditions that can cause the OSF bit to be set:
1) The first time power is applied.
2) The voltages present on both VCC and VBAT are insufficient to support the oscillator.
3) The EOSC bit is turned off in battery-backed mode.
4) External influences on the oscillator (i.e., noise, leakage, etc.).
Unused (0). These bits have no meaning and are fixed at 0 when read.
BIT 3
EN32KHZ: Enabled 32.768kHz output. This bit enables and disables the 32KHZ output. When set to a logic 0,
the 32KHZ output is high impedance. On initial power-up, this bit is set to a logic 1 and the 32KHZ output is
enabled and produces a 32.768kHz square wave if the oscillator is enabled.
BIT 2
BSY: Busy. This bit indicates the device is busy executing temperature conversion function. It goes to logic 1
when the conversion signal to the temperature sensor is asserted, and then it is cleared when the device has
completed the temperature conversion. See the Block Diagram for more details.
BIT 1
A2F: Alarm 2 flag. A logic 1 in the alarm 2 flag bit indicates that the time matched the alarm 2 registers. If the
A2IE bit is logic 1 and the INTCN bit is set to logic 1, INT/SQW is also asserted. A2F is cleared when written to
logic 0. This bit can only be written to logic 0. Attempting to write to logic 1 leaves the value unchanged.
BIT 0
A1F: Alarm 1 flag. A logic 1 in the alarm 1 flag bit indicates that the time matched the alarm 1 registers. If the
A1IE bit is logic 1 and the INTCN bit is set to logic 1, INT/SQW is also asserted. A1F is cleared when written to
logic 0. This bit can only be written to logic 0. Attempting to write to logic 1 leaves the value unchanged.
Aging Offset Register (10h)
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
SIGN
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0
0
0
0
0
0
0
0
The Aging Offset register takes a user-provided value to add to or subtract from the factory-trimmed value that adjusts the
accuracy of the time base. Use of the Aging Offset register is not needed to achieve the accuracy as defined in the Electrical
Characteristics tables.
The Aging Offset code is encoded in two’s complement, with bit 7 representing the SIGN bit. One LSB typically represents a
0.12ppm change in frequency. The change in ppm per LSB is the same over the operating temperature range. Positive offsets
slow the time base and negative offsets quicken the time base.
15
DS3231M
Status Register (0Fh)
DS3231M
±5ppm, I2C Real-Time Clock
Temperature Registers (11h-12h)
Temperature Register (Upper Byte = 11h)
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
SIGN
DATA
DATA
DATA
DATA
DATA
DATA
DATA
0
0
0
0
0
0
0
0
Temperature Register (Lower Byte = 12h)
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
DATA
DATA
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Temperature is represented as a 10-bit code with a resolution of 0.25°C and is accessible at location 11h and 12h. The temperature is encoded in two’s complement format. The upper 8 bits, the integer portion, are at location 11h and the lower 2 bits,
the fractional portion, are at location 12h. For example, 00011001 01b = +25.25°C. Upon power reset, the registers are set to
a default temperature of 0°C and the controller starts a temperature conversion. The temperature is read upon initial application of VCC or I2C access on VBAT and once every second afterwards with VCC power or once every 10s with VBAT power. The
Temperature registers are also updated after each user-initiated conversion and are read only.
I2C Serial Port Operation
I2C Slave Address
The device’s slave address byte is D0h. The first byte
sent to the device includes the device identifier, device
address, and the R/W bit (Figure 8). The device address
sent by the I2C master must match the address assigned
to the device.
I2C Definitions
The following terminology is commonly used to describe
I2C data transfers.
Master Device: The master device controls the slave
devices on the bus. The master device generates
SCL clock pulses and START and STOP conditions.
Slave Devices: Slave devices send and receive data
at the master’s request.
LSB
MSB
1
1
0
1
DEVICE
IDENTIFIER
Figure 8. I2C Slave Address Byte
16
0
0
0
R/W
READ/
WRITE BIT
Bus Idle or Not Busy: Time between STOP and
START conditions when both SDA and SCL are
inactive and in their logic-high states. When the bus
is idle, it often initiates a low-power mode for slave
devices.
START Condition: A START condition is generated
by the master to initiate a new data transfer with a
slave. Transitioning SDA from high to low while SCL
remains high generates a START condition. See
Figure 1 for applicable timing.
STOP Condition: A STOP condition is generated
by the master to end a data transfer with a slave.
Transitioning SDA from low to high while SCL remains
high generates a STOP condition. See Figure 1 for
applicable timing.
Repeated START Condition: The master can use
a repeated START condition at the end of one data
transfer to indicate that it immediately initiates a new
data transfer following the current one. Repeated
STARTs are commonly used during read operations
to identify a specific memory address to begin a data
transfer. A repeated START condition is issued identically to a normal START condition. See Figure 1 for
applicable timing.
±5ppm, I2C Real-Time Clock
Bit Read: At the end of a write operation, the master
must release the SDA bus line for the proper amount
of setup time (see Figure 1) before the next rising
edge of SCL during a bit read. The device shifts out
each bit of data on SDA at the falling edge of the
previous SCL pulse and the data bit is valid at the
rising edge of the current SCL pulse. Remember that
the master generates all SCL clock pulses including
when it is reading bits from the slave.
Acknowledge (ACK and NACK): An acknowledge
(ACK) or not acknowledge (NACK) is always the
ninth bit transmitted during a byte transfer. The
device receiving data (the master during a read or
the slave during a write operation) performs an ACK
by transmitting a 0 during the ninth bit. A device performs a NACK by transmitting a 1 during the ninth bit.
Timing for the ACK and NACK is identical to all other
bit writes. An ACK is the acknowledgment that the
device is properly receiving data. A NACK is used to
terminate a read sequence or as an indication that the
device is not receiving data.
Byte Write: A byte write consists of 8 bits of information transferred from the master to the slave (most
significant bit first) plus a 1-bit acknowledgment from
the slave to the master. The 8 bits transmitted by the
master are done according to the bit write definition
and the acknowledgment is read using the bit read
definition.
Byte Read: A byte read is an 8-bit information transfer
from the slave to the master plus a 1-bit ACK or NACK
from the master to the slave. The 8 bits of information
that are transferred (most significant bit first) from the
slave to the master are read by the master using the
bit read definition, and the master transmits an ACK
using the bit write definition to receive additional data
bytes. The master must NACK the last byte read to
terminate communication so the slave returns control
of SDA to the master.
Slave Address Byte: Each slave on the I2C bus
responds to a slave address byte sent immediately
following a START condition. The slave address byte
contains the slave address in the most significant 7
bits and the R/W bit in the least significant bit. The
device’s slave address is D0h and cannot be modified by the user. When the R/W bit is 0 (such as in
D0h), the master is indicating it writes data to the
slave. If R/W = 1 (D1h in this case), the master is
indicating it wants to read from the slave. If an incorrect slave address is written, the device assumes the
master is communicating with another I2C device
and ignore the communication until the next START
condition is sent.
Memory Address: During an I2C write operation, the
master must transmit a memory address to identify
the memory location where the slave is to store the
data. The memory address is always the second byte
transmitted during a write operation following the
slave address byte.
I2C Communication
See Figure 9 for an I2C communication example.
Writing a Single Byte to a Slave: The master must
generate a START condition, write the slave address
byte (R/W = 0), write the memory address, write
the byte of data, and generate a STOP condition.
Remember the master must read the slave’s acknowledgment during all byte write operations.
Writing Multiple Bytes to a Slave: To write multiple
bytes to a slave, the master generates a START condition, writes the slave address byte (R/W = 0), writes
the starting memory address, writes multiple data
bytes, and generates a STOP condition.
Reading a Single Byte from a Slave: Unlike the write
operation that uses the specified memory address
byte to define where the data is to be written, the read
operation occurs at the present value of the memory
address counter. To read a single byte from the slave,
the master generates a START condition, writes the
slave address byte with R/W = 1, reads the data byte
with a NACK to indicate the end of the transfer, and
generates a STOP condition. However, since requiring the master to keep track of the memory address
counter is impractical, use the method for manipulating the address counter for reads.
Manipulating the Address Counter for Reads: A
dummy write cycle can be used to force the address
counter to a particular value. To do this the master generates a START condition, writes the slave
address byte (R/W = 0), writes the memory address
where it desires to read, generates a repeated START
condition, writes the slave address byte (R/W = 1),
17
DS3231M
Bit Write: Transitions of SDA must occur during
the low state of SCL. The data on SDA must remain
valid and unchanged during the entire high pulse of
SCL plus the setup and hold time requirements (see
Figure 1). Data is shifted into the device during the
rising edge of the SCL.
DS3231M
±5ppm, I2C Real-Time Clock
TYPICAL I2C WRITE TRANSACTION
MSB
START
1
LSB
1
0
1
0
0
0
R/W
MSB
SLAVE
ACK
b7
LSB
b6
READ/
WRITE
SLAVE
ADDRESS
b5
b4
b3
b2
b1
b0
MSB
SLAVE
ACK
b7
LSB
b6
b5
b4
REGISTER ADDRESS
b3
b2
b1
b0
SLAVE
ACK
STOP
DATA
EXAMPLE I2C TRANSACTIONS
D0h
A) SINGLE BYTE WRITE
-WRITE CONTROL REGISTER
TO 44h
START
11010000
D0h
B) SINGLE BYTE READ
-READ CONTROL REGISTER
START 1 1 0 1 0 0 0 0
0Eh
SLAVE
00001110
ACK
0Eh
SLAVE
SLAVE
00001110
ACK
ACK
D0h
C) MULTIBYTE WRITE
-WRITE DATE REGISTER
TO "02" AND MONTH
REGISTER TO "11"
D) MULTIBYTE READ
-READ ALARM 2 HOURS
AND DATE VALUES
START 1 1 0 1 0 0 0 0
04h
SLAVE
ACK
00000100
SLAVE
ACK
00001100
D0h
START 1 1 0 1 0 0 0 0
44h
SLAVE
01000100
ACK
SLAVE
ACK
STOP
D1h
REPEATED
START
DATA
11010001
00000010
SLAVE
ACK
REPEATED
START
SLAVE
ACK
00010001
SLAVE
ACK
SLAVE
ACK
VALUE
D1h
0Ch
VALUE
MASTER
NACK
STOP
11h
02h
SLAVE
ACK
SLAVE
ACK
11010001
STOP
DATA
DATA
MASTER
ACK
VALUE
MASTER
NACK
STOP
Figure 9. I2C Transactions
reads data with ACK or NACK as applicable, and
generates a STOP condition. See Figure 6 for a read
example using the repeated START condition to
specify the starting memory location.
Reading Multiple Bytes from a Slave: The read
operation can be used to read multiple bytes with a
single transfer. When reading bytes from the slave,
the master simply ACKs the data byte if it desires to
read another byte before terminating the transaction.
After the master reads the last byte it must NACK to
indicate the end of the transfer and then it generates
a STOP condition.
Applications Information
Power-Supply Decoupling
To achieve the best results when using the DS3231M,
decouple the VCC and/or VBAT power supplies with
0.1FF and/or 1.0FF capacitors. Use a high-quality,
ceramic, surface-mount capacitor if possible. Surfacemount components minimize lead inductance, which
improves performance, and ceramic capacitors tend to
have adequate high-frequency response for decoupling
applications.
18
If communications during battery operation are not
required, the VBAT decoupling capacitor can be omitted.
Using Open-Drain Outputs
The 32KHZ and INT/SQW outputs are open drain and
therefore require external pullup resistors to realize logichigh output levels. Pullup resistor values between 1kI
and 10MI are typical.
The RST output is also open drain, but is provided with
an internal 50kI pullup resistor (RPU) to VCC. External
pullup resistors should not be added.
SDA and SCL Pullup Resistors
SDA is an open-drain output and requires an external
pullup resistor to realize a logic-high level.
Because the device does not use clock cycle stretching,
a master using either an open-drain output with a pullup
resistor or CMOS output driver (push-pull) could be used
for SCL.
Battery Charge Protection
The device contains Maxim’s redundant battery-charge
protection circuit to prevent any charging of the external
battery.
±5ppm, I2C Real-Time Clock
PACKAGE TYPE
PACKAGE CODE
OUTLINE NO.
LAND PATTERN NO.
16 SO
W16+2
21-0042
90-0107
8 SO
S8+4
21-0041
90-0096
19
DS3231M
Package Information
For the latest package outline information and land patterns, go to www.maxim-ic.com/packages. Note that a “+”, “#”, or “-” in the
package code indicates RoHS status only. Package drawings may show a different suffix character, but the drawing pertains to the
package regardless of RoHS status.
DS3231M
±5ppm, I2C Real-Time Clock
Revision History
REVISION
NUMBER
REVISION
DATE
0
6/10
DESCRIPTION
Initial release
PAGES
CHANGED
—
Maxim cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim product. No circuit patent licenses are implied.
Maxim reserves the right to change the circuitry and specifications without notice at any time.
20
© 2010
Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600
Maxim Integrated Products Maxim is a registered trademark of Maxim Integrated Products, Inc.