STM32F2 器件 -25° 上电正常 复位就挂了
最近做的板子,常温时都运行正常断电低温-25°保持2小时后上电正常工作,但是一旦操作重置(硬件重置按键或软件重置)就会起不来,一直卡死STM32F205,外部晶振8M内部主频倍频后120M,开启了CSSRCC初始化:
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = { 0 };
RCC_ClkInitTypeDef RCC_ClkInitStruct = { 0 };
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = { 0 };
/ **根据
RCC_OscInitTypeDef结构中的指定参数* 初始化RCC振荡器。
* /
RCC_OscInitStruct。振荡器类型 = RCC_OSCILLATORTYPE_HSE| RCC_OSCILLATORTYPE_LSE ;
RCC_OscInitStruct。HSEState = RCC_HSE_ON ;
RCC_OscInitStruct。LSEState = RCC_LSE_ON ;
RCC_OscInitStruct。PLL。PLLState = RCC_PLL_ON ;
RCC_OscInitStruct。PLL。PLLSource = RCC_PLLSOURCE_HSE ;
RCC_OscInitStruct。PLL。PLLM = 8;
RCC_OscInitStruct。PLL。PLLN =240 ;
RCC_OscInitStruct。PLL。PLLP = RCC_PLLP_DIV2 ;
RCC_OscInitStruct。PLL。PLLQ = 5 ;
如果(HAL_RCC_OscConfig(&RCC_OscInitStruct)!= HAL_OK)
{
Error_Handler();
}
/ **初始化CPU,AHB和APB总线时钟
* /
RCC_ClkInitStruct。ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
| RCC_CLOCKTYPE_PCLK1| RCC_CLOCKTYPE_PCLK2 ;
RCC_ClkInitStruct。SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK ;
RCC_ClkInitStruct。AHBCLKDivider = RCC_SYSCLK_DIV1 ;
RCC_ClkInitStruct。APB1CLKDivider = RCC_HCLK_DIV4 ;
RCC_ClkInitStruct。APB2CLKDivider = RCC_HCLK_DIV2 ;
如果(HAL_RCC_ClockConfig(&RCC_ClkInitStruct,FLASH_LATENCY_7)!= HAL_OK)
{
Error_Handler();
}
PeriphClkInitStruct。PeriphClockSelection = RCC_PERIPHCLK_RTC ;
PeriphClkInitStruct。RTCClockSelection = RCC_RTCCLKSOURCE_LSE ;
如果(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct)!= HAL_OK)
{
Error_Handler();
}
/ **启用时钟安全系统
* /
HAL_RCC_EnableCSS();
}
重置电路R7尝试接了外部上拉10K,50K和不接都是一样的结果,
外部晶振8M已经换成军品级的晶振,试了10Pf和20Pf的匹配电容结果一样
断电再上电系统可以正常启动运行工作,运行时重新操作按钮重置或软件重置系统就就挂了,卡死在启动阶段
求教大家指点
今天经过 低温-25°的 实时在线调试,发现 复位后系统死在CAN的初始化过程中了
看看晶振手册查查外部晶振的工作温度,低温下要注意各个器件的工作温度,避免出现异常 对应看看芯片的温度范围,一般的芯片温度范围是0~85,产品级-10~105,军工级-40~140,你这要求是否对应? 最后如果还是没办法解决
就只好用外部看门狗
加Relay断STM32的电 再送电 1、VCAP1/VCAP2:参考数据手册检查相关的电路和电压是否正常。
2、检查CPU clock frequency and Flash memory read time。
3、降低CPU主频。
corez 发表于 2020-9-11 10:55
1、VCAP1/VCAP2:参考数据手册检查相关的电路和电压是否正常。
2、检查CPU clock frequency and Flash memo ...
谢谢,这些之前试过了,没有改变结果,最后仿真发现 死在了CAN初始化过程
页:
[1]