beautypg.com

Cp3bt26 – National CP3BT26 User Manual

Page 124

background image

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