
50/94
ST72371/ST72372
I C BUS INTERFACE
(Cont’d)
4.4.4.2 Master Mode
To switch from default Slave mode to Master
mode a Start condition generation is needed.
Start condition and Transmit Slave address
Setting the START bit while the BUSY bit is clea-
red causes the interface to switch to Master mode
(M/SL bit set) and generates a Start condition.
Once the Start condition is sent:
– The EVF and SB bits are set by hardware with
an interrupt if the ITE bit is set.
Then the master waits for a read of the SR1 regis-
ter followed by a write in the DR register with the
Slave address byte,
holding the SCL line low
(see Figure 3 Transfer sequencing EV5).
Then the slave address byte is sent to the SDA
line via the internal shift register.
After completion of this transfer (and acknowledge
from the slave if the ACK bit is set):
– The EVF bit is set by hardware with interrupt
generation if the ITE bit is set.
Then the master waits for a read of the SR1 regis-
ter followed by a write inthe CR register (for exam-
ple set PE bit),
holding the SCL line low
(see Fi-
gure 3 Transfer sequencing EV6).
Next the master must enter Receiver or Transmit-
ter mode.
Master Receiver
Following the address transmission and after SR1
and CR registers have been accessed, themaster
receives bytes from the SDA line into theDR regis-
ter via the internal shift register. After each byte
the interface generates in sequence:
– Acknowledge pulse if if the ACK bit is set
– EVF and BTF bitsare set by hardware with anin-
terrupt if the ITE bit is set.
Then the interface waits for a read of the SR1 re-
gister followed by a read of the DR register,
hol-
ding the SCL line low
(see Figure 3 Transfer se-
quencing EV7).
To close the communication: before reading the
last byte from the DR register, set the STOP bit to
generate the Stop condition. The interface goes
automatically back to slave mode (M/SL bit clea-
red).
Note:
In order to generate the non-acknowledge
pulse after the last received data byte, the ACK bit
must be cleared just before reading the second
last data byte.
Master Transmitter
Following the address transmission and after SR1
register has been read, the master sends bytes
from the DR register to the SDA line via the inter-
nal shift register.
The master waits for a read of the SR1 register fol-
lowed by a write in the DR register,
holding the
SCL line low
(see Figure 3 Transfer sequencing
EV8).
When the acknowledge
interface sets:
– EVF and BTF bits with an interrupt if the ITE bit
is set.
To close the communication: after writing the last
byte to the DR register, set the STOP bit to gene-
rate the Stop condition. The interface goes auto-
matically back to slave mode (M/SL bit cleared).
bit is received, the
Error Cases
–
BERR
: Detection of a Stop or a Start condition
during a byte transfer. In this case, the EVF and
BERR bits are set by hardware with an interrupt
if ITE is set.
–
AF
: Detection of a non-acknowledge bit. In this
case, the EVF and AF bits are set by hardware
with an interrupt if the ITE bit is set. To resume,
set the START or STOP bit.
–
ARLO:
Detection of an arbitration lost condition.
In thiscase the ARLO bitis set by hardware (with
an interrupt if the ITE bit is set and the interface
goes automatically back to slavemode (theM/SL
bit is cleared).
Note
: In all these cases, the SCL line is not held
low; however, the SDA line can remain low due to
possible 0 bits transmitted last. It is then neces-
sary to release both lines by software.