SAME51 120MHz core clock

Go To Last Post
3 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi, 

I am having trouble to run SAME51 with a 120MHz core clock. I create a simple project with delay and 2 CAN instances. I am toggling the pin every 100ms and then send CAN frames. Unfortunately, a measured time between pin state changes is not equal to 100ms. Below is the screen from the signal analyzer.

Main function is presented below:

int main(void)
{
    /* Initializes MCU, drivers and middleware */
    atmel_start_init();

    /* Replace with your application code */
    while (1) {
       delay_ms(100);
       gpio_toggle_pin_level(LED);
       gpio_toggle_pin_level(CAN_STBY);
       CAN_1_example();
    }
}

 

I am using Atmel Start to configure the clock system. Below you can find the configuration:

 

A similar configuration works perfectly on the SAME54 Xplained board(the only difference is an oscillator source, for E54 XOSC1 is used). 

I have changed crystal oscillator on my board to a similar one to one mounted on Xplained but this not help.

 

Are there any differences between E51 and E54?

Has anyone a problem with clock configuration on E51?  

 

 

This topic has a solution.
Last Edited: Wed. Oct 30, 2019 - 07:26 AM
This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For this kind of thing I usually suggest routing one of the clock domains out to an IO pin. See section 14.6.2.9 of the data sheet. This allows you to decouple the clocking circuit/PLLs from the ARM core.

 

The most likely cause would be a 12 MHz crystal which is not actually oscillating at 12MHz, but instead closer to 12.2 MHz, or a problem with decoupling on the VDDCORE pins.

Josh @ CIHOLAS Inc - We fill the gaps from chips to apps

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for the response. The problem was decoupling on the VDDCORE