当前位置: 首页 > news >正文

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

近期在使用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://www.lryc.cn/news/225863.html

相关文章:

  • 21. 合并两个有序链表 --力扣 --JAVA
  • Linux 基本语句_10_进程
  • 矩阵起源加入 OpenCloudOS 操作系统开源社区,完成技术兼容互认证
  • 3D物理模拟和视觉特效软件SideFX Houdini mac中文介绍
  • GPT-4.0网页平台-ChatYY
  • mysql,redis导入导出数据库数据
  • conda修改虚拟环境名称
  • c语言,将奇数和偶数分类
  • 前端设计模式之【观察者模式】
  • HTTPS安全相关-通信安全的四个特性-ssl/tls
  • 并查集:Leetcode765 情侣牵手
  • 如何设计一个网盘系统的架构
  • 【代码随想录】算法训练计划17
  • “护肤品销售策略:从“免费拼团”到“3人回本大放送”“
  • uniapp和vue3+ts开发小程序,使用vscode提示声明变量冲突解决办法
  • CCLink转Modbus TCP网关_MODBUS报文配置
  • 【开源】基于Vue.js的大学兼职教师管理系统的设计和实现
  • Mysql数据库 14.SQL语言 视图
  • 【Acwing171】送礼物(双向dfs)题解
  • 机器学习---多分类SVM、支持向量机分类
  • 玩转Linux基本指令
  • 【开源分享】国内可用的免费安卓GPT语音助手 - 可音量键唤起,可联网
  • 什么是安全平行切面
  • Git 入门使用 —— 建库、代码上下传、常用命令
  • HTML5学习系列之简单使用1
  • 计算机网络第一章(计算机网络开篇)
  • 百度秋招突击手册面试算法题:三数之和
  • 归并排序 图解 递归 + 非递归 + 笔记
  • 2023 年最好的 Android 系统修复/刷机应用程序和软件
  • Linux下内网穿透实现云原生观测分析工具的远程访问