奇怪了, 我这儿的两片STM32F401, 一片CC, 一片CE, 跑不到额定频率了
标称84M, 这两片一片最多60M, 一片最多65M, 频率再高就死机...GD32都是翻倍超频啊, 这两片不知道怎么回事.
SystemInit函数如下:
void SystemInit(void)
{
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x8000);
__enable_irq();
RCC_DeInit();
RCC_HSEConfig (RCC_HSE_ON);
if(RCC_WaitForHSEStartUp() == SUCCESS) {
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
PWR_MainRegulatorModeConfig (PWR_Regulator_Voltage_Scale1);
RCC_HCLKConfig (RCC_SYSCLK_Div1);
RCC_PCLK2Config (RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PLLConfig(RCC_PLLSource_HSE, 16, 260, 4, 7); // M, N, P, Q
RCC_PLLCmd (ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
FLASH_PrefetchBufferCmd(ENABLE);
FLASH_SetLatency (FLASH_Latency_3);
FLASH_InstructionCacheCmd(ENABLE);
FLASH_DataCacheCmd(ENABLE);
RCC_SYSCLKConfig (RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08);
}
}
ST的品控一直很稳定,不应该啊 某个供电引脚有虚焊? 如果芯片是原装的 那芯片问题的概率极小,需要检查周边器件了 本帖最后由 amigenius 于 2023-5-8 16:36 编辑
内核电压设置最高没有,还有 Flash Latency是否按照频率设置,ST的mcu频率瓶颈主要在Flash上,通常最高频率裕量都有30%以上(除了H7),以往最落后制程的F103都能跑100M,现在的401最不济都不会这么差呢。而GD的Flash前256K实际上是RAM模拟,所以频率直接可以起飞,只是256K后面的速度非常可怜。 本帖最后由 tomzbj 于 2023-5-8 16:55 编辑
惭愧惭愧, 忘了这东西还需要个VCAP了... 飞了个2.2uF上去, 好了. 多谢楼上各位!
超频试了一下, 能跑到140M左右. 本来以为401是和407一样的内核, 阉割了一部分外设, 看来频率也跑不到407的速度啊. 楼主的描述,硬件角度,听来类似信号的噪声裕量超出范围导致的运行中的奇怪而不定的问题;容易因电源纹波较大,芯片滤波不足,信号串扰等引起。看过些楼主无意中展示的些PCB图片,似乎硬件和PCB设计非楼主强项,建议可稍多花时间精力排查
页:
[1]