User Guide

– –
– –
30 31
Exception Engine
The HumPRO
TM
is equipped with an internal exception engine to notify the
host microcontroller of an unexpected event. If errors occur during module
operation, an exception is raised. There are two methods of driving the EX
pin when an exception condition exists:
1. From the EXMASK and EXCEPT registers (legacy operation)
2. From the EEXMASKx and EEXFLAGx registers (standard operation)
If EXMASK is non-zero, the first method is used, otherwise the second
method is used.
For legacy operation with the 250 and 25 Series, the EX line is set and
reset by the Exception (EXCEPT) register processing. It is set when
an exception occurs and the exception code ANDed with the current
Exception Mask (EXMASK) register is non-zero. It is reset when the
EXCEPT register is read through a command. No other operations affect
the state of EX. Setting EXMASK non-zero does not change the state of
EX.
If an exception code is already present in the register when an error occurs,
the new exception code overwrites the old value. Exception codes are
organized by type for ease of masking. Figure 27 lists the exception codes
and their meanings.
HumPRO
TM
Series Transceiver Exception Codes
Exception Code Exception Name Description
0x08 EX_BUFOVFL Incoming UART buffer overflowed.
0x09 EX_RFOVFL Outgoing UART buffer overflowed.
0x13 EX_WRITEREGFAILED Attempted write to register failed.
0x20 EX_NORFACK
Acknowledgement packet not received
after maximum number of retries.
0x40 EX_BADCRC Bad CRC detected on incoming packet.
0x42 EX_BADHEADER Bad CRC detected in packet header.
0x43 EX_BADSEQID Sequence ID was incorrect in ACK packet.
0x44 EX_BADFRAMETYPE
Attempted transmit with Invalid setting in
reg:NETMODE or invalid packet type in
received packet header
Figure 27: HumPRO
TM
Series Transceiver Exception Codes
The EX line can be asserted to indicate to the host that an error has
occurred. The EXCEPT register must be read to reset the line. Figure 28
lists some example exception masks.
The exception mask has no effect on the exceptions stored in the
exception register. It only controls which exceptions affect the EX line.
The extended exception registers offer more functionality with more
exceptions and a separate bit for each exception. These registers are the
default and should be used with new applications. When an exception sets
an exception code in the EXCEPT register, the corresponding flag in the
EEXFLAG register is also set.
The EX line is set and reset by the Extended Exception Flags (EEXFLAG)
and Extended Exception Mask (EEXMASK) register processing. It is set
whenever the EEXFLAG value ANDed with the EEXMASK value is non-zero.
EX can change on any write to either of these registers that affects the
result of ANDing the registers. Clearing an EEXFLAG register bit or value
can leave EX set if there is another masked condition bit set.
The state of the EX line can also be read in the LSTATUS register, reducing
the number of hardware lines that are required.
HumPRO
TM
Series Transceiver Example Exception Masks
Exception Mask Exception Name
0x08 Allows only EX_BUFOVFL and EX_RFOVFL to trigger the EX line
0x10 Allows only EX_WRITEREGFAILED to trigger the EX line
0x20 Allows only EX_NORFACK to trigger the EX line
0x40
Allows only EX_BADCRC, EX_BADHEADER, EX_BADSEQID and
EX_BADFRAMETYPE exceptions to trigger the EX line
0x60
Allows EX_BADCRC, EX_BADHEADER, EX_BADSEQID, EX_
BADFRAMETYPE and EX_NORFACK exceptions to trigger the EX
line
0xFF Allows all exceptions to trigger the EX line
Figure 28: HumPRO
TM
Series Transceiver Example Exception Masks