硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4321|回复: 19
收起左侧

[STM32H7] STM32H743超频到600MHz也可以稳定运行

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2021-10-16 09:16:35 | 显示全部楼层 |阅读模式


有点意思,超频潜力还是很强的。


回复

使用道具 举报

12

主题

75

回帖

111

积分

初级会员

积分
111
发表于 2021-10-16 21:13:50 | 显示全部楼层
厂家给的余量还挺大
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2021-10-16 21:26:46 | 显示全部楼层
yangskyhigh 发表于 2021-10-16 21:13
厂家给的余量还挺大

之前一个网友说厂家会预留三分之一的余量,实际测试确实是这样。
回复

使用道具 举报

1

主题

26

回帖

29

积分

新手上路

积分
29
发表于 2021-10-19 07:47:12 | 显示全部楼层
600m的时钟配置 能否给出来一下 谢谢楼主 我来测试一下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2021-10-19 11:24:29 | 显示全部楼层
sy2009 发表于 2021-10-19 07:47
600m的时钟配置 能否给出来一下 谢谢楼主 我来测试一下

好的,后面我整理个案例。
回复

使用道具 举报

610

主题

3061

回帖

4911

积分

至尊会员

积分
4911
发表于 2021-10-19 15:47:43 | 显示全部楼层
eric2013 发表于 2021-10-19 11:24
好的,后面我整理个案例。

是 v 版本的可以超导这么高吗 ? 其他版本的应该不行吧 ??
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2021-10-19 20:19:21 | 显示全部楼层
hpdell 发表于 2021-10-19 15:47
是 v 版本的可以超导这么高吗 ? 其他版本的应该不行吧 ??

对,得用V版。
回复

使用道具 举报

610

主题

3061

回帖

4911

积分

至尊会员

积分
4911
发表于 2021-10-20 09:05:00 | 显示全部楼层
回复

使用道具 举报

0

主题

11

回帖

11

积分

新手上路

积分
11
发表于 2021-10-20 11:20:27 | 显示全部楼层
是用 STM32CubeMX来配置吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2021-10-21 08:37:06 | 显示全部楼层
killalljp 发表于 2021-10-20 11:20
是用 STM32CubeMX来配置吗?

暂时还没有用CubeMX生成过工程。
回复

使用道具 举报

26

主题

70

回帖

148

积分

初级会员

积分
148
发表于 2021-12-29 13:56:56 | 显示全部楼层
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Supply configuration update enable
  */
  HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);
  /** Configure the main internal regulator output voltage
  */
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0);

  while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
  /** Macro to configure the PLL clock source
  */
  __HAL_RCC_PLL_PLLSOURCE_CONFIG(RCC_PLLSOURCE_HSE);
  /** Initializes the RCC Oscillators according to the specified parameters
  * in the RCC_OscInitTypeDef structure.
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 5;
  RCC_OscInitStruct.PLL.PLLN = 240;
  RCC_OscInitStruct.PLL.PLLP = 2;
  RCC_OscInitStruct.PLL.PLLQ = 20;
  RCC_OscInitStruct.PLL.PLLR = 4;
  RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2;
  RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
  RCC_OscInitStruct.PLL.PLLFRACN = 0;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
  /** Initializes the CPU, AHB and APB buses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
                              |RCC_CLOCKTYPE_D3PCLK1|RCC_CLOCKTYPE_D1PCLK1;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV4;
  RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
  RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  {
    Error_Handler();
  }
  HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_PLL1QCLK, RCC_MCODIV_1);
}

我用cube配出来的600MHz, 跑不起来.
期待硬汉哥的代码


回复

使用道具 举报

26

主题

70

回帖

148

积分

初级会员

积分
148
发表于 2021-12-29 14:22:08 | 显示全部楼层
hjhj7591418 发表于 2021-12-29 13:56
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};

降低到550MHz可以运行.

/**
  * @brief  Enables or disables each clock output (PLL2_P_CLK, PLL2_Q_CLK, PLL2_R_CLK)
  * @note   Enabling/disabling  those Clocks can be done only when the PLL2 is disabled,
  *         This is mainly used to save Power.
  * @param  __RCC_PLL2ClockOut__ Specifies the PLL2 clock to be outputted
  *          This parameter can be one of the following values:
  *            @arg RCC_PLL2_DIVP: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *            @arg RCC_PLL2_DIVQ: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *            @arg RCC_PLL2_DIVR: This clock is used to generate peripherals clock up to 550MHZ(*), 480MHZ(**) or 280MHZ(***)
  *
  * (*) : For stm32h72xxx and stm32h73xxx family lines and requires to enable the CPU_FREQ_BOOST flash option byte, 520MHZ otherwise.
  * (**) : For stm32h74xx and stm32h75xx family lines and requires the board to be connected on LDO regulator not SMPS, 400MHZ otherwise.
  * (***): For stm32h7a3xx, stm32h7b3xx and stm32h7b0xx family lines.
  *
  * @retval None
  */
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2021-12-30 09:14:47 | 显示全部楼层
hjhj7591418 发表于 2021-12-29 13:56
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};

这个flash延迟太小了。

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
回复

使用道具 举报

5

主题

165

回帖

180

积分

初级会员

积分
180
发表于 2021-12-30 10:45:39 | 显示全部楼层
好家伙,和1052一个频率了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2021-12-30 10:49:58 | 显示全部楼层
DX3906 发表于 2021-12-30 10:45
好家伙,和1052一个频率了

1052的600是商业级。工业级是500。
回复

使用道具 举报

26

主题

70

回帖

148

积分

初级会员

积分
148
发表于 2021-12-31 07:53:47 | 显示全部楼层
eric2013 发表于 2021-12-30 09:14
这个flash延迟太小了。

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)

就是卡在这句了, 我把这个延时调到15都过不了.
回复

使用道具 举报

8

主题

136

回帖

160

积分

初级会员

积分
160
发表于 2022-1-12 11:49:29 | 显示全部楼层
国产某32替代F0的,跑48M稍微一干扰就死机,测试跑44M或40M就不会受干扰死机。把主频超频到56M,程序就立马死机。害死了,产品出货强制把程序改为40M的主频
回复

使用道具 举报

24

主题

122

回帖

194

积分

初级会员

积分
194
发表于 2022-1-25 20:04:29 来自手机 | 显示全部楼层
rt1052工业级600M也是可以的,实测750M稳。但这种测试含义不大
回复

使用道具 举报

28

主题

130

回帖

214

积分

高级会员

积分
214
发表于 2022-4-15 16:23:45 | 显示全部楼层
我用的Y版本的芯片,外接QSPI FLASH XIP,芯片主频目前不超过400MHz是正常的,超到480MHz发现运行一会儿(程序运行几分钟)就死机了。

我感觉应该是我外接的QSPI FLASH XIP导致超不了频率。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2022-4-15 16:32:45 | 显示全部楼层
logo 发表于 2022-4-15 16:23
我用的Y版本的芯片,外接QSPI FLASH XIP,芯片主频目前不超过400MHz是正常的,超到480MHz发现运行一会儿( ...

Y版超频略差,最好别超频。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-12 03:29 , Processed in 0.216334 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表