Datasheet

2010-2013 Microchip Technology Inc. DS20002266E-page 41
MCP79410/MCP79411/MCP79412
10.2.5 READ OPERATION
Read operations are initiated in the same way as write
operations with the exception that the R/W
bit of the
control byte is set to one. There are three basic types
of read operations: current address read, random read,
and sequential read.
10.2.5.1 Current Address Read
The MCP7941X contains an address counter that
maintains the address of the last word accessed,
internally incremented by one. Therefore, if the
previous read access was to address n (n is any legal
address), the next current address read operation
would access data from address n + 1. In the case of a
page write, if the last byte written is the last byte of a
page, the next address location would be the first byte
of the same page written.
Upon receipt of the control byte with R/W
bit set to one,
the MCP7941X issues an Acknowledge and transmits
the 8-bit data word. The master will not acknowledge
the transfer but does generate a Stop condition and the
MCP7941X discontinues transmission (Figure 10-1).
FIGURE 10-1: CURRENT ADDRESS READ
(EEPROM SHOWN)
10.2.5.2 Random Read
Random read operations allow the master to access
any memory location in a random manner. To perform
this type of read operation, first the word address must
be set. This is done by sending the word address to the
MCP7941X as part of a write operation (R/W
bit set to
0’). After the word address is sent, the master
generates a Start condition following the Acknowledge.
This terminates the write operation, but not before the
internal Address Pointer is set. Then, the master issues
the control byte again but with the R/W
bit set to a one.
The MCP7941X will then issue an Acknowledge and
transmit the 8-bit data word. The master will not
acknowledge the transfer but it does generate a Stop
condition which causes the MCP7941X to discontinue
transmission (Figure 10-2). After a random Read
command, the internal address counter will point to the
address location following the one that was just read.
10.2.5.3 Sequential Read
Sequential reads are initiated in the same way as a
random read except that after the MCP7941X transmits
the first data byte, the master issues an Acknowledge
as opposed to the Stop condition used in a random
read. This Acknowledge directs the MCP7941X to
transmit the next sequentially addressed 8-bit word
(Figure 10-3). Following the final byte transmitted to the
master, the master will NOT generate an Acknowledge
but will generate a Stop condition. To provide
sequential reads, the MCP7941X contains an internal
Address Pointer which is incremented by one at the
completion of each operation. This Address Pointer
allows the entire memory contents to be serially read
during one operation. The internal Address Pointer will
automatically roll over to the start of the Block.
FIGURE 10-2: RANDOM READ (EEPROM SHOWN)
FIGURE 10-3: SEQUENTIAL READ (EEPROM SHOWN)
BUS ACTIVITY
MASTER
SDA LINE
BUS ACTIVITY
P
S
S
T
O
P
CONTROL
BYTE
S
T
A
R
T
DATA
A
C
K
N
O
A
C
K
1100 1
BYTE
111
BUS ACTIVITY
MASTER
SDA LINE
BUS ACTIVITY
A
C
K
N
O
A
C
K
A
C
K
A
C
K
S
T
O
P
S
T
A
R
T
CONTROL
BYTE
ADDRESS
BYTE
CONTROL
BYTE
DATA
BYTE
S
T
A
R
T
S
1010 0
111
S 1010 1 P
BUS ACTIVITY
MASTER
SDA LINE
BUS ACTIVITY
CONTROL
BYTE
DATA n DATA n + 1 DATA n + 2 DATA n + X
N
O
A
C
K
A
C
K
A
C
K
A
C
K
A
C
K
S
T
O
P
P