Serial Peripheral Interface (SPI)
Technical Data
MC68HC08AZ32A — Rev 1.0
240
Serial Peripheral Interface (SPI)
For More Information On This Product,
Go to: www.freescale.com
MOTOROLA
Figure 16-7. Missed Read of Overflow Condition
The first part of
Figure 16-7
shows how to read the SPSCR and SPDR
to clear the SPRF without problems. However, as illustrated by the
second transmission example, the OVRF flag can be set in the interval
between SPSCR and SPDR being read.
In this case, an overflow can easily be missed. Since no more SPRF
interrupts can be generated until this OVRF is serviced, it will not be
obvious that bytes are being lost as more transmissions are completed.
To prevent this, the OVRF interrupt should be enabled, or alternatively
another read of the SPSCR should be carried out following the read of
the SPDR. This ensures that the OVRF was not set before the SPRF
was cleared and that future transmissions will terminate with an SPRF
interrupt.
Figure 16-8
illustrates this process. Generally, to avoid this
second SPSCR read, enable the OVRF to the CPU by setting the ERRIE
bit.
READ SPDR
READ SPSCR
OVRF
SPRF
BYTE 1
BYTE 2
BYTE 3
BYTE 4
BYTE 1 SETS SPRF BIT.
CPU READS SPSCR WITH SPRF BIT SET
AND OVRF BIT CLEAR.
CPU READS BYTE 1 IN SPDR,
CLEARING SPRF BIT.
BYTE 2 SETS SPRF BIT.
CPU READS SPSCRW WITH SPRF BIT SET
AND OVRF BIT CLEAR.
BYTE 3 SETS OVRF BIT. BYTE 3 IS LOST.
CPU READS BYTE 2 IN SPDR, CLEARING SPRF
BUT NOT OVRF BIT.
BYTE 4 FAILS TO SET SPRF BIT BECAUSE
OVRF BIT IS SET. BYTE 4 IS LOST.
1
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
F
Freescale Semiconductor, Inc.
n
.