Hello
We're developing CAN FD on S32K146 board, I have come confusions about the Tx arbitration start delay which do need your kind support.
1. Is it mandatory to configure the TASD bit in FlexCAN CTRL2 registor using non-zero value?
2. If it is mandatory, how to choose the TASD value? I review the Ref manual, but it does confuzed me. I will put my configuration here:
a. CAN_CLK is the same with SYS_CLK(80MHZ);
b. EPRESDIV = 1; EPROPSEG = 46; EPSEG1 = 15; EPSEG2 = 15; ERJW = 15; (NBT in arbitration phase is 80)
c. FPRESDIV = 1;FPROPSEG = 7; FPSEG1 = 7; FPSEG2 = 3; FRJW = 3; (NBT in data phase is 20)
according to the formula in ref manual(page 1933), I get the below value:
CPCBN = (fSYS/BITRATEN) = 80 * 2 = 160;
NMBEND = [(9 * 160) - 4]/2 = 718;
That's so big!!!
And TASD = 31 - [2 * (12+1) + 4]/160 = 31
that is unreasonable. So could some one please tell me whether my understanding is right? or how to set the TASD value?
Thanks a lot.
No, it depends on the following factors. If set to the maximum, when multiple mailboxes or nodes compete for the bus, setting a larger TASD will artificially reduce the sending priority of the mailbox.
• Peripheral-to-oscillator clock ratio
• CAN bit timing variables that determine the CAN bit rate
• Number of message buffers (MBs) in use by the matching and arbitration processes
For TDC question: if S32K1xx has no auto TDC but only fixed TDC
I don't understand what you mean about TDC, could you explain it in more detail?
I checked and found that this value is not mandatory to be configured as non-zero value, but it is recommended that users configure the register because it is very necessary in some working conditions, such as high bus load, timing constraints
I created an Excel spreadsheet for the calculation, which seems to be more convenient.
First, I want to point out that your calculation is correct, but you need to check whether you are using CAN FD or not.
If you are using non-FD frames, the result should be 24.8125.
For reference,
Sorry for the misunderstanding, let me take time check your question again.