www.ti.com
I2C Registers
21.4.1.17 I2C_CNT Register (offset = 98h) [reset = 0h]
I2C_CNT is shown in Figure 21-32 and described in Table 21-25.
CAUTION: During an active transfer phase (between STT having been set to 1 and reception of ARDY),
no modification must be done in this register. Changing it may result in an unpredictable behavior. This
read/write register is used to control the numbers of bytes in the I2C data payload.
Figure 21-32. I2C_CNT Register
31 30 29 28 27 26 25 24
Reserved
R-0h
23 22 21 20 19 18 17 16
Reserved
R-0h
15 14 13 12 11 10 9 8
DCOUNT
R/W-0h
7 6 5 4 3 2 1 0
DCOUNT
R/W-0h
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 21-25. I2C_CNT Register Field Descriptions
Bit Field Type Reset Description
31-16 Reserved R 0h
15-0 DCOUNT R/W 0h Data count.
I2C Master Mode only (receive or transmit
F/S).
This
16-bit countdown counter decrements by 1 for every byte received or
sent through the I2C interface.
A write initializes DCOUNT to a saved initial value.
A read returns the number of bytes that are yet to be received or
sent.
A read into DCOUNT returns the initial value only before a start
condition and after a stop condition.
When DCOUNT reaches 0, the core generates a stop condition if a
stop condition was specified (I2C_CON.STP = 1) and the ARDY
status flag is set to 1 in the I2C_IRQSTATUS_RAW register.
Note that DCOUNT must not be reconfigured after I2C_CON.STT
was enabled and before ARDY is received.
Note
1: In case of I2C mode of operation, if I2C_CON.STP = 0, then the
I2C asserts SCL = 0 when DCOUNT reaches 0.
The CPU can then reprogram DCOUNT to a new value and resume
sending or receiving data with a new start condition (restart).
This process repeats until the CPU sets to 1 the I2C_CON.STP bit.
The ARDY flag is set each time DCOUNT reaches 0 and DCOUNT
is reloaded to its initial value.
Values after reset are low (all 16 bits).
Note
2: Since for DCOUNT = 0, the transfer length is 65536, the module
does not allow the possibility to initiate zero data bytes transfers.
0x0 = Data counter = 65536 bytes (216)
0x1 = Data counter = 1 bytes
0xFFFF = Data counter = 65535 bytes (216 - 1)
3747
SPRUH73H–October 2011–Revised April 2013 I2C
Submit Documentation Feedback
Copyright © 2011–2013, Texas Instruments Incorporated