679
SAM4CP [DATASHEET]
43051E–ATPL–08/14
34.7.3 Master Mode
34.7.3.1 Definition
The Master is the device that starts a transfer, generates a clock and stops it.
34.7.3.2 Application Block Diagram
Figure 34-5.
Master Mode Typical Application Block Diagram
34.7.3.3 Programming Master Mode
The following fields must to be programmed before entering Master mode:
1.
TWI_MMR.DADR (+ IADRSZ + IADR if a 10-bit device is addressed): The device address is used to access slave
devices in read or write mode.
2.
TWI_CWGR.CKDIV + CHDIV + CLDIV: Clock waveform.
3.
TWI_CR.SVDIS: Disables the slave mode
4.
TWI_CR.MSEN: Enables the master mode
Note:
If the TWI is already in master mode, the device address (DADR) can be configured without disabling the master
mode.
34.7.3.4 Master Transmitter Mode
After the master initiates a Start condition when writing into the Transmit Holding Register (TWI_THR), it sends a 7-bit
slave address, configured in the Master Mode register (DADR in TWI_MMR), to notify the slave device. The bit following
the slave address indicates the transfer direction, 0 in this case (MREAD = 0 in TWI_MMR).
The TWI transfers require the slave to acknowledge each received byte. During the acknowledge clock pulse (9th pulse),
the master releases the data line (HIGH), enabling the slave to pull it down in order to generate the acknowledge. The
master polls the data line during this clock pulse and sets the Not Acknowledge bit (NACK
)
in the status register
(TWI_SR) if the slave does not acknowledge the byte. As with the other status bits, an interrupt can be generated if
enabled in the interrupt enable register (TWI_IER). If the slave acknowledges the byte, the data written in the TWI_THR,
is then shifted in the internal shifter and transferred. When an acknowledge is detected, the TXRDY bit is set until a new
write in the TWI_THR.
TXRDY is used as Transmit Ready for the PDC transmit channel.
While no new data is written in the TWI_THR, the Serial Clock Line is tied low. When new data is written in the TWI_THR,
the SCL is released and the data is sent. Setting the STOP bit in TWI_CR generates a STOP condition.
After a Master Write transfer, the Serial Clock line is stretched (tied low) as long as no new data is written in the
TWI_THR or until a STOP command is performed.
See
Figure 34-6
,
Figure 34-7
, and
Figure 34-8
.
TWD
VDD
Host with
TWI
Interface
TWCK
Atmel TWI
Serial EEPROM
l
2C RTC
l
2C LCD
Controller
l
2C Temp.
Sensor
Slave 1
Slave 2
Slave 3
Slave 4
Rp
Rp
Rp: Pull up value as given by the l
2C Standard