前言

最近使用一块新的STM32H7+LAN8720的开发板,发现EMAC驱动没有时钟导致初始化不过

仔细查看原理图后才发现,LAN8720并没接25MHz晶振,而是接到了PA8(MCO1)

需要配置才能使以太网正常工作
在这里插入图片描述

什么是MCO?

MCO(Microcontroller Clock Output)是STM32微控制器的一个硬件特性,它允许将微控制器内部的时钟源输出到外部引脚。通过该功能,用户可以选择将内部时钟源(如系统时钟、外部晶振、PLL输出等)以特定频率输出到一个指定的引脚(通常是GPIO引脚)。这样,外部电路可以使用该时钟信号进行同步或者监控。

STM32中的MCO输出源

在STM32微控制器中,MCO可以输出多种时钟源。常见的时钟源包括:

  1. HSI (High-Speed Internal):高速内部时钟,通常为8MHz。
  2. HSE (High-Speed External):高速外部时钟,通常由外部晶振提供。
  3. PLL (Phase-Locked Loop):通过PLL生成的时钟,用户可以选择不同的输入时钟并经过倍频输出。
  4. SYSCLK (System Clock):系统时钟,通常是MCU的主时钟频率。

配置(STM32CubeMX)

将PA8配置为MCO功能,并选择时钟
在这里插入图片描述
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐