www.national.com
124
CP3BT26
ity is combined by the 4-bit TXPRI value and the 4-bit buffer
number (0...14) as shown below. The lowest resulting num-
ber results in the highest transmit priority.
Table 47 shows the transmit priority configuration if the pri-
ority is TXPRI = 0 for all transmit buffers:
Table 48 shows the transmit priority configuration if TXPRI
is different from the buffer number:
Note:
If two buffers have the same priority (PRI), the buffer
with the lower buffer number will have the higher priority.
19.6.3
Transmit Procedure
The transmission of a CAN message must be executed as
follows (see also Figure 57)
1. Configure the CNSTAT status field as
TX_NOT_ACTIVE. If the status is TX_BUSY, a previ-
ous transmit request is still pending and software has
no access to the data contents of the buffer. In that
case, software may choose to wait until the buffer be-
comes available again as shown. Other options are to
exit from the update routine until the buffer has been
transmitted with an interrupt generated, or the trans-
mission is aborted by an error.
2. Load buffer identifier and data registers. (For remote
frames the RTR bit of the identifier needs to be set and
loading data bytes can be omitted.)
3. Configure the CNSTAT status field to the desired value:
— TX_ONCE to trigger the transmission process of a
single frame.
— TX_ONCE_RTR to trigger the transmission of a sin-
gle data frame and then wait for a received remote
frame to trigger consecutive data frames.
— TX_RTR waits for a remote frame to trigger the trans-
mission of a data frame.
Writing TX_ONCE or TX_ONCE_RTR in the CNSTAT sta-
tus field will set the internal transmit request for the CAN
module.
If a buffer is configured as TX_RTR and a remote frame is
received, the data contents of the addressed buffer will be
transmitted automatically without further CPU activity.
Figure 57.
Buffer Write Routine
7
4
3
0
TXPRI
BUFFER #
Table 47
Transmit Priority (TXPRI = 0)
TXPRI
Buffer
Number
PRI
TX Priority
0
0
0
Highest
0
1
1
:
:
:
:
:
:
:
:
0
14
14
Lowest
Table 48
Transmit Priority (TXPRI not 0)
TXPRI
Buffer
Number
PRI
TX Priority
14
0
224
Lowest
13
1
209
12
2
194
11
3
179
10
4
164
9
5
149
8
6
134
7
7
119
6
8
104
5
9
89
4
10
74
3
11
59
2
12
44
1
13
29
0
14
14
Highest
Exit
Write_buffer
Write
TX_ONCE
or
TX_ONCE_RTR
or
TX_RTR
Write
TX_NOT_ACTIVE
Write ID/data
TX_BUSYx?
Yes
No
DS041