1446|3

504

帖子

4

TA的资源

纯净的硅(高级)

楼主
 

【ST NUCLEO-U575ZI-Q 测评 】时钟配置-超个频 [复制链接]

前言

默认芯片复位后以4MHz内部时钟运行,为了以高性能运行,我们需要配置系统时钟按照最大时钟频率运行。本篇测试RCC时钟配置,并进行超频测试。

 

过程

RCC模块

参考手册的《11 Reset and clock control (RCC)》

从原理图可知没有焊接HSE晶振,所以只能使用内部的。

 

 

 

Figure 33. Clock tree可以看时钟树结构。

我们选择HSI RC16 MHz作为系统时钟。

 

PLL设置

见《11.4.6 PLL》

 

最大输出时钟

系统最大时钟为160MHz

 

 

PLL的输入4~ 16 MHz ,我们这里选择16M的HSI

 

计算公式

 

 

PLLM:可设置值1~63

分频值,PLL的输入时钟比如16MHz/PLLM作为VCO的输入,VCO的输入必须是1~16MHz

所以我们这里设置为1

 

PLLN:可设置值4~512

倍频值,VCO的输入x PLLN为VCO的输出,

VCO的输出最大值和电压范围对应

范围1 ,2则最大128~544MHz

范围3 则最大128~330MHz

为了最高性能需要使用电压等级1,设置PLLN=20

 

PLLP:1~128

PLLQ:1~128

PLLR:1和偶数值

 

电压等级,FLASH等待周期设置

必须设置电压等级为1,否则高频运行会异常。

LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_PWR);

HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1);

 

FLASH等待周期也要设置为4以上。

HAL_RCC_ClockConfig(&pRCC_ClkInitStruct, FLASH_LATENCY_4);

 

 

FLASH等待周期与主频,电压等级的关系,最大160MHz,电压等级1时需要配置最少4WS。

 

 

 

总的代码如下

#include "stm32u575xx.h"

#include "stm32u5xx_ll_gpio.h"

#include "stm32u5xx_ll_bus.h"

 

void SysTick_Handler(void)

{

static volatile uint32_t num = 0;

if(num++ >= 1000)

{

LL_GPIO_TogglePin(GPIOB, 1u<<7);

LL_GPIO_TogglePin(GPIOC, 1u<<7);

num=0;

}

HAL_IncTick();

}

 

 

void delay(uint32_t t)

{

volatile uint32_t timeout = t;

while(t--);

}

 

int main(void)

{

#if 1

LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_PWR);

HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1);

 

RCC_OscInitTypeDef pRCC_OscInitStruct;

pRCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;

pRCC_OscInitStruct.HSIState = RCC_HSI_ON;

pRCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;

pRCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;

pRCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;

pRCC_OscInitStruct.PLL.PLLM = 1;

pRCC_OscInitStruct.PLL.PLLMBOOST = RCC_PLLMBOOST_DIV1;

pRCC_OscInitStruct.PLL.PLLN = 20;

pRCC_OscInitStruct.PLL.PLLP = 1;

pRCC_OscInitStruct.PLL.PLLQ = 1;

pRCC_OscInitStruct.PLL.PLLR = 2;

pRCC_OscInitStruct.PLL.PLLRGE = RCC_PLLVCIRANGE_0;

pRCC_OscInitStruct.PLL.PLLFRACN = 0;  /* */

HAL_RCC_OscConfig(&pRCC_OscInitStruct);

 

RCC_ClkInitTypeDef pRCC_ClkInitStruct;

pRCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;

pRCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;

pRCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;

pRCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;

pRCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;

pRCC_ClkInitStruct.APB3CLKDivider = RCC_HCLK_DIV2;

HAL_RCC_ClockConfig(&pRCC_ClkInitStruct, FLASH_LATENCY_4);

#endif

LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB); LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOC);

 

LL_GPIO_InitTypeDef GPIO_InitStruct;

//LL_GPIO_StructInit(&GPIO_InitStruct);

GPIO_InitStruct.Pin = LL_GPIO_PIN_7;

GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;

GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;

GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;

GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;

GPIO_InitStruct.Alternate = LL_GPIO_AF_0;

LL_GPIO_Init(GPIOB, &GPIO_InitStruct);

 

GPIO_InitStruct.Pin = LL_GPIO_PIN_7;

GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;

GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;

GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;

GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;

GPIO_InitStruct.Alternate = LL_GPIO_AF_0;

LL_GPIO_Init(GPIOC, &GPIO_InitStruct);

 

HAL_Init();

while(1)

{

///delay(1000000ul);

///LL_GPIO_TogglePin(GPIOB, 1u<<7);

}

}

 

 

超频测试

160MHz

PLLN设置为20

 

 

PLLN设置为33, 8*33=264MHz ,FLASH等待时间设置为FLASH_LATENCY_4

此时还能点灯OK,再减小FLASH等待时间或者增加PLLN都会导致运行异常,所以这应该就是极限了。

 

可以看出可超频范围还是挺大的,并且在超频后还能保持FLASH等待周期为FLASH_LATENCY_4,说明内部FLASH的读性能也是裕量很大的。

总结

以上进行了RCC时钟配置的演示,并且进行了超频测试。不愧是大厂,由160M超频到264M还能工作,且能保持较小的FLASH等待周期。

此帖出自stm32/stm8论坛

最新回复

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html   详情 回复 发表于 2023-1-12 09:42
点赞 关注
 

回复
举报

6450

帖子

10

TA的资源

版主

沙发
 

超频稳定性如何?能超多少,有介绍吗

此帖出自stm32/stm8论坛

点评

文中测试可以超频到264MHz,FLASH等待周期4,点灯还OK,没有测试其他外设。 没有测试ICACHE,DCACHE使能测试。  详情 回复 发表于 2022-12-15 13:46
 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 

回复

504

帖子

4

TA的资源

纯净的硅(高级)

板凳
 
秦天qintian0303 发表于 2022-12-15 12:01 超频稳定性如何?能超多少,有介绍吗

文中测试可以超频到264MHz,FLASH等待周期4,点灯还OK,没有测试其他外设。

没有测试ICACHE,DCACHE使能测试。

此帖出自stm32/stm8论坛
 
 

回复

1万

帖子

203

TA的资源

管理员

4
 

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html

此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表