247
7679H–CAN–08/08
AT90CAN32/64/128
The data index (INDX) is the address pointer to the required data byte. The data byte can be
read or write. The data index is automatically incremented after every access if the AINC* bit is
reset. A roll-over is implemented, after data index=7 it is data index=0.
The first byte of a CAN frame is stored at the data index=0, the second one at the data index=1,
...
19.6
CAN Timer
A programmable 16-bit timer is used for message stamping and time trigger communication
(TTC).
Figure 19-11.
CAN Timer Block Diagram
19.6.1
Prescaler
An 8-bit prescaler is initialized by CANTCON register. It receives the clk
IO
frequency divided by
8. It provides clk
CANTIM
frequency to the CAN Timer if the CAN controller is enabled.
T
clk
CANTIM
=
T
clk
IO
x 8 x (CANTCON [7:0] + 1)
19.6.2
16-bit Timer
This timer starts counting from 0x0000 when the CAN controller is enabled (ENFG bit). When
the timer rolls over from 0xFFFF to 0x0000, an interrupt is generated (OVRTIM).
19.6.3
Time Triggering
Two synchronization modes are implemented for TTC (TTC bit):
– synchronization on Start of Frame (SYNCTTC=0),
– synchronization on End of Frame (SYNCTTC=1).
In TTC mode,
a frame is sent once, even if an error occurs
.
19.6.4
Stamping Message
The capture of the timer value is done in the MOb which receives or sends the frame. All man-
aged MOb are stamped, the stamping of a received (sent) frame occurs on RxOk (TXOK).
clk
IO
clk
CANTIM
CANTIM
CANTTC
CANSTM[i]
CANTCON
TTC
SYNCTTC
"EOF
"
"SOF
"
OVRTIM
TXOK[i]
RXOK[i]
overrun
ENFG
8