GR740-UM-DS, Nov 2017, Version 1.7
267
www.cobham.com/gaisler
GR740
If the CanCONF.ABORT bit is set to 1b, all accesses to the AMBA AHB bus will be disabled after an
AMBA AHB error occurs, as indicated by the CanSTAT.AHBErr bit being 1b. The accesses will be
disabled until the CanSTAT register is read, and automatically clearing bit CanSTAT.AHBErr.
An AHB error response occurring on the AMBA AHB bus while a CAN message is being prefetched
will not cause an interrupt, but will stop the ongoing prefetch and further prefetch will be prevented
temporarily. The ongoing transmission of a CAN message from the fetch buffer will not be affected.
When the fetch buffer is freed after a successful transmission, a new fetch will be initiated, and if this
fetch results in an AHB error response occurring on the AMBA AHB bus, this will be handled as for
the case above. If no AHB error occurs, prefetch will be allowed again.
17.5.7 Enable and disable
When an enabled transmit channel is disabled (CanTxCTRL.ENABLE=0b), any ongoing CAN mes-
sage transfer request will not be aborted until a CAN bus arbitration is lost or the message has been
sent successfully. If the message is sent successfully, the read pointer (CanTxRD.READ) is automati-
cally incremented. Any associated interrupts will be generated.
The progress of the any ongoing access can be observed via the CanTxCTRL.ONGOING bit. The
CanTxCTRL.ONGOING must be 0b before the channel can be re-configured safely (i.e. changing
address, size or read pointer). It is also possible to wait for the Tx and TxLoss interrupts described
hereafter.
The channel can be re-enabled again without the need to re-configure the address, size and pointers.
Priority inversion is handled by disabling the transmitting channel, i.e. setting CanTxC-
TRL.ENABLE=0b as described above, and observing the progress, i.e. reading via the CanTxC-
TRL.ONGOING bit as described above. When the transmit channel is disabled, it can be re-
configured and a higher priority message can be transmitted. Note that the single shot mode does not
require the channel to be disabled, but the progress should still be observed as above.
No message transmission is started while the channel is not enabled.
17.5.8 Interrupts
During transmission several interrupts can be generated:
•
TxLoss:
Message arbitration lost for transmit (could be caused by
communications error, as indicated by other interrupts as well)
•
TxErrCntr: Error counter incremented for transmit
•
TxSync:
Synchronization message transmitted
•
Tx:
Successful transmission of one message
•
TxEmpty:
Successful transmission of all messages in buffer
•
TxIrq:
Successful transmission of a predefined number of messages
•
TxAHBErr: AHB access error during transmission
•
Off:
Bus-off condition
•
Pass:
Error-passive condition
The Tx, TxEmpty and TxIrq interrupts are only generated as the result of a successful message trans-
mission, after the CanTxRD.READ pointer has been incremented.
17.6
Reception
The receive channel is defined by the following parameters:
•
base address
•
buffer size