English
Language : 

DS1678 Datasheet, PDF (9/25 Pages) Maxim Integrated Products – Real-Time Event Recorder
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