Determining T1042 timebase frequency

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

Determining T1042 timebase frequency

2,839 Views
nakrachi
Contributor II

Hi Everyone,

We are trying to determine the right frequency at which the timebase is updated. 

According to the reference manual the core timebase frequency is calculated as follows :

Timebase clock = (platform_clock/16) / TBCLKDIVR

in our case :

  • Platform clock is 600 Mhz
  • RCPM_PCTBCKSELR is 0 -> Core Timebase is clocked with Platform Clock /16
  • TBCLKDIVR is 0x2 -> 1/8 

so our timebase frequency should be : 600/(16*8) = 4.6875 Mhz 

but when measuring with the logic analyzer we get a timebase frequency of 50Mhz.

I would like to confirm if I a calculated the right frequency or if I missed something, 

thank you 

0 Kudos
18 Replies

2,807 Views
nakrachi
Contributor II

The only pin available to me was the UART_SOUT which I had to configure as GPIO1[15] by modifying the RCW. 

I used the debugger RCW override function to use my new RCW, I figured out that the debugger will set the platform PLL to 4:1 even though my RCW is setting it to be 6:1. meaning that my platform clock is 400 Mhz and not 600 Mhz (SYSCLK is 100Mhz). 

which make a little bit more sense, if we consider that platform clock is only divided by TBCLKDIVR, 400Mhz/8 = 50 Mhz

 I think that "RCPM_PCTBCKSELR is 0 -> Core Timebase is clocked with Platform Clock /16" statement is not true. 

Can you please confirm.

thank you

0 Kudos

2,835 Views
ufedor
NXP Employee
NXP Employee

You wrote:

> when measuring with the logic analyzer we get a timebase frequency of 50Mhz

How exactly you did that?

0 Kudos

2,831 Views
nakrachi
Contributor II

Thanks for the reply,

I did set the decrementer to a value of 50000 ticks 

nakrachi_2-1632384793385.png

with Auto reload enabled (TCR= 0x0000000000400000) 

then in the decrementer exception vector (IVOR10) I toggle a GPIO which I measure with the logic analyzer. 

I get a frequency of 1Khz (a period of 1 ms) 

nakrachi_1-1632384535876.png

which makes me believe I am running at 50 Mhz (50000 * 1Khz) 

 

0 Kudos

2,809 Views
ufedor
NXP Employee
NXP Employee

DECAR in your case is zero.

 

 

0 Kudos

2,804 Views
nakrachi
Contributor II

The debugger can't read it (according to core manual "The DECAR contents cannot be read") 

but I know that I wrote the right value and I am getting decremented exceptions at a fixed interval. 

0 Kudos

2,770 Views
ufedor
NXP Employee
NXP Employee

Please show using Trace32 values of:

RCPM_PCTBCKSELR

RCPM_TBCLKDIVR

0 Kudos

2,769 Views
nakrachi
Contributor II

Here is a screenshot

nakrachi_0-1632473780471.png

 

0 Kudos

2,765 Views
ufedor
NXP Employee
NXP Employee

What is SYSCLK frequency?

Please provide U-Boot booting log.

0 Kudos

2,763 Views
nakrachi
Contributor II

The system frequency is 100MHz 

here is the u-boot log 

nakrachi_0-1632474272424.png

 

0 Kudos

2,761 Views
ufedor
NXP Employee
NXP Employee

600/50=12

I have no idea how such ratio can be obtained.

0 Kudos

2,755 Views
ufedor
NXP Employee
NXP Employee

Please combine all consistent experimental data into single Word or PDF document.

0 Kudos

2,750 Views
nakrachi
Contributor II

just making sure, you want me to describe the issue with relevant data/screenshots and post it here ?

thanks

0 Kudos

2,746 Views
ufedor
NXP Employee
NXP Employee

Yes, please.

0 Kudos

2,701 Views
nakrachi
Contributor II

@ufedor please fin attached the requested document. 

Thanks

0 Kudos

2,621 Views
nakrachi
Contributor II

Hi @ufedor , just following up on this.

thanks

0 Kudos

2,611 Views
ufedor
NXP Employee
NXP Employee

Your understanding is correct.

Time base frequency = (Platform clock )/RCPM_TBCLKDIVR When RCPM_PCTBCKSELR [PCTBCKSELn] = 0, Core Timebase is clocked with Platform Clock/ RCPM_TBCLKDIVR [tbclkdiv].

It is recommended to have the default value of RCPM_TBCLKDIVR [tbclkdiv], i.e., 0x00 : 1/16. This field should not be modified by customer as all the testing are done with Timebase clock divider configuration = 1/16.

Comment is added in T1042RM.

0 Kudos

2,577 Views
nakrachi
Contributor II

Thank you,

But then we have another problem, the erratum A-010651 states that the workaround is changing the RCPM_TBCLKDIVR [tbclkdiv], to 0x08 : 1/32.

but you mentioned we should not change it. how can we workaround this errata then ?

thanks

0 Kudos

2,759 Views
nakrachi
Contributor II

Thanks for the quick replies,

as I mentioned in an earlier comment, I found out that using the temporary RCW has set my PLL ration to 4:1 so I was running at 400Mhz when I got 50Mhz. 

Now after setting back the platform clock to 600Mhz  I measure a time base frequency of 75Mhz. (600/8)

which makes me believe that the user manual is wrong

0 Kudos