MAXIM DS1678S

DS1678
Real-Time Event Recorder
www.maxim-ic.com
GENERAL DESCRIPTION
FEATURES
The DS1678 real-time clock (RTC) event recorder
records the time and date of a nonperiodic,
asynchronous event each time the INT pin is
activated. The device records the seconds, minutes,
hours, date, day of the week, month, year, and
century when the first event occurs, and starts the 16bit elapsed time counter (ETC). Subsequent events
trigger the recording of the ETC into the event-log
memory. This allows for up to 1025 events to be
logged. Events can be logged while the device is
operating from either VCC or VBAT.
Real-Time Clock/Calendar in Binary-Coded
Decimal (BCD) Format Counts Seconds,
Minutes, Hours, Date, Month, Day of the
Week, and Year with Leap Year
Compensation and is Year 2000 Compliant
Logs Up to 1025 Consecutive Events in ReadOnly Battery-Backed Memory
User-Programmable Event Trigger can be
Triggered by the Falling Edge, Rising Edge,
or Rising and Falling Edges of the INT Pin
Event Counter Register Provides Data on the
Number of Events that Have Been Logged in
the Current Event-Logging Mission
Programmable RTC Alarm
32-Byte, Battery-Backed, General-Purpose
NV RAM
TYPICAL OPERATING CIRCUIT
I2C* Serial Interface
Three Resolution Options for Trade-Off
Accuracy vs. Maximum Time Between Events
-40°C to +85°C Industrial Temperature
Range
Underwriters Laboratory (UL) Recognized
ORDERING INFORMATION
PART†
DS1678
DS1678+
DS1678S
DS1678S+
PIN-PACKAGE
8 Plastic DIP
8 Plastic DIP
8 SO
8 SO
8 SO (Tape and
DS1678S/T&R
Reel)
8 SO (Tape and
DS1678S+T&R
Reel)
PIN CONFIGURATION
TOP VIEW
X1
1
DS1678
8
VCC
X2
2
7
INT
VBAT
3
6
SCL
GND
4
5
SDA
TOP MARK††
DS1678
DS1678
DS1678S
DS1678S
DS1678S
DS1678S
†
All devices are specified over the -40°C to +85°C operating
range.
††
A “‘+” anywhere on the top mark denotes a lead-free device.
+ Denotes a lead-free/RoHS-compliant device.
* I C is a trademark of Philips Corp. Purchase of I C components
from Maxim Integrated Products, Inc., or one of its sublicensed
2
Associated Companies, conveys a license under the Philips I C
2
Patent Rights to use these components in an I C system, provided
2
that the system conforms to the I C Standard Specification as
defined by Philips.
2
PDIP (300 mils)
SO (208 mils)
1 of 25
2
REV: 100405
DS1678 Real-Time Event Recorder
ABSOLUTE MAXIMUM RATINGS
Voltage Range on Any Pin Relative to Ground……………………………………………..-0.3V to +6.0V
Operating Temperature Range (noncondensing)…………………………………………...-40°C to +85°C
Storage Temperature Range…………………………………………………………….…-55°C to +125°C
Soldering Temperature………………………………………….See IPC/JEDEC J-STD-020 Specification
This is a stress rating only and functional operation of the device at these or any other conditions above those indicated in the operation
sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods of time may affect device
reliability.
RECOMMENDED DC OPERATING CONDITIONS
(VCC = VCC(MIN) to VCC(MAX), TA = -40°C to +85°C, unless otherwise noted. Typical values are at nominal
supply voltage and TA = +25°C, unless otherwise noted.) (Note 1)
PARAMETER
SYMBOL
CONDITIONS
MIN
TYP
MAX UNITS
Power-Supply Voltage
VCC
(Note 2)
4.5
Input Logic 1
VIH
(Note 2)
2.2
Input Logic 0
VIL
(Note 2)
-0.3
Pullup Resistor Value
VPU
VCC = 0V (Note 2)
Battery Voltage
VBAT
(Note 2)
5.0
2.6
5.5
V
VCC +
0.3
+0.8
V
5.5
V
3.5
V
MAX
UNITS
V
DC ELECTRICAL CHARACTERISTICS
(VCC = VCC(MIN) to VCC(MAX), TA = -40°C to +85°C.)
PARAMETER
Input Leakage
SDA, SCL
INT
Logic 0 Output
IOL = 4mA (SDA, INT)
Active Supply Current
Power-Fail Voltage (Note 2)
LOBAT Trip Point
SYMBOL
ILI
CONDITIONS
SDA output off
MIN
TYP
-1
INT output off
+1
10
VOL
ICCA
µA
0.4
V
1
1.25 x
VBAT
1.35
2
1.284
x VBAT
mA
1.216
x VBAT
MIN
TYP
MAX
UNITS
IOSC
300
500
nA
IBAT
50
150
nA
VPF
VBAT = 3.0V
LOBATTRP
V
DC ELECTRICAL CHARACTERISTICS
(VCC = 0V, TA = -40°C to +85°C.) (Note 1)
PARAMETER
VBAT Current
(Oscillator On)
VBAT Current
(Oscillator Off)
SYMBOL
CONDITIONS
2 of 25
DS1678 Real-Time Event Recorder
AC ELECTRICAL CHARACTERISTICS
(VCC= 2.6V to 5.5V or VBAT = 2.6V to 3.5V, TA = -40°C to +85°C.) (Note 1)
PARAMETER
Input Capacitance
Minimum Signal Width
Minimum Event Rate
SYMBOL
CI
CONDITIONS
MIN
INT
tGLITCH
tEVENT
TYP
MAX
UNITS
0.245
1.22
pF
ms
ms
MAX
UNITS
400
100
kHz
10
0.122
0.854
AC ELECTRICAL CHARACTERISTICS
(VCC = 4.5V to 5.5V, TA = -40°C to +85°C.) (Note 1)
PARAMETER
SYMBOL
SCL Clock Frequency
fSCL
Bus Free Time Between a STOP and
START Condition
tBUF
Hold Time (Repeated) START
Condition (Note 3)
tHD:STA
LOW Period of SCL
tLOW
HIGH Period of SCL
tHIGH
Setup Time for a Repeated START
tSU:STA
Data Hold Time (Note 4)
tHD:DAT
Data Setup Time (Note 5)
tSU:DAT
Rise Time of Both SDA and SCL
Signals (Note 6)
tR
Fall Time of Both SDA and SCL
Signals (Note 6)
tF
Setup Time for STOP
Capacitive Load for Each Bus Line
(Note 6)
Input Capacitance (SCL, SDA)
tSU:STO
CONDITIONS
Fast mode
Standard mode
Fast mode
Standard mode
Fast mode
Standard mode
Fast mode
Standard mode
Fast mode
Standard mode
Fast mode
Standard mode
Fast mode
Standard mode
Fast mode
Standard mode
Fast mode
Standard mode
Fast mode
Standard mode
Fast mode
Standard mode
MIN
TYP
100
1.3
4.7
0.6
4.0
1.3
4.7
0.6
4.0
0.6
4.7
0
0
100
250
20 + 0.1CB
20 + 0.1CB
20 + 0.1CB
20 + 0.1CB
0.6
4.0
µs
µs
µs
µs
µs
0.9
ns
300
1000
300
300
ns
ns
µs
400
CB
CI
µs
5
pF
pF
WARNING: Under no circumstances are negative undershoots of any amplitude allowed
when the device is in write protect.
3 of 25
DS1678 Real-Time Event Recorder
Note 1:
Limits at -40°C are guaranteed by design and not production tested.
Note 2:
All voltages referenced to ground.
Note 3:
After this period, the first clock pulse is generated.
Note 4:
A device must initially provide a hold time of at least 300ns for the SDA signal to bridge the undefined region of the falling edge
of SCL. The maximum tHD:DAT need only be met if the device does not stretch the LOW period (tLOW) of the SCL signal.
Note 5:
A fast-mode device can be used in a standard-mode system, but the requirement tSU:DAT > 250ns must then be met. This is
automatically the case if the device does not stretch the LOW period of the SCL signal. If such a device does stretch the LOW
period of the SCL signal, it must output the next data bit to the SDA line tR(MAX) + tSU:DAT = 1000 + 250 = 1250ns before the SCL
line is released.
Note 6:
CB—Total capacitance of one bus line in pF.
Note 7:
tR and tF are measured with a 1.7kΩ pullup resistor, 200pF pullup capacitor, 1.7kΩ pulldown resistor, and 5pF
pulldown capacitor.
I2C COMMUNICATION TIMING DIAGRAM
SDA
tBU F
tLOW
t HD:STA
tR
tF
SCL
t H D:STA
STOP
START
t H D:D AT
tHIG H
t SU :DA T
t SU:STA
REPEATED
START
4 of 25
t SU:STO
DS1678 Real-Time Event Recorder
BLOCK DIAGRAM
X1
CL
X2
CL
DIVIDER
1Hz
REAL-TIME
CLOCK
OSCILLATOR
INT
SCL
SDA
CONTROL
LOGIC
000h
ADDRESS
REGISTER
USER RAM
DATA LOG RAM
PORT
I2C SERIAL
INTERFACE
GND
DATALOG
NV SRAM
Dallas
Semiconductor
VCC
VBAT
0
DS1678
POWER
CONTROL
5 of 25
7FFh
2048
DS1678 Real-Time Event Recorder
PIN DESCRIPTION
PIN
1, 2
NAME
FUNCTION
X1, X2
Connections for Standard 32.768kHz Quartz Crystal. For greatest accuracy,
the DS1678 must be used with a crystal that has a specified load capacitance
of 12.5pF. There is no need for external capacitors or resistors. Note: X1 and
X2 are very high-impedance nodes. It is recommended that they and the
crystal be isolated from high-frequency signals. For more information on
crystal selection and crystal layout considerations, refer to Application Note
58: Crystal Considerations with Dallas Real-Time Clocks.
3
VBAT
4
GND
5
SDA
6
SCL
Battery Input for Standard Lithium Cell or Other Energy Source. All
functions of the DS1678 with the exception of the serial interface circuitry
are powered by VBAT when VCC < VBAT. All functions are powered by VCC
when VCC > VBAT. The serial interface is enabled when VCC is above VPF. If
a battery or other energy source is not used, VBAT should be connected
directly to ground. Diodes must not be placed between the battery and the
VBAT input or improper operation results. UL recognized to ensure against
reverse charging current when used with a lithium battery. See “Conditions
of Acceptability” at www.maxim-ic.com/qa/info/ul/.
Ground
Serial Data Input/Output. SDA is the data input/output (I/O) signal for the
I2C serial interface. The SDA pin is an open-drain I/O and requires an
external pullup resistor.
Serial Clock Input. SCL is used to synchronize data movement on the serial
interface. It requires an external pullup resistor.
Active-Low Interrupt Input/Output. The INT pin is an I/O that is activated by
an external device to signify an event has occurred and should be logged.
Once the pin is activated, the event is recorded in the event-log memory and
the Event Counter Register is incremented. The TRx bits determine which
input edge(s) trigger an event: An event can be triggered by a falling edge on
the INT pin, a rising edge, or by both the rising and falling edges.
7
INT
The INT pin can also be used as an output when the DS1678 is not in an
event-logging mission. The INT pin becomes an output and generates an
alarm interrupt if the DISx bits are set to zero and the RTC reaches the preset
value in the alarm register. The INT output remains low as long as the status
bit causing the interrupt is present and the DISx bits are set to zero.
The INT pin is an open-drain input/output with a weak internal pulldown
resistor to prevent the pin from floating when the pin is tri-stated.
8
VCC
DC Power for Primary Power Supply
6 of 25
DS1678 Real-Time Event Recorder
DETAILED DESCRIPTION
The Event Counter Register contains the total number of events that have been logged in the current
event-logging mission. The Event Counter Register also allows the user to determine if the data in the
event-log memory has rolled over.
The 16-bit ETC can be incremented once per second, once per minute, or once per hour. Each event
transfers the current ETC value into the event-log memory, then clears and restarts the ETC. The three
increment periods allow users to maximize the resolution while providing an adequate maximum time
between events. The seconds resolution provides the time of an event down to the second, while allowing
up to 65,535 seconds (18.2 hours) between events without using additional event-log memory. The
minutes resolution provides the time of an event down to the minute, while allowing up to 45.5 days
between events without using extra memory locations. The hours resolution provides the time of an event
down to the hour in which it occurred, while allowing up to 7.5 years between events without using
additional event-log memory. Based on the expected frequency of events, an increment period can be
selected to maximize the resolution while minimizing use of the event-log memory.
The event can be triggered in three different ways depending on how the user programs the trigger select
(TRx) bits in the Control Register. The event can be triggered by a falling edge on the INT pin only, a
rising edge only, or it can be triggered by rising and falling edges. Triggering with both the rising and
falling edges allows for monitoring when something is turned on/off and how long it is in either state.
The RTC provides seconds, minutes, hours, day, date, month, and year information with leap-year
compensation, and year 2000 compliance. The RTC also provides an alarm interrupt. The I2C interface
allows the RTC to function as a stand-alone RTC in the system.
The programmable alarm trip points in the RTC allow a flag to be set in the Control Register when the
specified time in the Alarm Trip Point Register is reached. The flag is readable via the I2C interface
during an event-logging mission or, when the DS1678 is not in a mission, INT becomes an output and
generates an alarm interrupt if the value in the RTC equals the value in the RTC Alarm Register and the
duration interval select (DISx) bits are both set to zeros.
The DS1678 operates as a slave device on the I2C serial bus. Access is obtained by generating a START
condition and providing a device identification code. All data is transferred to and from the DS1678 most
significant bit (MSB) first. The address counter automatically increments so that subsequent registers can
be accessed sequentially until a STOP condition is executed. When VCC falls below 1.25 x VBAT, the
device automatically write protects itself by disabling the I2C interface, terminates any access in progress,
and resets the device address counter. Inputs to the device via the I2C bus are not recognized at this time
in order to prevent erroneous data from being written to the device from an out-of-tolerance system.
When VCC falls below VBAT, the device switches into a low-current battery-backup mode. Upon powerup, the device switches from battery power to VCC when VCC is greater than VBAT + 0.2V, and recognizes
inputs from the system when VCC is greater than 1.25 x VBAT by releasing control of the write protection
on the I2C bus.
The Block Diagram shows the main elements of the RTC event recorder. The device has four major
components: a 64-bit RTC and control block, 32-byte user NV RAM, 2048 bytes of event-log memory
(1024 events), and an I2C serial interface.
7 of 25
DS1678 Real-Time Event Recorder
POWER CONTROL
The device is fully accessible and data can be written and read when VCC is greater than VPF. However,
when VCC falls below VPF, the internal registers are blocked from any access. The device power is
switched from VCC to VBAT when VCC drops below VBAT. Operation, except for the I2C interface, is
maintained from the VBAT source until VCC is returned to nominal levels (Table 1). After VCC returns
above VPF, read and write access is allowed.
Table 1. Power Control
SUPPLY
READ/WRITE
CONDITION
ACCESS
VCC < VPF, VCC < VBAT
No
VCC < VPF, VCC > VBAT
No
VCC > VPF, VCC > VBAT
Yes
POWERED
BY
VBAT
VCC
VCC
OSCILLATOR CIRCUIT
The DS1678 uses an external 32.768kHz crystal. The oscillator circuit does not require any external
resistors or capacitors (CL) to operate. Table 2 specifies several crystal parameters for the external crystal,
and the oscillator block in the Block Diagram shows a functional schematic of the oscillator circuit. Using
a crystal with the specified characteristics, the startup time is usually less than one second.
Table 2. Crystal Specifications*
PARAMETER
SYMBOL
Nominal Frequency
Series Resistance
Load Capacitance
fO
ESR
CL
MIN
TYP
MAX
UNITS
45
kHz
kΩ
pF
32.768
12.5
*The crystal, traces, and crystal input pins should be isolated from RF generating signals. Refer to
Application Note 58: Crystal Considerations for Dallas Real-Time Clocks for additional specifications.
CLOCK ACCURACY
The accuracy of the clock is dependent upon the accuracy of the crystal and the accuracy of the match
between the capacitive load of the oscillator circuit and the capacitive load for which the crystal was
trimmed. Additional error is added by crystal frequency drift caused by temperature shifts. External
circuit noise coupled into the oscillator circuit can result in the clock running fast. Figure 1 shows a
typical PC board layout for crystal and oscillator isolation from noise. Refer to Application Note 58:
Crystal Considerations with Dallas Real-Time Clocks for detailed information.
Figure 1. Typical Crystal Layout
LOCAL GROUND PLANE (LAYER 2)
X1
CRYSTAL
X2
GND
8 of 25
DS1678 Real-Time Event Recorder
MEMORY
The memory map in Figure 2 shows the general organization of the DS1678. As can be seen in the figure,
the device memory is in one contiguous segment with a data port to access the event-log memory.
Because the I2C bus is limited to a maximum of 256 addresses (one byte), the DS1678 uses the data port
to access the 2048 bytes of event-log memory. The address that the next data would have been written to
before logging was stopped is stored in the Address Pointer Register LSB (3Fh) and MSB (40h). These
data bytes are used to recover all the data after a rollover occurs. The data log address pointer points to
the oldest event in the memory after a rollover. This is the memory location in event-log memory that
would be overwritten by the next event. Read the data from this point to the end of the memory and the
start time stamp, including the two-byte ETC from the last event. Working backward from the value in
the start time stamp, subtract the value in the ETC from the last event to get the time the last event in the
memory occurred. Then subtract the values in each of the two-byte memory locations for elapsed time
between events to recover the time the previous event occurred.
The value in the ETC register LSB (3Dh) and MSB (3Eh) is the value in the actual ETC. This is the time
from the last event recorded until logging was stopped. Since a new event has not occurred, this data has
not been stored in the event memory yet.
The data port is made up of three bytes. The first byte (41h) is the event-log memory address LSB, the
second byte (42h) is the event-log memory address MSB, and the third byte (43h) is the event-log
memory data byte. To access data via the data port, an I2C write to the LSB of the event log LSB (41h) is
performed, writing the appropriate LSB address information. The I2C register pointer automatically
increments to the event-log memory address MSB (42h), where a second I2C write is performed, writing
the MSB address information. The I2C register pointer automatically increments to the event-log data
byte address (43h). A repeated start, followed by the I2C slave address with a read command (1) in the
R/W bit of the I2C address byte is performed. Subsequent read cycles reads the event-log information in
the event-log memory.
For each read, the event-log memory address pointer in main memory locations 41h and 42h is
autoincremented to the next higher event-log memory address, while the pointer for the main memory
remains at location 43h. This allows the event-log memory to be read continuously without having to
write the next desired event-log memory location prior to each data read. The even address locations in
the event-log memory correspond to the LSB of the elapsed time between events, and the odd memory
locations correspond to the MSB of the elapsed time between events. See Table 3 for more information
about how the data is stored in the event-log memory.
When the event-log memory address pointer gets to the last address location (07FFh), the automatic
incrementing stops. A new starting address must then be written into the event-log memory pointer bytes
(41h and 42h) to begin reading additional data. The event-log memory addresses that can be put into the
pointer (41h and 42h) are 0000h to 07FFh. The five MSBs of the address are ignored. Entering a value
greater than 07FFh results in the address location associated with the value of the lowest 11 bits of the
address.
The RTC and control registers (see Figure 2 for more details) are located in the main memory between
addresses 00h and 0Fh. The user NV RAM resides in locations 10h through 2Fh. The event-logging
memory data port is located at locations 41h, 42h, and 43h. Memory locations 44h and up are reserved for
future extensions and read 00h.
9 of 25
DS1678 Real-Time Event Recorder
The user can write only to the RTC, control registers, and user NV RAM. The rest of the memory map is
read-only from the user’s perspective. During an event-log mission, all the memory is read-only. A write
terminates the mission. If there is an event being recorded when the mission is terminated, the event
finishes being recorded before the mission is stopped, and the values in the MIP and ME bits do not
change to zeros until the mission is complete.
During an event-log mission, memory locations 30h and above are not accessible to the user to avoid data
collisions from a user read and an event being logged at the same time. If the user tries to read a location
with an address greater than 2Fh during a mission, the value returned is 00h.
Table 3. DS1678 Event Elapsed Time Duration
ADDRESS
REGISTER
0000
Event 1 Elapsed Time from Last Event Counter LSB
0001
Event 1 Elapsed Time from Last Event Counter MSB
0002
Event 2 Elapsed Time from Last Event Counter LSB
0003
Event 2 Elapsed Time from Last Event Counter MSB
0004
↓
↓
07FB
07FC
Event 1023 Elapsed Time from Last Event Counter LSB
07FD
Event 1023 Elapsed Time from Last Event Counter MSB
07FE
Event 1024 Elapsed Time from Last Event Counter LSB
07FF
Event 1024 Elapsed Time from Last Event Counter MSB
10 of 25
DS1678 Real-Time Event Recorder
Figure 2. DS1678 RTC and Control Page
ADDRESS
00
01
MSB
BIT 7
0
0
02
0
03
04
05
06
07
08
09
0
0
0
MS
MM
0A
MH
0B
0C
0D
0E
MD
0F
0
BIT 6
BIT 5
BIT 4
10 Seconds
10 Minutes
AM/PM
12/24
10 Hr
10 Hr
0
0
0
0
10 Date
0
0
10 Mo
10 Year
10 Century
10 Seconds Alarm
10 Minutes Alarm
AM/PM
12/24
10 Hr
10 Hr
0
0
0
BIT 3
BIT 2
BIT 1
Seconds
Minutes
LSB
BIT 0
Hour
0
Day of Week
Date
Month
Year
Century
Seconds Alarm
Minutes Alarm
RTC
RTC Alarm
Hour Alarm
0
Day-of-Week Alarm
(Reads 00h)
ME
10
11
12
↓
2F
30
31
0
0
32
0
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
↓
FF
0
0
0
CLR
MEM
CLR
FUNCTION
Reserved
DIS1
DIS0
RO
TR1
TR0
EOSC
Control
MIP
CM
LOBAT
ROF
0
ALMF
Status
Byte 1
Byte 2
Byte 3
↓
Byte 32
Higher addresses read back as 00h while a mission is in progress.
10 Seconds
Seconds
10 Minutes
Minutes
AM/PM
12/24
10 Hr
Hours
10 Hr
0
0
0
0
Day-of-Week
0
10 Date
Date
0
0
10 Mo
Month
10 Year
Year
10 Century
Century
Event 0 Elapsed Time from Last Event Counter LSB
Event 0 Elapsed Time from Last Event Counter MSB
Low Byte
Medium Byte
High Byte
Low Byte
High Byte
Low Address Byte
High Address Byte
Low Address Byte
High Address Byte
Data Byte
(Reads 00h)
11 of 25
UserProgrammable
NV Memory
Time Stamp
Event 0 Rollover
Stamp
Event Counter
Elapsed Time
Counter (ETC)
Address Pointer
Data Log RAM
Port
Reserved
DS1678 Real-Time Event Recorder
EVENT LOGGING
When the DS1678 event-logging function is enabled, the device is said to be on an “event-log mission”
until the event logging is stopped.
An event can be triggered one of three ways depending on the settings of the TRx bits in the Control
Register. With the TR0 bit set to one and the TR1 bit set to zero, INT is activated on the falling edge of
the input signal. With the TR0 bit set to zero and the TR1 bit set to one, INT is activated on the rising
edge of the input signal. With both TR0 and TR1 bits set to one, INT is activated on both the falling and
rising edges to allow for the measurement and duration of on/off type events. If TR0 and TR1 are both set
to zero, nothing happens when INT is toggled, and a mission does not start. This is an illegal state and the
mission does not start without a valid value in the TRx bits prior to attempting to start the mission.
During an event-log mission, every time INT is activated, the elapsed time from the last event is written
to the event-log memory pages. These memory pages are accessible through the data port in the main
memory. To access data via the data port, the LSB of the address location in the event-log memory is
written into 41h, the main memory address pointer automatically increments to 42h where the event-log
memory address MSB data is written. The data from the event-log memory location corresponding to the
address written into main memory locations 41h and 42h is available in location 43h to be read. The
event-log data is located at addresses 0000h–07FFh in the event-log memory. The LSB of the first event
duration is written to address location 0000h. The MSB of the first event duration is written to address
location 0001h. The LSB of the second event is written to address location 0002h. The MSB of the
second event duration is written to address location 0003h (see Table 3 for more details). Likewise, the
address is incremented with each additional event duration. A total of 2048 registers have been reserved
for event-log data, which allow 1024 events to be logged.
An event-log mission can be initiated by two methods (Figure 3). The first method to start a mission is
with a delayed start. This is accomplished by writing a one to the ME bit. The mission starts when the
first event occurs by activating INT. When INT is activated, the MIP bit in the Status Register is set to
one, the current time/date is written to the Start Time Stamp Register, and the Event 0 Rollover Stamp is
written to zero. The Event Counter Register is incremented and the ETC starts. Subsequent events are
logged as the duration of time from the previous event by writing the contents of the ETC into the eventlog memory when that subsequent event is triggered by the activated INT pin. Note: The ME bit can only
be written to one and a mission started if the MEM CLR bit is set to one.
The second way to start a mission is write a one to the MIP bit of the Status Register over the I2C
interface. When MIP is written to one, the ME bit in the Control Register is automatically set to one.
When the MIP bit is written to one, the mission is started by loading the current time/date into the start
time stamp, and the Event 0 Rollover Stamp is written to zero. The Event Counter Register is
incremented and the ETC starts incrementing. The first event is then logged as the duration of time since
the start time. All subsequent events are then logged as the duration of time since the previous event.
Note: The MIP bit can only be written to one and a mission started if the MEM CLR bit is set to one.
The MEM CLR bit of the Status Register must be a one to start an event-log mission. This means that the
Event-Log Memory, Event Count, ETC, Address Pointer, and Start Time Stamp registers are cleared of
data (all zeros) so that an end user cannot turn the logger on and off to avoid recording events. Once the
mission is stopped, the memory must be cleared to start a new mission.
12 of 25
DS1678 Real-Time Event Recorder
Figure 3. Start Mission Flow Chart
Start via
External Event
Start via
Computer
Mem Clr =1
no
Clear
Memory
Mem Clr =1
yes
no
Clear
Memory
yes
Write a 1 to
the MIP bit
Write a 1 to
the ME bit.
MIP = 0
The ME bit is
Automatically
Written to a 1
INT Input
Activated
Time/Date Stamp
is Written
no
Continue to
Monitor Input
yes
ETC Starts
Incrementing
MIP Automatically
Written to a 1
EC is
Incremented
Time/Date Stamp is
Written
INT Input
Activated
no
ETC Starts
Incrementing.
Continue to
Monitor Input
EC is
Incremented
yes
Record Event in
Event Memory
INT Input
Activated
ETC is
Cleared
yes
Record Event in
Event Memory
ETC is
Cleared
13 of 25
no
Continue to
Monitor Input
DS1678 Real-Time Event Recorder
ROLLOVER HANDLING
There are two options for dealing with the potential occurrence of a data overrun (i.e., more than 1024
total event logs in the event-log memory) (Figure 4). The first option is to enable rollovers. This is
accomplished by setting the rollover bit (bit 3 of the Control Register) to one. When rollover is enabled,
new data is written over previous data, starting with the Start Time Stamp Register, as if a new mission is
starting.
When a rollover occurs, the Event 0 Rollover Stamp has the elapsed time since event 1024 of the eventlog memory. This is to allow the user to recover the information recorded prior to the rollover. At the start
of a mission, the Event 0 Rollover Stamp data is zero, as there was no previous event from which to have
an elapsed time.
When 1024 events are recorded in the event-log memory, the next event causes a new time/date stamp to
be written to the Start Time Stamp Register and the elapsed time since event 1024 written to the event 0
rollover stamp. The new event is written to the first location in the event log, overwriting the old data, and
the address pointer is incremented. When the rollover occurs, the rollover flag (ROF) in the Control
Register is set to one to indicate that the memory has rolled over at least one time.
The second option for dealing with data overrun is to disable rollovers by setting the rollover bit to 0. The
DS1678 stops recording after event 1025, and the address pointer is incremented from 07FFh to 0000h.
The device continues monitoring INT and the event counter continues to increment when INT is
activated, even though the event-log memory has been filled.
A time stamp for the first event is recorded after a mission begins. The time of acquisition for subsequent
events is determined by considering the start time recorded by the time stamp; the value in the Event
Counter Register, ROF; and the address of the particular data sample in the event-log memory.
If no rollover has occurred in the event-log memory (ROF = 0), the sample time associated with any
particular data point can be calculated by multiplying the sum of the elapsed time between the events up
to that event by one second, minute, or hour depending on which resolution is selected in the DISx bits of
the Control Register, and adding this elapsed time to the value in the Start Time Stamp Register.
If rollover has been enabled, the user can determine if rollover has occurred by reading the value in the
Event Counter Register or the ROF. The Event Counter Register counts the total number of events that
have been acquired. If this value is greater than 0400h (decimal 1025), then the user knows that rollover
has occurred. If rollover has occurred, the user needs to determine how many times rollover occurred in
determining the sample time for any particular data sample. The address pointer points to the oldest data
in the event-log memory, and, if the memory has rolled over at least one time, the rollover flag is set to
one.
The DS1678 has been designed so the user cannot directly write to the event-log memory. This prevents
writing invalid data to the event-log registers.
14 of 25
DS1678 Real-Time Event Recorder
Figure 4. Rollover Flow Chart
EC is
Incremented
no
INT Input
Activated
Continue to
Monitor Input
yes
Memory
Full
no
Record Event in
Event Memory
yes
Rollover
Enable = 1
no
yes
ETC Written to Event 0
and
Time/Date Stamp
is Written
ETC is
Cleared
15 of 25
DS1678 Real-Time Event Recorder
CLOCK, CALENDAR, AND ALARM
The time and calendar information is accessed by reading/writing the appropriate register bytes. Note that
some bits are set to zero. These bits always read zero regardless of how they are written. The contents of
the time, calendar, and alarm registers are in the BCD format and are year 2000 compliant.
The DS1678 can run in either 12-hour or 24-hour mode. Bit 6 of the hours register is defined as the 12- 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 one being PM. In the 24-hour mode, bit 5 is the second 10-hour bit (20–23 hours).
The day register increments at midnight. Values that correspond to the day of week are user defined, but
must be sequential, e.g., 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 (user) buffers are used to prevent errors
when the internal registers update. When reading the time and date registers, the user buffers are
synchronized to the internal registers on an I2C start. The time and calendar information is read from
these secondary registers, while the clock continues to run. 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 one second.
The DS1678 also contains a time-of-day alarm. The alarm registers are located in registers 08h–0Bh. Bit
7 of each of the alarm registers is a mask bit (Table 4). When all the mask bits are logic zero, an alarm
occurs once per week when the values stored in timekeeping registers 00h–03h match the values stored in
the time-of-day alarm registers. An alarm is generated every day when the mask bit of the day alarm
register is set to one. An alarm is generated every hour when the day and hour alarm mask bits are set to
one. Similarly, an alarm is generated every minute when the day, hour, and minute alarm mask bits are set
to one. An alarm occurs every second when the day, hour, minute, and seconds alarm mask bits are set to
one. As a security measure to prevent unauthorized tampering, writing to any memory location or
changing any value in the RTC and control registers stop an event-log mission and clear the MIP bit to
zero.
Table 4. Time-of-Day Alarm Bits
ALARM REGISTER MASK BITS (BIT 7)
SECONDS MINUTES HOURS DAYS
(MS)
(MM)
(MH)
(MD)
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
DESCRIPTION
Alarm once per second
Alarm when seconds match
Alarm when minutes and seconds match
Alarm when hours, minutes, and seconds match
Alarm when day, hours, minutes, and seconds match
16 of 25
DS1678 Real-Time Event Recorder
SPECIAL-PURPOSE REGISTERS
The following descriptions define the operation of the DS1678 special-purpose registers.
CONTROL REGISTER (0Eh)
MSB
BIT 7
ME
BIT 6
CLR
BIT 5
DIS1
BIT 4
DIS0
BIT 3
RO
BIT 2
TR1
BIT 1
TR0
LSB
BIT 0
EOSC
Bit 7: Mission Enable (ME). This bit enables the device to begin a mission. The ME bit cannot be
written to one unless the MEM CLR bit in the Status Register is one, signifying that the memory and
registers have been cleared. With the ME bit set to one, the device waits for the first event to occur (INT
is activated). Once that first event occurs, the MIP bit is set, the time/date stamp is recorded in the Start
Time Stamp Register, the Event 0 Rollover Stamp is written to zero, the Event Counter Register is
incremented, and the ETC begins incrementing.
When the ME bit is set to logic zero, the DS1678 waits until a one is written to the MIP bit via the I2C
interface to start the mission. When the MIP bit is written to one, the ME bit is set to one, the current
time/date is recorded in the Start Time Stamp register, the Event 0 Rollover Stamp is written to zero, the
Event Counter Register is incremented, and the ETC begins incrementing.
The ME bit is automatically written to zero whenever a mission is stopped.
Bit 6: Clear Enable (CLR). This bit enables the memory to be cleared. When this bit is set to logic one
and the clear memory (CM) bit is subsequently set to one, the Event-Log Memory, Event Counter, and
Start Time Stamp registers are all cleared to zeros. Following the writing of a one to the ME bit, the CLR
bit is also set to logic zero, and the MEM CLR bit is set to logic one. If the clear enable bit is set, but a
command other than writing a one to the clear memory bit is issued next, the CLR bit is cleared to zero
and the contents of the Event-Log, Start Time Stamp, and Event Counter registers are unchanged.
Bits 5 and 4: Duration Interval Select 1 and 0 (DIS1 and DIS0). These bits select the amount of time
between increments of the ETC that is used to determine the amount of time between events. After the
first event is recorded, all subsequent events are recorded as the elapsed time since the previous event.
When a subsequent event occurs, the ETC value is stored in the event-log memory.
To obtain the maximum accuracy of the event logger, the smallest possible resolution of the ETC should
be selected. The expected maximum time between events must also be taken into account to get the full
1025 events logged, because when the ETC count reaches 65,535 increments, if the next event has not
occurred by that point, FFFFh is written into the memory, the ETC rolls over to 0000h and continues to
count until the next event occurs or FFFFh is reached again. Whenever FFFFh is reached by the ETC, it
stores that value in event-log memory, resets to 0000h, continues counting, and the memory address
pointer increments to the next memory location. Whenever an FFFFh appears in the memory, the next
two bytes of data are part of the elapsed time for the same event, even if the value in the next two bytes of
memory are 0000h, which means that an event occurred at time increment FFFFh. To recover the total
elapsed time between events when FFFFh is in the event-log memory; add the contents of the next two
bytes to the FFFFh. If the next two bytes are 0000h, indicating that the event occurred at FFFFh, add the
0000h to FFFFh to get FFFFh. If the next two bytes are 0100h, add 0100h to FFFFh to get 100FFh. This
17 of 25
DS1678 Real-Time Event Recorder
represents the total elapsed time since the previous event. The event counter is not incremented when the
ETC rolls over because a new event has not occurred.
The ETC is incremented as the selected seconds, minutes, or hours register of the RTC increments.
Because the RTC continues to run, even when the ETC is cleared to prepare for a new event, and the ETC
is incremented every time the selected byte in the RTC increments, the actual time resolution is not lost
even when events occur more frequently than the minimum time resolution selected. If an event occurs
half way between increments of the ETC, the first increment of the next event occurs when the seconds,
minutes, or hours register increments next, thus preserving the correct time to the resolution selected in
the DISx bits.
When the alarm interrupt output is used, the DISx bits should be set to zeros. An event-logging mission
cannot be started if the DISx bits are set to zero. This enables the alarm flag to generate an alarm interrupt
via the INT output pin.
With the DIS0 bit set to one and the DIS1 bit set to zero, the ETC increments every time the seconds
register in the RTC is incremented. This gives the maximum resolution between events, but the counter
rolls over to the next two memory bytes when it reaches the maximum value. The largest interval between
events that can be accurately measured without using additional memory space and reducing the total
number of events able to be logged is 65,535 seconds, or about 18.2 hours. If the maximum time between
events could be greater than 18.2 hours, consider using one of the courser resolutions to conserve
memory.
With the DIS0 bit set to zero and the DIS1 bit set to one, the ETC increments every time the minutes
register in the RTC is incremented. This gives a medium resolution between events, but increases the
largest possible interval between events that can be accurately measured without using additional memory
space and reduces the total number of events able to be logged to 65,535 minutes, or about 45.5 days.
With both DISx bits set to one, the ETC increments every time the single hours byte in the RTC is
incremented. This gives the lowest resolution between events, but increases the largest possible interval
between events that can be accurately measured without using additional memory space and reduces the
total number of events able to be logged to 65,535 hours, or about 7.5 years.
If a second event occurs before the ETC is able to increment for the first time, all zeros are logged in the
event-log memory and the ETC resets. If this occurs, the time base remains correct as it is based on the
separate RTC incrementing, but the exact time of the event is no more accurate than the size of the time
increment that is chosen. For this reason, it is recommended to use the finest resolution possible for your
logging to minimize the errors. If the normal duration between events is several days or months, then a
few minutes or an hour may not be significant to your data accuracy.
Table 5. Duration Interval Select Bits
ELAPSED TIME COUNT
DIS1 DIS0
RESOLUTION
0
0
Alarm Interrupt Output Enabled
0
1
Counter Increments Every Second
1
0
Counter Increments Every Minute
1
1
Counter Increments Every Hour
MAX TIME
BETWEEN EVENTS
—
18.2 Hours
45.5 Days
7.5 Years
18 of 25
DS1678 Real-Time Event Recorder
Bit 3: Rollover (RO). This bit determines whether the data log function of the DS1678 rolls over or stops
writing data to the event-log memory if the event-log memory is completely filled. If RO is set to one, the
event-log memory rolls over after all 2048 bytes in the event-log memory have been used. After the
1024th event recorded in the event-log memory, the following sample has the full time/date stamp
information written to the Start Time Stamp register and the contents of the ETC written to the two bytes
following the start time stamp (Event 0 Rollover Stamp). The next sample has the duration of time from
the new start time stamp value written to event-log memory address locations 0000h and 0001h,
overwriting the original data. Likewise, subsequent samples increment through the event-log registers,
overwriting their data.
The Event 0 Rollover Stamp has the elapsed time since the last event in the event-log memory. This is to
allow the user to recover the information prior to the rollover. At the start of a mission, the value in these
two bytes is zero since there was no previous event from which to have an elapsed time.
If RO is set to zero, no further event logs are written to the event-log memory after all event-log memory
registers have been filled. However, events continue to be recognized, and the Event Counter Register is
incremented for each event.
Bits 2 and 1: Trigger Select 0 and 1 (TR1 and TR0). These bits select the edge(s) that activate INT to
cause an event to be logged. An event can be triggered one of three ways, depending on the settings of the
TRx bits in the Control Register. With TR0 set to one and TR1 set to zero, INT is activated on the falling
edge of the input signal. With TR0 set to zero and TR1 set to one, the INT is activated on the rising edge
of the input signal.
With TR0 and TR1 set to zero, INT is activated by the rising and falling edges to allow for the
measurement and duration of on/off type events. If TR0 and TR1 are set to zero, nothing happens when
INT is toggled, and a mission does not start. This is an illegal state, and the mission does not start without
a valid value in the TRx bits prior to attempting to start the mission.
Table 6. Trigger Select Bits
EDGE(S) USED TO
TR1 TR0
TRIGGER AN EVENT
0
0
Nothing, Illegal State
0
1
Falling Edge
1
0
Rising Edge
1
1
Both Rising and Falling Edges
Bit 0: Enable Oscillator (EOSC). This bit allows the clock oscillator to shut off to save power. The RTC
no longer keeps time when the oscillator is shut off, but the information stored in the device memory is
maintained. An event-log mission cannot start with EOSC set to zero, and the RTC must be reset to the
correct value after the oscillator is restarted and prior to starting a mission to obtain good data. A clear
memory also cannot be executed without the oscillator running. When VCC > VBAT, the oscillator
automatically starts, no matter what the value in the EOSC bit, to allow proper communications.
Disabling the oscillator with EOSC can be used to extend the battery life whenever time and date
operation on battery backup is not required.
19 of 25
DS1678 Real-Time Event Recorder
STATUS REGISTER (0Fh)
MSB
BIT 7
0
BIT 6
MEM CLR
BIT 5
MIP
BIT 4
CM
BIT 3
LOBAT
BIT 2
ROF
BIT 1
0
LSB
BIT 0
ALMF
Bit 6: Memory Cleared (MEM CLR). This bit indicates that the Event-Log Memory, Event Counter,
and Start Time Stamp registers are all cleared to zero. MEM CLR is cleared to zero when an event-log
mission is started (i.e., MIP = 1).
Bit 5: Mission in Progress (MIP). This bit indicates the sampling status of the DS1678. If MIP is logic
one, the device is currently on a “mission” in which it is operating in the event-logging mode. The MIP
bit is changed to logic one immediately following the activation of INT if the ME bit of the Control
Register contains a one. To immediately start an event-logging mission via the I2C bus, a one can be
written into the MIP bit and a one is automatically written into the ME bit of the Control Register.
If MIP is logic zero, the DS1678 is not currently in event-logging mode. The MIP bit transitions from
logic one to logic zero whenever event logging is stopped. Event logging is stopped when the DS1678 is
cleared by writing to the clear enable and memory clear bits, or when any memory location including the
RTC or control registers is written to during a mission. The MIP bit can also be written to logic zero by
the end user to stop event logging via the I2C bus. By writing a zero to the MIP bit and stopping the
mission, a zero is automatically written to the ME bit of the Control Register. It cannot, however, be
written to logic one to start a mission unless the MEM CLR bit is a one to signify that the memory has
been cleared.
Bit 4: Clear Memory (CM). This bit triggers the memory to be cleared if the CLR clear enable and
EOSC oscillator enable bits in the Control Register are set to one. This causes the Event-Log Memory,
Event Counter, and Start Time Stamp registers to all be cleared to zeros. Once the memory has been
cleared, the CLR enable bit and the CM bits are set to zeros, and the MEM CLR bit is set to one to allow
a new mission to begin. Clearing the memory is a two-write process to reduce the risk of accidentally
erasing the memory. The CLR bit must be set to one before the CM bit can be written to one. During the
clear memory operation, the DS1678 should not be accessed for 500µs while the memory is erased. The
MEM CLR bit should read a one before trying to access the cleared memory or registers.
Bit 3: Low-Battery Flag (LOBAT). This bit reflects the status of the backup power source connected to
the VBAT pin. A logic one for this bit indicates an exhausted lithium energy source.
Bit 2: Rollover Flag (ROF). This bit is set to one if the RO bit of the Control Register is set to one, the
last data log memory location has been filled, and a new event has occurred, which causes the time/date
stamp to be overwritten. If RO is set to zero (rollover is disabled), the last data log memory location has
been filled, and a new event has occurred, ROF is set to one to indicate that more events have occurred
than the number of available memory locations. The event counter continues to record events, even after
the event-log memory is full. The ROF is cleared by the clear memory command.
Bit 0: Alarm Flag (ALMF). A logic one in the alarm flag bit indicates that the current time has matched
the time-of-day alarm registers. If, at the same time, the DISx bits are both logic zero, INT goes low to
issue an alarm interrupt. ALMF is a read-only bit and is cleared by accessing any of the Alarm Register
bytes either with a read or a write. Writing any memory location during a mission stops the mission. A
mission cannot be started when the DISx bits are set to zero.
20 of 25
DS1678 Real-Time Event Recorder
EVENT COUNTER REGISTER (3Ah–3Ch)
This three-byte register set provides the number of events that have been logged during the current datalogging operation (also known as a “mission”). The contents of this register can be used by software to
point to the most recent data sample in the event-log memory. The data in these registers are cleared
when the event-log memory is cleared. The event counter is not incremented when the ETC reaches
FFFFh and rolls over to the next 16 bits of memory.
ADDRESS POINTER REGISTER (3Fh–40h)
The address pointer register always contains the address that the next data LSB is written to in the eventlog memory. The address pointer registers are located in the main memory map at LSB (3Fh) and MSB
(40h). These are helpful in recovering all the data if a rollover occurs. The address pointer points to the
oldest event in the memory after a rollover. This is the memory location that would be overwritten by the
next event. Read the data from this point to the end of the memory and the start time stamp, including the
two-byte ETC from the last event to recover all the data in the correct order.
GLITCH-CONTROL CIRCUIT
The DS1678 has a built-in glitch-control circuit to filter noise on INT from triggering false events. A
minimum of one internal clock cycle (0.122ms) up to a maximum of two internal clock cycles (0.245ms)
are required to recognize a transition on the input as an event. An event then requires an additional six to
eight internal clock cycles (0.752ms to 0.977ms) to be processed and recorded into memory. This means
that the minimum event occurrence that can be recognized by the DS1678 requires seven to 10 internal
clock cycles (0.854ms to 1.22ms). Failure to ensure this timing causes the event to be ignored. Thus, it is
recommended that you design with the maximum timing specs. See Figure 5.
INT has a weak internal pulldown resistor to prevent the pin from floating if the signal connected to the
pin is tri-stated. Without the resistor, the input would float and potentially log phantom events. With the
pulldown resistor, the pin can be transitioned to a low state, causing an event to be recorded if INT is held
high by an outside signal that becomes tri-stated.
Figure 5. Event Recognition Timing
EVENT ON BOTH EDGES
EVENT ON RISING EDGE
GOOD EVENTS
GOOD EVENTS
tEVENT
tGLITCH
TRANSITION
POINT
INT
EVENT 1
tEVENT
tGLITCH
TRANSITION
POINT
INT
EVENT 2
EVENT 1
EVENT 2
BAD EVENT 1
BAD EVENT 1
tGLITCH
tGLITCH
TRANSITION
POINT
INT
BAD EVENT 2
TRANSITION
POINT
INT
BAD EVENT 2
tEVENT
tEVENT
INT
TRANSITION
POINT
EVENT 1
INT
TRANSITION
POINT
EVENT 1 EVENT 2
IS MISSED
EVENT 2
IS MISSED
21 of 25
DS1678 Real-Time Event Recorder
SECURITY
The DS1678 provides several measures to ensure data integrity for the end user. These security measures
are intended to prevent third-party intermediaries from tampering with the data that has been stored in the
event-log memory.
As a first security measure, the event-log memory is read-only from the perspective of the end user. The
DS1678 can write the data into these memory banks, but the end user cannot write data to individual
registers. This prevents an unscrupulous intermediary from writing false data to the DS1678. The end
user, however, can clear the contents of the event-log memory. A new mission cannot be started unless
the MEM CLR bit has been set to one to indicate that the memory and registers are cleared.
As a second security measure, changing any value in the memory including the RTC and control registers
stops event logging and clears the MIP and ME bits. The MEM CLR bit must be set to one so the
memory and registers are cleared before a new event-log mission can begin.
I2C SERIAL DATA BUS
The DS1678 supports a bidirectional I2C bus and data transmission protocol. A device that sends data
onto the bus is defined as a transmitter, and a device receiving data as a receiver. The device that controls
the message is called a “master.” The devices that are controlled by the master are “slaves.” The bus must
be controlled by a master device that generates the serial clock (SCL), controls the bus access, and
generates the START and STOP conditions. The DS1678 operates as a slave on the I2C bus. Connections
to the bus are made via the open-drain I/O lines SDA and SCL.
The following bus protocol has been defined (Figure 6):
Data transfer can 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 are interpreted as control signals.
Accordingly, the following bus conditions have been defined:
Bus not busy: Both data and clock lines remain HIGH.
Start data transfer: A change in the state of the data line, from HIGH to LOW, while the clock is HIGH,
defines a START condition.
Stop data transfer: A change in the state of the data line, from LOW to HIGH, while the clock line is
HIGH, defines the STOP condition.
Data valid: 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. The
number of data bytes transferred between START and STOP conditions is not limited, and is determined
by the master device. The information is transferred byte-wise and each receiver acknowledges with a
ninth bit. Within the bus specifications a standard mode (100kHz clock rate) and a fast mode (400kHz
clock rate) are defined. The DS1678 works in both modes.
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.
22 of 25
DS1678 Real-Time Event Recorder
A device that acknowledges must 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. A master must signal 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. In this case,
the slave must leave the data line HIGH to enable the master to generate the STOP condition.
Figure 6 details how data transfer is accomplished on the I2C bus. Depending upon the state of the R/W
bit, two types of data transfer are possible:
1) Data transfer from a master transmitter to a slave receiver. The first byte transmitted by the
master is the slave address. Next follows a number of data bytes. The slave returns an acknowledge
bit after each received byte.
2) Data transfer from a slave transmitter to a master receiver. The first byte (the slave address) is
transmitted by the master. The slave then returns an acknowledge bit. Next follows a number of data
bytes transmitted by the slave to the master. The master returns an acknowledge bit after all received
bytes other than the last byte. At the end of the last received byte, a “not acknowledge” is returned.
The master device generates all the serial clock pulses and the START and STOP conditions. A transfer is
ended with a STOP condition or with a repeated START condition. Because a repeated START condition
is also the beginning of the next serial transfer, the bus is not released.
The DS1678 can operate in the following two modes:
1) Slave receiver mode (DS1678 write mode): Serial data and clock are received through SDA and
SCL. After each byte is received, the receiver transmits an acknowledge bit. START and STOP
conditions are recognized as the beginning and end of a serial transfer. The slave address byte is the
first byte received after master generates the START condition. The address byte contains the 7-bit
DS1678 address, which is 1001010, followed by the direction bit (R/W), which is 0. The second byte
from the master is the register address. This sets the register pointer. If the write is being done to set
the register pointer, a STOP or repeated START may then be sent by the master. Otherwise, the
master then transmits each byte of data, with the DS1678 acknowledging each byte received. The
master generates a STOP condition to terminate the data write (Figure 7).
2) Slave transmitter mode (DS1678 read mode): The first byte is received and handled as in the slave
receiver mode. However, in this mode, the direction bit indicates that the transfer direction is
reversed. Serial data is transmitted on SDA by the DS1678 while the serial clock is input on SCL. The
slave address byte is the first byte received after the master generates a START condition. The
address byte contains the 7-bit DS1678 address, which is 1001010, followed by the direction bit
(R/W), which is 1. After receiving a valid slave address byte and direction bit, the DS1678 generates
an acknowledge on the SDA line. The DS1678 begins to transmit data on each SCL pulse starting
with the register address pointed to by the register pointer. As the master reads each byte, it must
generate an acknowledge. The DS1678 must receive a “not acknowledge” on the last byte to end a
read (Figure 7).
23 of 25
DS1678 Real-Time Event Recorder
Figure 6. Data Transfer on I2C Serial Bus
SDA
MSB
slave address
R/W
direction
bit
acknowledgement
signal from receiver
acknowledgement
signal from receiver
1
SCL
2
6
7
8
9
1
2
3-8
8
9
ACK
START
CONDITION
ACK
STOP CONDITION
OR
REPEATED
START CONDITION
repeated if more bytes
are transferred
Figure 7. I2C Serial Communication with DS1678
W rite to M e m o ry A d d re s s P o in te r
SCL
SDA
S
1
0
0
1
0
1
0
W
A
D e vic e A d d re s s B yte
S ta rt
A7
A6
A5
A4
A3
A2
A1
A0
M e m o ry A d d re s s B yte
D S 1678
ACK
A
P
D S 1 6 7 8 S to p
ACK
W rite to M e m o ry L o c a tio n (S in g le B y te )
SCL
SDA
S
1
0
0
1
0
1
0
W
D e vic e A d d re s s B yte
S ta rt
A
A7
A6
A5
A4
A3
A2
A1
M e m o ry A d d re s s B yte
D S 16 7 8
ACK
A
A0
D6
D7
D4
D5
D3
D2
D1
ACK
P
D S 16 7 8 S to p
D a ta B yte
D S1678
A
D0
ACK
R e a d S in g le B y te fro m C u rre n t M e m o ry A d d re s s P o in te r L o c a tio n
SCL
SDA
S
1
0
0
1
0
1
0
Rd
D e vic e A d d re s s B yte
S ta rt
A
D7
D6
D5
D4
D3
D2
D1
D0
D a ta B yte
D S1678
ACK
N
P
M a s te r S to p
NACK
R e a d M u ltip le B y te s fro m C u rre n t M e m o ry A d d re s s P o in te r L o c a tio n
SCL
SDA
S
1
0
0
1
0
1
0
Rd
D e vic e A d d re s s B yte
S ta rt
A
D7
D6
D5
D4
D3
D2
D1
D0
M o s t S ig n ific a n t
D a ta B yte
D S1678
ACK
A
M a s te r
ACK
D1
D2
D3
D4
D5
D6
D7
N
D0
P
M a s te r S to p
NACK
L e a s t S ig n ific a n t
D a ta B yte
R e a d S in g le B y te fro m N e w M e m o ry A d d re s s P o in te r L o c a tio n
SCL
SDA
S
S ta rt
1
0
0
1
0
1
0
W
D e vic e A d d re s s B yte
A
A7
D S1678
ACK
A6
A5
A4
A3
A2
A1
M e m o ry A d d re s s B yte
SCL
SDA
D7
D6
D5
D4
D3
D2
D a ta B yte
D1
D0
N
P
M a s te r S to p
NACK
24 of 25
A0
A
R
1
0
D S 1 67 8 R e p e a te d
ACK
S ta rt
0
1
0
1
0
D e vic e A d d re s s
B yte
Rd
A
D S 1678
ACK
DS1678 Real-Time Event Recorder
CHIP INFORMATION
TRANSISTOR COUNT: 110,836
PROCESS: CMOS
SUBSTRATE CONNECTED TO GROUND
THERMAL INFORMATION
PART
8 PDIP
8 SO
THETA-JA
(°C/W)
110
113
THETA-JC
(°C/W)
40
31
PACKAGE INFORMATION
(For the latest package outline information, go to www.maxim-ic.com/DallasPackInfo.)
PACKAGE
DOCUMENT
NUMBER
8-Pin Plastic DIP
(300 mils)
56-G5005-000.pdf
8-Pin SO (208 mils)
56-G4010-001.pdf
25 of 25
Maxim/Dallas Semiconductor cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim/Dallas Semiconductor product.
No circuit patent licenses are implied. Maxim/Dallas Semiconductor reserves the right to change the circuitry and specifications without notice at any time.
Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600
© 2005 Maxim Integrated Products • Printed USA
The Maxim logo is a registered trademark of Maxim Integrated Products, Inc. The Dallas logo is a registered trademark of Dallas Semiconductor Corporation.