Datasheet

71M6543F/71M6543G Data Sheet
v2 69
SPI Safe Mode
Sometimes it is desirable to prevent the SPI interface from writing to arbitrary RAM locations and thus
disturbing MPU and CE operation. This is especially true in AFE applications. For this reason, the SPI
SAFE mode was created. In SPI SAFE mode, SPI write operations are disabled except for a 16 byte
transfer region at address 0x400 to 0x40F. If the SPI host needs to write to other addresses, it must use
the SPI_CMD register to request the write operation from the MPU. SPI SAFE mode is enabled by the
SPI_SAFE bit (I/O RAM 0x270C[3]).
Single-Byte Transaction
If a transaction is a single byte, the byte is interpreted as SPI_CMD. Regardless of the byte value,
single-byte transactions always update the SPI_CMD register and cause an SPI interrupt to be generated.
Multi-Byte Transaction
As shown in Figure 23, multi-byte operations consist of a 16 bit address field, an 8 bit CMD, a status byte,
and a sequence of data bytes. A multi byte transaction is three or more bytes.
A15 A14 A1
A0
C0
0 31
x
D6 D1 D0 D7 D6 D1 D0
C5C6C7
(From Host) SPI_CSZ
(From Host) SPI_CK
(From Host) SPI_DI
(From 6543) SPI_DO
8 bit CMD
16 bit Address DATA[ADDR]
DATA[ADDR+1]
15 16 23 24 32 39
Extended Read . . .
SERIAL READ
A15
A14
A1 A0 C0C5C6C7x
8 bit CMD16 bit Address
DATA[ADDR]
DATA[ADDR+1]
Extended Write . . .
SERIAL WRITE
D6 D1 D0 D7 D6 D1 D0
x
HI Z
HI Z
Status Byte
ST7 ST6 ST5 ST0 D7
40 47
0 31
15 16 23 24 32 39 40 47
Status Byte
D7
ST7 ST6 ST5 ST0
(From Host) SPI_CSZ
(From Host) SPI_CK
(From Host) SPI_DI
(From 6543) SPI_DO
Figure 23: SPI Slave Port - Typical Multi-Byte Read and Write operations
Table 57: SPI Command Sequences
Command Sequence Description
ADDR 1xxx xxxx STATUS
Byte0 ... ByteN
Read data starting at ADDR. ADDR is auto-incremented until SPI_CSZ
is raised. Upon completion, SPI_CMD (SFR 0xFD) is updated to 1xxx xxxx
and an SPI interrupt is generated. The exception is if the command
byte is 1000 0000. In this case, no MPU interrupt is generated and
SPI_CMD is not updated.
ADDR 0xxx xxxx STATUS
Byte0 ... ByteN
Write data starting at ADDR. ADDR is auto-incremented until SPI_CSZ is
raised. Upon completion, SPI_CMD is updated to 0xxx xxxx and an SPI
interrupt is generated. The exception is if the command byte is 0000
0000. In this case, no MPU interrupt is generated and SPI_CMD is not
updated.
Table 58: SPI Registers
Name Location Rst Wk Dir Description
EX_SPI
2701[7]
0
0
R/W
SPI interrupt enable bit.
SPI_CMD
SFR FD[7:0]
R
SPI command. The 8-bit command from the bus master.
SPI_E
270C[4] 1 1 R/W
SPI port enable bit. It enables the SPI interface on pins
SEGDIO36 SEGDIO39.
IE_SPI
SFR F8[7]
0
0
R/W
SPI interrupt flag. Set by hardware, cleared by writing a 0.