
GR716-DS-UM, May 2019, Version 1.29
394
www.cobham.com/gaisler
GR716
into a wait state. If the value of the RMOD field is ‘0’ the core will listen for the master’s next action.
If the value of the RMOD field is ‘1’ the core will drive SCL low until the Receive register has been
read and the Status register bit Byte Received (REC) has been cleared. Note that the core has not
accepted a byte if it does not acknowledge the byte.
When the core receives a read request it evaluates the Transmit Valid (TV) bit in the Control register.
If the Transmit Valid bit is set the core will acknowledge the address and proceed to transmit the data
held in the Transmit register. After a byte has been transmitted the core assigns the value of the Con-
trol register bit Transmit Always Valid (TAV) to the Transmit Valid (TV) bit. This mechanism allows
the same byte to be sent on all read requests without software intervention. The value of the Transmit
Mode (TMOD) bit determines how the core acts after a byte has been transmitted and the master has
acknowledged the byte, if the master NAKs the transmitted byte the transfer has ended and the core
goes into an idle state. If TMOD is set to ‘0’ when the master acknowledges a byte the core will con-
tinue to listen to the bus and wait for the master’s next action. If the master continues with a sequential
read operation the core will respond to all subsequent requests with the byte located in the Transmit
Register. If TMOD is ‘1’ the core will drive SCL low after a master has acknowledged the transmitted
byte. SCL will be driven low until the Transmit Valid bit in the control register is set to ‘1’. Note that
if the Transmit Always Valid (TAV) bit is set to ‘1’ the Transmit Valid bit will immediately be set and
the core will have show the same behavior for both Transmit modes.
When operating in Receive or Transmit Mode ‘1’, the bus will be blocked by the core until software
has acknowledged the transmitted or received byte. This may have a negative impact on bus perfor-
mance and it also affects single byte transfers since the master is prevented to generate STOP or
repeated START conditions when SCL is driven low by the core.
The core reports three types of events via the Status register. When the core NAKs a received byte, or
its address in a read transfer, the NAK bit in the Status register will be set. When a byte is successfully
received the core asserts the Byte Received (REC) bit. After transmission of a byte, the Byte Trans-
mitted (TRA) bit is asserted. These three bits can be used as interrupt sources by setting the corre-
sponding bits in the Mask register.
39.3
Registers
The core is programmed through registers mapped into APB address space.
Table 521.
I
2
C slave registers
APB address offset
Register
0x00
0x04
0x08
0x0C
0x10
0x14