在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 99|回复: 0

[原创] AG32 PLL时钟输出

[复制链接]
发表于 前天 14:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x


[color=rgba(0, 0, 0, 0.9)]
AG32内部集成一个PLL,供MCU和CPLD使用, 支持5路时钟输出。PLL时钟输出以MCU优先。
这里整理下5路时钟:
PLLCLK0:就是 SYSCLK (名字使用SYSCLK)
PLLCLK1:VE里如果定义USB0 device,系统会自动生成60Mhz时钟给USB用;
PLLCLK2:VE里定义了MAC信号时,这路时钟给MAC用(25 MII/50M RMII);
PLLCLK3:VE里定义BUSCLK时(只能是sysclk整数分频)给CPLD用;
PLLCLK4:独立给用户使用;
这里的SYSCLK相当于RISC-V的运行频率,也是AHB时钟。系统如果没有定义USB, Ethernet MAC的情况下,相应的几路时钟都可以给CPLD用。这里的BUSCLK相当于CPLD与MCU通过AHB通讯时的APB时钟。当MCU需要运行到200Mhz以上时,ADC部分的逻辑无法运行到这么高的频率,需要定义BUSCLK给CPLD用。
时钟的设置限制及计算方式:
PLLCLK是用户期望的目标值,是由外部时钟通过PLL倍频和分频后产生的:
  • VCO=HSE*X/Y,X,Y皆为整数
  • VCO小于1200MHZ。
  • 所有的设置频率必须能被这个最终VCO整除。

举例:mcu主频100M,系统用了MAC(50M),系统用了USB(60M),cpld自定义了PLLCLK3为80M,cpld自定义了PLLCLK4为60M。则,PLL目标值就是100\50\60\80\60的最小公倍数,为1200M。
如果使用到一些特殊频率,则可能需要通过选择外部时钟来实现。
VSCODE 编译的时候,会输出时钟的一些信息的。如:
640?wx_fmt=png&from=appmsg.jpg
PLL时钟的相位:
PLL 除了输出时钟频率外,还能输出不同相位的时钟。我们有一个例程,提供了高精度的PWM输出,输出精度可以达到100pS。 可能有人奇怪了,VCO最高也就输出1.2G,也就0.8nS左右的精度,怎么可以达到100pS的精度呢?这里设计就用到了时钟相位。
VE里可以定义时钟的不同相位:
640?wx_fmt=png&from=appmsg.jpg
相位以45°为单位,可以产生8个不同的相位,再加上1.2G的频率,相当于可以产生10G的频率,就可以实现100pS的精度。
大家可以用示波器测测相位,这样更容易理解。https://item.taobao.com/item.htm ... .0.0.621e2c1b1WjywJ


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-4-4 00:37 , Processed in 0.018350 second(s), 7 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表