snowflyin的个人空间 https://bbs.21ic.com/?456050 [收藏] [复制] [RSS]

日志

STM32F407VET6+LAN8720A网络无晶振设计技巧

已有 829 次阅读2018-12-22 19:52 |个人分类:STM32F407实战|系统分类:单片机

LAN8720A需要25Mhz晶振才能工作,当选择STM32F407的外部晶振为25MHZ时,可以巧妙的省去LAN8720A外设的一个晶振。

具体电路如下,


STM32F407MCO1PA8)作为LAN8720ACLKIN(XTAL1)的输入脚,MCO1输出源为HSE,分频系数为1.

/* Output HSE clock (25MHz) on MCO pin
(PA8) to clock the PHY */

RCC_MCO1Config(RCC_MCO1Source_HSE, RCC_MCO1Div_1);

关于25M 下STM32F407的RCC配置如下:

 #define PLL_M      25

#define PLL_Q      7

#define PLL_N      336

#define PLL_P      2

PLL 的时钟配置经过,稍微整理下可由如下公式表达:

VCOCLK_IN = PLLCLK_IN / M = HSE / 25 = 1M

VCOCLK_OUT = VCOCLK_IN * N = 1M * 336 = 336M

PLLCLK_OUT=VCOCLK_OUT/P=336/2=168M

USBCLK = VCOCLK_OUT/Q=336/7=48。

所以很好理解,最终STM32F407主频跑168M,USB CLOCK为48M,同时提供给LAN8720A的clock为25M,完美的简化了外设电路, 并在bom中省一颗晶振。

需要源代码和开发板验证的同学, 请上淘宝店铺https://shop36329318.taobao.com/ 吧!


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)