beautypg.com

Low-current i, C communication, See figure 6 for an i – Rainbow Electronics DS1342 User Manual

Page 13

background image

Low-Current I

2

C RTCs for High-ESR Crystals

DS1341/DS1342

13

DS1341/DS1342s’ 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 indi-
cating it wants to read from the slave. If an incorrect
slave address is written, the DS1341/DS1342 assume
the master is communicating with another I

2

C device

and ignore the communication until the next START
condition is sent.
Memory Address: During an I

2

C 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.

I

2

C Communication

See Figure 6 for an I

2

C 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 acknowl-
edgment during all byte write operations.

Writing Multiple Bytes to a Slave: To write multiple
bytes to a slave, the master generates a START con-
dition, 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 requir-
ing the master to keep track of the memory address
counter is impractical, use the method for manipulat-
ing 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 mas-
ter 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),

Figure 6. I

2

C Transactions

SLAVE

ADDRESS

START

START

1

1

0

1

0

0

0

SLAVE

ACK

SLAVE

ACK

SLAVE

ACK

R/W

MSB

LSB

MSB

LSB

MSB

LSB

b7

b6

b5

b4

b3

b2

b1

b0

READ/

WRITE

REGISTER ADDRESS

b7

b6

b5

b4

b3

b2

b1

b0

DATA

STOP

SINGLE BYTE WRITE

-WRITE CONTROL REGISTER

TO 18h

MULTIBYTE WRITE

-WRITE DATE REGISTER

TO "02" AND MONTH

REGISTER TO "11"

SINGLE BYTE READ

-READ CONTROL REGISTER

MULTIBYTE READ

-READ ALARM 2 HOURS

AND DATE VALUES

START

REPEATED

START

D1h

MASTER

NACK

STOP

1 1 0 1 0 0 0 0

0 0 0 0 1 1 1 0

0Eh

1 1 0 1 0 0 0 1

1 1 0 1 0 0 0 0

0 0 0 0 1 1 1 0

D0h

0Eh

STOP

VALUE

START 1 1 0 1 0 0 0 0

0 0 0 0 0 1 0 0

D0h

04h

DATA

MASTER

NACK

STOP

VALUE

DATA

02h

18h

EXAMPLE I

2

C TRANSACTIONS

TYPICAL I

2

C WRITE TRANSACTION

0 0 0 1 1 0 0 0

0 0 0 0 0 0 1 0

D0h

A)

C)

B)

D)

SLAVE

ACK

SLAVE

ACK

SLAVE

ACK

SLAVE

ACK

SLAVE

ACK

SLAVE

ACK

SLAVE

ACK

REPEATED

START

D1h

MASTER

ACK

1 1 0 1 0 0 0 1

VALUE

DATA

SLAVE

ACK

SLAVE

ACK

SLAVE

ACK

START 1 1 0 1 0 0 0 0

0 0 0 0 1 1 0 0

D0h

0Ch

SLAVE

ACK

SLAVE

ACK

STOP

11h

0 0 0 1 0 0 0 1

SLAVE

ACK