User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 569
UG585 (v1.11) September 27, 2016
Chapter 18: CAN Controller
3. Clear TxFIFO watermark interrupt. Write a 1 to can.ICR[13].
4. Read TxFIFO watermark status. Read can.ISR[13].
5. Enable TxFIFO watermark interrupt. Write a 1 to can.IER[13].
Example: Program TxFIFO Empty Interrupt (14)
The following steps can be used to control the TxFIFO empty interrupt:
1. Disable TxFIFO empty interrupt. Write a 1 to can.IER[14].
2. Clear TxFIFO empty interrupt. Write a 1 to can.ICR[14].
3. Enable TxFIFO empty interrupt. Write a 1 to can.IER[14].
4. Read TxFIFO empty status. Read can.ISR[14]. It indicates the status whether TxFIFO is empty or
not.
18.2.5 Rx Message Filtering
To filter Rx messages, configure and enable up to four acceptance filters with acceptance mask and
ID registers to determine whether to store messages in the RxFIFO, or to acknowledge and discard
them.
Acceptance filtering is performed in the following sequence:
1. The incoming identifier is masked with the bits in the Acceptance Filter Mask register.
2. The Acceptance Filter ID register is also masked with the bits in the Acceptance Filter Mask
register.
3. Both resulting values are compared.
4. If both these values are equal, then the message is stored in the RxFIFO.
5. Acceptance filtering is processed by each of the defined filters. If the incoming identifier passes
through any acceptance filter, then the message is stored in the RxFIFO.
Acceptance Filter Enable
The Acceptance Filter register (AFR) defines which acceptance filters to use. It includes four enable
bits that correspond to the four acceptance filters. Each Acceptance Filter ID register (AFIR) and
Acceptance Filter Mask register (AFMR) pair is associated with a use acceptance filter (UAF) bit.
When the UAF bit is 1, the corresponding acceptance filter pair is used for acceptance filtering.
When the UAF bit is 0, the corresponding acceptance filter pair is not used for acceptance filtering.
To modify an acceptance filter pair in normal mode, the corresponding UAF bit in this register must
first be set to 0. After the acceptance filter is modified, the corresponding UAF bit must be set to 1
for the filter to be enabled.
The UAF bits in the can.AFR register enable the Rx acceptance filters:
If all UAF bits are set to 0, then all received messages are stored in the RxFIFO.
If the UAF bits are changed from a 1 to 0 during reception of a CAN message, the message will
not be stored in the RxFIFO.