FastBond3挑战部分-基于STM32设计的DAPLlink下载器
该项目使用了STM32F103CBT6,实现了一个DAPlink下载器的设计,它的主要功能为:给基于 ARM 内核的单片机进行代码的下载调试。
标签
开发板
PYL4869
更新2024-08-30
124

一、前言

在上篇 FastBond3基础阶段的文档中完成了方案框图的绘制以及主要器件的介绍,在挑战部分中我将继续完善设计,打出PCB实物并且对效果进行演示。

本次项目设计了一款供电下载调试串口充电五合一的DAPLINK,用于对STM32、GD32等此类单片机的下载调试。

二、原理图及PCB介绍

image.png

供电电路介绍:

供电部分采用的是TI的TLV62569DBVR DC-DC电源芯片,增加一个保险丝与LED显示是否供电,通过R19与R20两个电阻控制DC-DC电源芯片的输出电压。

TLV62569DBVR :

TLV62569器件是一款同步降压DC-DC转换器,专门 针对高效和紧凑型解决方案进行了优化。该器件集成的 开关能够提供高达2A的输出电流。

•效率高达95%

•低RDS(ON),可在100mΩ和60mΩ之间切换

•输入电压范围:2.5V至5.5V

•可调输出电压:0.6V至VIN

•针对轻载效率的省电模式

•针对最低压降的100%占空比

• 35µA静态工作电流

• 1.5MHz典型开关频率

•电源正常输出

•过流保护

•内部软启动

•热关断保护

•采用小外形尺寸晶体管(SOT)封装

•与TLV62568引脚兼容

image.png

R19和R20分别为453k、100k,通过计算可得知Vout=0.6*(1+453/100)= 3.318V。

image.png

电源管理电路介绍:

TP5400

TP5400 为一款移动电源专用的单节锂离子电池充电器和恒定5V升压控制器,充电 部分集高精度电压和充电电流调节器、预充、充电状态指示和充电截止等功能于一体, 可以输出最大1A充电电流。而升压电路采用CMOS工艺制造的空载电流极低的VFM开 关型DC/DC升压转换器。其具有极低的空载功耗(小于10uA),且升压输出驱动电流能 力能达到1A。无需外部按键,可以即插即用。

image.png

其中的D3与D4作为充电状态指示灯

image.png

image.png

主控使用的是STM32F103CBT6

STM32F103CBT6 是 STMicroelectronics(意法半导体)推出的一款基于 ARM Cortex-M3 内核的微控制器(MCU),广泛应用于嵌入式系统开发中。它属于 STM32 系列的 F1 系列,适合诸如工业控制、便携式设备、机器人、消费电子等各种应用场合。STM32F103CBT6 是一款功能强大且灵活的微控制器,适合各种嵌入式应用。其支持丰富的外设接口和高性能的处理能力,使其成为开发者实现项目创新的理想选择。无论是在学习阶段还是项目开发中,STM32F103CBT6 都能提供足够的支持和便利。

  • Arm 32 位 Cortex-M3
    • 72 MHz 最大频率,1.25 DMIPS/MHz (Dhrystone 2.1) 性能,0 等待状态内存访问
    • 单周期乘法和硬件除法
  • 记忆
    • 64 或 128 KB 闪存
    • 20 KB 的 SRAM
  • 时钟、复位和电源管理
    • 2.0 至 3.6 V 应用电源和 I/O
    • POR、PDR 和可编程电压检测器 (PVD)
    • 4 至 16 MHz 晶体振荡器
    • 内部 8 MHz 工厂调整 RC
    • 内部 40 kHz RC
    • 用于 CPU 时钟的 PLL
    • 用于 RTC 的 32 kHz 振荡器,带校准功能
  • 低功耗
    • 睡眠、停止和待机模式
  • 2 个 12 位、1 μs A/D 转换器(多达 16 个通道)
    • 转换范围:0 至 3.6 V
    • 双采样和保持能力
    • 温度传感器
  • DMA的
    • 7通道DMA控制器
    • 支持的外设:定时器、ADC、SPI、I2Cs 和 USART
  • 多达 80 个快速 I/O 端口
    • 26/37/51/80 I/O,全部可映射在 16 个外部中断向量上,并且几乎全部可承受 5 V 电压
  • 调试模式:
    • 串行线调试 (SWD) 和 JTAG 接口
  • 七个计时器
    • 3 个 16 位定时器,每个定时器具有多达 4 个 IC/OC/PWM 或脉冲计数器和正交(增量)编码器输入
    • 16 位电机控制 PWM 定时器,具有死区时间生成和紧急停止功能
    • 两个看门狗定时器(独立定时器和窗口定时器)
    • SysTick 定时器 24 位下计数器
  • 多达 9 个通信接口
    • 最多两个 I2C 接口(SMBus/PMBus®)
    • 多达 3 个 USART(ISO 7816 接口、LIN、IrDA 功能、调制解调器控制)
    • 最多两个 SPI (18 Mbit/s)
    • CAN接口(2.0B有源)
    • USB 2.0 全速接口

image.png

PCB设计介绍及遇到的问题和解决方法

在整个设计中遇到的问题是TP5400电源管理ic发烫严重,锂电池不能正常充电,充电状态指示灯也不正常,经过排查之后发现是Typec接口与STM32F103CBT6出现虚焊,重新焊接后TP5400就工作正常了。

三、成品功能测试

板卡焊接之后装配完成的样子:

image.png

image.png

关键代码及说明:

DAPlink是一个开源的项目,我们需要从ARM官方的github仓库里git下源码,按照要求安装环境再进行编译。

image.png

安装步骤生成projectfiles步骤后,分别编译stm32f103xb_bl和stm32f103xb_stm32f103rb_if,编译没问题之后将程序下载进去,再重新拔插USB线,此时电脑将出现一个虚拟U盘,表示DAPlink的boot程序已经成功启动。

image.png

image.png

image.png

出现虚拟U盘之后再将stm32f103xb_stm32f103rb_if工程编译的hex文件直接拖入虚拟U盘,DAPlink就可以正常运行了。

image.png

image.png

下载调试串口功能展示图:

image.png

uint8_t Rx_dat = 0;
uint8_t Tx_str1[] = "hello world!\r\n";
uint8_t Tx_str2[] = "LED1 Open!\r\n";
uint8_t Tx_str3[] = "LED1 Closed!\r\n";
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART1)
{
if(Rx_dat == 0xa1)
{
HAL_UART_Transmit(&huart1,Tx_str2,sizeof(Tx_str2),10000);
HAL_UART_Receive_IT(&huart1,&Rx_dat,1);
}
else if(Rx_dat == 0xa2)
{
HAL_UART_Transmit(&huart1,Tx_str3,sizeof(Tx_str3),10000);
HAL_UART_Receive_IT(&huart1,&Rx_dat,1);
}
}
}
/* USER CODE END 0 */

/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{

/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */
SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
HAL_UART_Transmit(&huart1,Tx_str1,sizeof(Tx_str1),10000);
HAL_UART_Receive_IT(&huart1,&Rx_dat,1);
/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
HAL_Delay(1000);
}
/* USER CODE END 3 */
}

image.png

可以看到测试程序,首先初始化串口,上电后向上位机发送hello world!,并且打开串口中断,上位机正常接受,上位机发送A1到STM32H7,返回LED1 Open!,可知下载调试串口功能一切正常。

充电供电功能展示图:

image.png

image.png

可以看到无Typec接口供电时,锂电池从3.7V升压至5V给下载器和STM32H750供电,当使用Typec接口供电时,给锂电池充电,并且自动使用Typec供电。

四、活动总结

很感谢举办方举办的FastBond3活动,完成了这次DAPlink下载器的设计为了之后的项目做了充分的铺垫,之后打算小型化DAPlink下载器集成到自己设计的开发板上,过程中遇到了很多困难,但最终都解决了,并且收获很多,祝愿大赛越办越好。

软硬件
元器件
STM32F103CBT6
主流高性能系列Arm Cortex-M3 MCU,配有128 KB Flash存储器,72 MHz CPU,电机控制,USB和CAN
TLV62569DBVR
采用 SOT23 或 SOT563 封装的 2.5V-5.5V 输入、2A 高效降压转换器
电路图
物料清单
KiCad文件
使用说明
全屏
附件下载
NEW_DAPLINK.rar
kicad工程
Snipaste_2024-08-29_13-35-57.png
测试工程百度云盘二维码
DAPLink.rar
DAPLink的hex文件
团队介绍
个人
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号