前言

最近使用一块新的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

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐