MCF8315A write transaction over I2C
involves the following sequence (see Figure 7-57).
- I2C start
condition.
- Start is followed by the
I2C target ID byte, made up of 7-bit target ID along with the
R/W bit set to 0b. ACK in yellow box indicates that MCF8315A has processed the received target ID which has matched
with it's I2C target ID and therefore will proceed with this
transaction. If target ID received does not match with the I2C ID
of MCF8315A, then the transaction is ignored.
and no ACK is sent by MCF8315A.
- The target ID byte is
followed by the 24-bit control word sent one byte at a time. Bit 23 in the
control word is 0b as it is a write transaction. ACK in blue boxes
correspond to acknowledgements sent by MCF8315A
to the controller that the previous byte (of control word) has been received
and next byte can be sent.
- The 24-bit control word is
then followed by the data bytes. The number of data bytes sent by the
controller depends on the DLEN field in the control word.
- While sending data
bytes, the LSB byte is sent first. Refer to Section 7.6.2.4
for more details.
- 16-bit/32-bit write –
The data sent is written to the address mentioned in control
word.
- 64-bit Write – 64-bit
is treated as two successive 32-bit writes. The address mentioned in
control word is taken as Addr_1. Addr_2 is internally calculated by
MCF8315A by incrementing Addr_1 by
0x2. A total of 8 data bytes are sent. The first 4 bytes (sent in
LSB first) are written to Addr_1 and the next 4 bytes are written to
Addr_2.
- ACK in blue boxes
(after every data byte) correspond to the acknowledgement sent by
MCF8315A to the controller that the
previous data byte has been received and next data byte can be
sent.
- If CRC is enabled, the packet
ends with a CRC byte. CRC is calculated for the entire packet (Target ID + W
bit, Control Word, Data Bytes). MCF8315A will
send an ACK on receiving the CRC byte.
- I2C Stop condition
from the controller to terminate the transaction.