MCF8329A write transaction over
I2C involves the following sequence (see Figure 7-53).
- 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 MCF8329A 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 MCF8329A, then the transaction is
ignored. and no ACK is sent by MCF8329A.
- 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 MCF8329A 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
MCF8329A 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
MCF8329A 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). MCF8329A will send an ACK on receiving the
CRC byte.
- I2C Stop condition
from the controller to terminate the transaction.