• 正文
  • 相关推荐
申请入驻 产业图谱

AG32 PLL时钟输出

04/09 07:34
863
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

 AG32开发者 AG32开发者

 2024年11月28日 16:47 

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倍频和分频后产生的:

  1. VCO=HSE*X/Y,X,Y皆为整数
  2. VCO小于1200MHZ。
  3. 所有的设置频率必须能被这个最终VCO整除。

举例:mcu主频100M,系统用了MAC(50M),系统用了USB(60M),cpld自定义了PLLCLK3为80M,cpld自定义了PLLCLK4为60M。则,PLL目标值就是10050608060的最小公倍数,为1200M。

如果使用到一些特殊频率,则可能需要通过选择外部时钟来实现。

VSCODE 编译的时候,会输出时钟的一些信息的。如:

PLL时钟的相位:

PLL 除了输出时钟频率外,还能输出不同相位的时钟。我们有一个例程,提供了高精度的PWM输出,输出精度可以达到100pS。 可能有人奇怪了,VCO最高也就输出1.2G,也就0.8nS左右的精度,怎么可以达到100pS的精度呢?这里设计就用到了时钟相位。

VE里可以定义时钟的不同相位:

相位以45°为单位,可以产生8个不同的相位,再加上1.2G的频率,相当于可以产生10G的频率,就可以实现100pS的精度。

大家可以用示波器测测相位,这样更容易理解。

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

AG32芯片供应商,提供技术支持,承接项目开发,20年嵌入式经验支持,欢迎探讨技术方案。