How to make CCM_CLKO1 output different clock on I.MXRT1050

Document created by fangfang Employee on Apr 27, 2020
Version 1Show Document
  • View in full screen mode

When design a project, sometimes CCM_CLKO1 needs to output different clocks to meet customer needs. This customer does not need to buy a separate crystal, which can reduce costsThe document describe how to make CCM_CLKO1 output different clock on I.MXRT1050.

According to  selection of the clock to be generated on CCM_CLKO1(CLKO1_SEL) and setting the divider of CCM_CLKO1(CLKO1_DIV) in I.MXRT1050reference manual.

CCM_CLKO1 can output different clock.

If CCM_CLKO1 output different clock via SYS PLL clock. We can get the different clock for the application.

CLKO1_DIV

000

001

010

011

100

101

110

111

Freq(MHz)

264

132

88

66

52.8

44

37.714

33

For example we want to get 88Mhz output via SYS PLL clock. We can follow the steps as the below(led_blinky project in SDK ):

      1. PINMUX GPIO_SD_B0_04 as CCM_CLKO1 signal.

      IOMUXC_SetPinConfig(

      IOMUXC_GPIO_SD_B0_04_CCM_CLKO1,       

      0x10B0u;

2.Enable CCM_CLKO1 signal.

CCM->CCOSR |= CCM_CCOSR_CLKO1_EN_MASK;

3.Set CLKO1_DIV to get 88MHZ the clock for the application.

CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO1_DIV_MASK)) | CCM_CCOSR_CLKO1_DIV(2); CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO1_SEL_MASK)) | CCM_CCOSR_CLKO1_SEL(1);

  • 4 We will get the clock as the below.
  • Note: In principle, it is not recommended to output CLOCK in CCM_CLKO1, if necessary, Please connect an 8-10pf capacitor to GPIO_SD_B0_04, and connect a 22 ohm resistor in series to prevent interference.

Attachments

    Outcomes