STM32H743XX/STM32H563XX芯片烧录一次后,再次上电无法烧录

news/2024/7/7 19:57:51

近期在使用STM32H563ZIT6这款芯片在开发板上使用正常,烧录到自己打的板子就遇到了芯片烧录一次后,再次上电无法烧录的问题。

遇到问题需要从以下5点进行分析。

首先看下开发板的原理图

1.BOOT0需要拉高。

 2.NRST脚在开发板上是悬空的。这里我建议大家搞个3.3V上拉10k电阻。防止出现烧录问题。

3.注意VCAP脚也是悬空的。VCAP是为核心供电的滤波电容引脚,当ldo关闭时候核心电压直接从Vcap引脚进入。或者也可以打开内部LDO,从VDDLDO引脚接入,采用混合模式供电,dcdc+ldo的模式。

 4.要使用正版ST-LINK进行烧录。

判断ST-LINK是否是正版的方法如下:

打开STM32CubeProgrammer识别ST-LINK。

注意ST-LINK的Serial number,如果是一串很长的序列号则是正版ST-LINK。否则是盗版 ST-LINK。正版如下图所示。

5.代码配置,注意代码中配置芯片核心区域使用供电方式。手册中重要部分如下。

 从上图可知,芯片核心区域默认是使用SMPS供电的,当PWR_SCCR寄存器的BYPASS 置1时使用的是LDO供电。

注意SDK的代码的SystemClock_Config函数,没有进行供电配置。说明使用SMPS供电,正常烧录开发板是没有问题的。

void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Configure the main internal regulator output voltage
  */
	__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0);
	while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
   
  /** Initializes the RCC Oscillators according to the specified parameters
  * in the RCC_OscInitTypeDef structure.
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS_DIGITAL;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLL1_SOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 4;
  RCC_OscInitStruct.PLL.PLLN = 250;
  RCC_OscInitStruct.PLL.PLLP = 2;
  RCC_OscInitStruct.PLL.PLLQ = 2;
  RCC_OscInitStruct.PLL.PLLR = 2;
  RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1_VCIRANGE_1;
  RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1_VCORANGE_WIDE;
  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_PCLK3;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  RCC_ClkInitStruct.APB3CLKDivider = RCC_HCLK_DIV1;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  {
    Error_Handler();
  }
}

但如果加入以下一句

HAL_PWREx_ConfigSupply(PWR_EXTERNAL_SOURCE_SUPPLY);

那么开发板就不能正常运行了,也不能进行烧写了。

这条语句是将芯片核心区域设置为LDO进行供电。

解决方法如下:

如下图所示,将芯片的VCAP脚直连3.3V,就可以正常进行烧写程序了。

 

上图是我打的测试板,将VCAP与VDD相连,STM32CubeProgrammer就可以连接到芯片了。

 


http://lihuaxi.xjx100.cn/news/1776463.html

相关文章

故障诊断模型 | Maltab实现ELM极限学习机的故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现ELM极限学习机的故障诊断 模型描述 在机器学习领域,我们常常需要通过训练数据来学习一个函数模型,以便在未知的数据上进行预测或分类。传统的神经网络模型需要大量的参数调整和…

MacOS 下使用 cloud 版 qcow2镜像的最佳实践

写在前面 事情的起因是我想在 MacOS(arm)上使用 qemu虚拟化一个 Fedora 镜像, 我下载了 cloud 的 qcow2 版本, 但是用户名和密码一直找不到, 后来看论坛说用户名是 fedora 而密码是没有, 是通过 cloud-init 构建的镜像… 又是未知领域, 开始 hack! 环境: Mac m1 with brew qe…

Vatee万腾外汇数字化策略:Vatee科技决策力的未来引领

在外汇市场,Vatee万腾通过其前瞻性的外汇数字化策略,正引领着科技决策的未来。这一数字化策略的崭新愿景为投资者提供了更智慧、更高效的外汇投资体验,成为科技决策领域的翘楚。 Vatee万腾的外汇数字化策略是科技决策力未来引领的典范。通过运…

[工业自动化-10]:西门子S7-15xxx编程 - PLC主站 - 信号量:数字量

目录 前言: 一、工业现场常见信号的分类 二、IO数字量模块 2.1 概述 2.2 PLC的数字量是24V还是5V电压? 2.2 数字量模块的安装与接线 2.3 数字量模的注意事项 前言: 一、工业现场常见信号的分类 在工业自动化领域,常常需要使…

AUTOSAR汽车电子嵌入式编程精讲300篇-智能阀CAN总线延时边界确定

目录 前言 智能阀系统通信技术应用现状 国外研究现状 国内研究现状

SPSS曲线回归

前言: 本专栏参考教材为《SPSS22.0从入门到精通》,由于软件版本原因,部分内容有所改变,为适应软件版本的变化,特此创作此专栏便于大家学习。本专栏使用软件为:SPSS25.0 本专栏所有的数据文件请点击此链接下…

【Mysql】查询mysql的版本

目录 cmd命令查询 mysql -- help(命令) mysql -u root -p(命令) 数据库管理工具查询 select version(); cmd命令查询 mysql -- help(命令) mysql -u root -p(命令) 执行该命令并且输入数据库密码 数据库管理工具查询 selec…

探秘OpenCV中的findContours函数

文章目录 导言findContours函数的作用函数原型原理分析 应用场景代码示例结语 导言 在计算机视觉领域,图像处理是一项重要的任务。而在图像处理的过程中,轮廓(Contours)的提取是一项基础且关键的操作。OpenCV库中的findContours函…