Specifications
91
3706C–MICRO–2/11
AT89LP3240/6440
Figure 16-2. Mode 0 Waveforms
Mode 0 may be used as a hardware accelerator for software emulation of serial interfaces such
as a half-du plex Serial Peripheral Interface (SPI) in mode (0,0) or (1,1) or a Two-Wire Interface
(TWI) in master mode. An example of Mode 0 emulating a TWI master device is shown in Figure
16-3. In this example, the start, stop, and acknowledge a
re handled in software while the byte
transmission is done in hardware. Falling/rising edges on TXD are created by setting/clearing
SM2. Rising/falling edges on RXD are forced by setting/clearing the P3.0 register bit. SM2 and
P3.0 must be 1 while the byte is being transferred.
Figure 16-3. UART Mode 0 TWI Emulation (SMOD1 = 1)
Mode 0 transfers data LSB first whereas
SPI or TWI are generally MSB first. Emulation of these
interfaces may require bit reversal of the transferred data b ytes. The following code example
reverses the bits in the accumulator:
EX: MOV R7, #8
REVRS: RLC A ; C << msb(ACC)
XCH A, R6
RRC A ; msb(ACC) >> B
XCH A, R6
DJNZ R7, REVRS
7
RXD (TX)
TXD
6543210
RXD (RX)
01234567
7
RXD (TX)
TXD
6543210
RXD (RX)
01234567
7
RXD (TX)
TXD
6543210
RXD (RX)
01234567
7
RXD (TX)
TXD
6543210
RXD (RX)
01234567
SMOD1 = 0
SM2 = 0
SMOD1 = 1
SM2 = 0
SMOD1 = 0
SM2 = 1
SMOD1 = 1
SM2 = 1
7
(SDA) RXD
(SCL) TXD
6543210 ACK
SM2
P3.0
Write to SBUF
TI
Sample ACK