Hello ,
I'm implementing the CAN Driver for MPC5777 ,for the BIT rate calculations i assumed the SYNC value to be 1 which is standard across the Controllers.
I reviewed the application notes AN5045 which also says that SYNC value is always 1 and non programmable . But the MPC5777 reference manual specifies SYNC value as 3
[FTSEG1 + FTSEG2 + 3] & [TSEG1 + TSEG2 + 3].
When i assumed the SYNC value as 1 and calculated the BIT rate the CAN communication never worked but with SYNC value 3 it was perfect.
Can any one explain why the SYNC value is 3?
Thanks,
Siva.
Hi,
The SYNC value is always 1. The AN5045 shows the bit time as SYNC_SEG+TSEG1+TSEG2.
From RM…
“The actual interpretation by the hardware of the BTP[TSEG1] and BTP[TSEG2] registers value is such that one more than the programmed value is used.”
So the AN5045’s bit time can be rewritten as SYNC_SEG + (BTP[TSEG1]+1) +( BTP[TSEG2]+1).
Finally assuming the SYNC is always 1 you get bit time as (BTP[TSEG1] +BTP[ TSEG2] + 3) if programmed values are considered.
Similarly for FD bit setting. Also note that the BRP and SJW are also programmed to be -1.
Regards,
Petr
Hi Petr Stancik, I have doubt that CAN Bit time should be 8 and 25tq. But In the AN5045 document.
TSEG1 to 31 tq, TSEG2 to 8 tq plus sync_seg is 1tq.Then It is not following the ISO11898 Standard.