这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » APM32MCO输出时钟的原理与使用方法举例

共1条 1/1 1 跳转至

APM32MCO输出时钟的原理与使用方法举例

院士
2025-10-13 19:51:39     打赏

APM32芯片的MCO(主时钟输出)功能允许用户将内部时钟源的时钟信号输出到外部引脚。MCO输出时钟的原理主要包括以下几个方面:

- 时钟源选择:在APM32中,MCO可以选择不同的时钟源作为输出,常见的时钟源包括:

  - HSI(内部高速时钟)

  - HSE(外部高速时钟)

  - PLL(相位锁定环路生成的时钟)

- 分频器:在输出时钟之前,用户可以选择是否通过分频器来降低MCO输出的频率。APM32允许用户配置分频器的值,从而实现将主时钟信号降低到所需的频率。

- 配置寄存器:MCO的配置通常通过时钟控制寄存器(RCC寄存器)进行设置。用户可以通过编程设置MCO输出的源时钟和分频系数。

- 输出引脚:MCO的输出信号通过特定的引脚输出,这个引脚在硬件上会被配置为MCO功能,以便将所选时钟信号输出到外部电路中。

- 应用场景:MCO输出通常用于时钟同步、外部设备的时钟源提供以及调试目的,便于开发人员监测和验证系统的时钟配置。

通过以上机制,APM32的MCO功能能够灵活地将内部时钟输出到外部,使得设计师可以根据具体应用需求进行时钟管理。我们以APM32E030为例,MCO引脚配置程序示范:

/* 初始化MCO引脚PA8,并启动输出系统主频的1/2 */
void bsp_mco_output(void)
{
  GPIO_Config_T gpioConfig;

  GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_8, GPIO_AF_PIN0);

  gpioConfig.pin = GPIO_PIN_8;
  gpioConfig.mode = GPIO_MODE_AF;
  gpioConfig.outtype = GPIO_OUT_TYPE_PP;
  gpioConfig.speed = GPIO_SPEED_50MHz;
  gpioConfig.pupd = GPIO_PUPD_NO;
  GPIO_Config(GPIOA, &gpioConfig);
    
  RCM_ConfigCOC(RCM_COC_PLLCLK_DIV_2);
}
MCO输出时钟函数调用。时钟输出库函数及可输出时钟类别:
/*!
 * @brief       Selects clock ouput source
 *
 * @param       cocClock:  specifies the clock source to output
 *                         This parameter can be one of the following values:
 *                         @arg RCM_COC_NO_CLOCK:     No clock selected.
 *                         @arg RCM_COC_HSI14:        HSI14 oscillator clock selected.
 *                         @arg RCM_COC_LSI:          LSI oscillator clock selected.
 *                         @arg RCM_COC_LSE:          LSE oscillator clock selected.
 *                         @arg RCM_COC_SYSCLK:       System clock selected.
 *                         @arg RCM_COC_HSI:          HSI oscillator clock selected.
 *                         @arg RCM_COC_HSE:          HSE oscillator clock selected.
 *                         @arg RCM_COC_PLLCLK_DIV_2: PLL clock divided by 2 selected.
 *
 * @retval      None
 */
void RCM_ConfigCOC(RCM_COCCLK_T cocClock)
{
    RCM->CFG1_B.MCOSEL = cocClock;
}


MCO输出72MHZ主频时钟示波图:

72MHz主频示波器截图01.png

MCO输出HSE时钟示波图:

72MHz主频示波器截图02.png

MCO输出36MHZ主频时钟示波图:

72MHz主频示波器截图03.png





关键词: MCO    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]