About Time Quanta and SSP offset

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

About Time Quanta and SSP offset

2,043 Views
kimjunghyun
Contributor III

Hi.

I have been developping CAN FD related item.

And I have to check Time Quanta and SSP(secondary sample point) offset.

So please someone helps me.

1. Time Quanta 

  - at CAN FD frame, Time Quanta in Arbitration phase and Data phase are 5 ~ 48 TQ range. right?

<captured on page 1293>

제목 없음.png

2. How to check SSP offset value?

  - at debuging window, there is not any value.

<captured on S32DS debuging window>

제목 없음1.jpg

Thank you.

Kim

0 Kudos
2 Replies

1,564 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi Kim,

1.

The bit time during an Arbitration phase is defined by CTRL1 or CBT register.

Note the CBT must be used when CAN FD feature is enabled.

Then the length of bit can have below time quantas.

 pastedImage_1.png

The bit time for the Data phase is defined by FDCBT register, as below, if the bit rate switching is enabled for CAN FD frame (FDCTRL[FDRATE]=1 and the BRS bit of the Tx MBs is set). Otherwise CTRL1 or CBT registers control bit time of Data phase.

 pastedImage_2.png

 

2.

The position of the secondary sample point is defined by the measured loop delay time added to an offset value specified in CAN_FDCTRL[TDCOFF]. CAN_FDCTRL[TDCVAL] bit field stores the result of this calculation.

The TDC mechanism can be enabled by the CAN_FDCTRL[TDCEN] bit and is effectiveonly during the data phase of FD frames having the BRS bit set. It has no effect either on non-FD frames, or on FD frames transmitted at normal bit rate.

BR, Petr

0 Kudos

1,564 Views
kimjunghyun
Contributor III

Hi. Petr.

Thank you for your answer.

For question 1, Time quanta, I understood as below.

 - CAN FD arbitration phase : using CAN_CBT

 - CAN FD data phase : using CAN_FDCBT

For question 2, How to check SSP offset value, I understood your explanation.

But I could not confirm that  the bit of TDCEN and TDCOFF was changed.

 - I changed the bit of TDCEN and TDCOFF at the EmbSys Registers but these bits were not changed.

 - So I changed these bits at the source code, but I was not sure that these bits were changed.

   Because these bits at the EmbSys Registers were changed(1) during RUN but were returned to initial value(0) during SUSPEND.

How can I change the bit of TDCEN and TDCOFF and confirm whether changed or not?

Should I think these bit as changed?

■ At the EmbSys Registers :

 1. I changed TDCEN bit to 1

TDCEN.jpg

 2. but this bit was not changed (the bit was returned to initial value 0, TDC is disabled)

TDCEN_변경안됨.jpg

■ At the source code : 

 1. I changed TDCEN bit to 1

< Before code change >

TDCEN_code.jpg

< After code change : from x to 1 >

TDCEN_code_변경.jpg

 2. and TDCEN bit was changed (enabled) during RUN.

TDCEN_code_변경_반영됨.jpg

 3. but TDCEN bit was returned to initial value (disabled) during SUSPEND

TDCEN_code_변경_반영안됨.jpg

Thank you

Kim.

0 Kudos