Freescale Semiconductor MC68HC908MR32 Manual Do Utilizador

Página de 282
Error Conditions
MC68HC908MR32 • MC68HC908MR16 Data Sheet, Rev. 6.1
Freescale Semiconductor
203
15.6  Error Conditions
These flags signal SPI error conditions:
Overflow (OVRF) — Failing to read the SPI data register before the next full byte enters the shift 
register sets the OVRF bit. The new byte does not transfer to the receive data register, and the 
unread byte still can be read. OVRF is in the SPI status and control register.
Mode fault error (MODF) — The MODF bit indicates that the voltage on the slave select pin (SS) 
is inconsistent with the mode of the SPI. MODF is in the SPI status and control register.
15.6.1  Overflow Error
The overflow flag (OVRF) becomes set if the receive data register still has unread data from a previous 
transmission when the capture strobe of bit 1 of the next transmission occurs. If an overflow occurs, all 
data received after the overflow and before the OVRF bit is cleared does not transfer to the receive data 
register and does not set the SPI receiver full bit (SPRF). The unread data that transferred to the receive 
data register before the overflow occurred can still be read. Therefore, an overflow error always indicates 
the loss of data. Clear the overflow flag by reading the SPI status and control register and then reading 
the SPI data register.
OVRF generates a receiver/error CPU interrupt request if the error interrupt enable bit (ERRIE) is also 
set. MODF and OVRF can generate a receiver/error CPU interrupt request. See 
possible to enable MODF or OVRF individually to generate a receiver/error CPU interrupt request. 
However, leaving MODFEN low prevents MODF from being set.
If the CPU SPRF interrupt is enabled and the OVRF interrupt is not, watch for an overflow condition. 
 shows how it is possible to miss an overflow. The first part of 
 shows how it is 
possible to read the SPSCR and SPDR to clear the SPRF without problems. However, as illustrated by 
the second transmission example, the OVRF bit can be set in between the time that SPSCR and SPDR
are read.
Figure 15-9. Missed Read of Overflow Condition
READ
READ
OVRF
SPRF
BYTE 1
BYTE 2
BYTE 3
BYTE 4
BYTE 1 SETS SPRF BIT.
CPU READS SPSCR WITH SPRF BIT SET
CPU READS BYTE 1 IN SPDR,
BYTE 2 SETS SPRF BIT.
CPU READS SPSCR WITH SPRF BIT SET
BYTE 3 SETS OVRF BIT. BYTE 3 IS LOST.
CPU READS BYTE 2 IN SPDR, CLEARING SPRF BIT,
BYTE 4 FAILS TO SET SPRF BIT BECAUSE
1
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
CLEARING SPRF BIT.
BUT NOT OVRF BIT.
OVRF BIT IS NOT CLEARED. BYTE 4 IS LOST.
AND OVRF BIT CLEAR.
AND OVRF BIT CLEAR.
SPSCR
SPDR