打印
[应用相关]

stm32 swdio 电路设计_STM32之最小系统设计详解

[复制链接]
842|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
范德萨发额|  楼主 | 2022-4-29 14:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32最小系统可分为以下几个部分:电源电路、复位电路、时钟电路、BOOT启动电路、SWD调试电路。

1、电源电路

对于硬件产品,稳定可靠的电源供电是整个系统能够运行的前提。STM32芯片要求2.0~3.6V的操作电压,在实际工作中,硬件会通过串口连接线与PC相连,PC的USB接口电压是5V,所以需要设计一个5V转3.3V的电路。

在《STM32F10xxx硬件开发指南》手册中有如下要求:

如下图,5V电压通过AMS1117稳压电路后,输出3.3V的电压VDD,根据要求VDD要连接到外部稳定电容。

使用特权

评论回复
沙发
范德萨发额|  楼主 | 2022-4-29 14:18 | 只看该作者
2、复位电路

STM32集成了一个上电复位(POR)和掉电复位(PDR电路),当供电电压达到2V时就能正常工作,如果VDD低于特定的阈值(VPOR/VPDR),不需要外部电路STM32就一直处于复位模式。通常是低电平复位,上电复位就是在上电瞬间,电容充电,RESET出现短暂的低电平,低电平持续时间由电阻和电容共同决定。低电平持续时间计算方式:t=1.1RC,这里即为:t=1.1×10K×0.1uF=1.1ms,一般需求的复位信号持续时间在1ms左右。手动复位即如下图:按键按下时,RESET和地导通,RESET置低,实现复位。

使用特权

评论回复
板凳
sadicy| | 2022-4-29 14:26 | 只看该作者
上个电路图,一目了然

使用特权

评论回复
地板
范德萨发额|  楼主 | 2022-4-29 14:38 | 只看该作者
3、时钟电路

时钟对于STM32来说是及其重要的,下面是STM32的时钟树。STM32的系统时钟可以被三个不同的时钟源驱动:HIS晶振时钟(高速内部时钟信号)

HSE晶振时钟(高速外部时钟信号)

PLL时钟

STM32还有两个二级时钟源:低速内部时钟LSI,40kHz频率,可以用来驱动独立看门狗和实时时钟RTC,用于从停机/待机模式下自动唤醒系统;低速外部时钟LSE,使用32.768kHz的石英晶体,用来驱动RTC时钟。

使用特权

评论回复
5
范德萨发额|  楼主 | 2022-4-29 14:41 | 只看该作者
对于100脚的产品,如果使用内部时钟,OSC_IN应该接地,OSC_OUT应该悬空。在下面的电路图中,主频时钟的选择用8MHz的原因是方便倍频,32.768kHz时钟的作用是用于精准计时电路和万年历。晶振两端的等效电容等于或接近负载电容,可以起到一定的滤波作用,滤除晶振波形中的高频杂波。电容大小可以选择10~40pF,在一定范围内增大电容会使震荡频率下降,减小电容会使震荡频率升高。晶振输入输出之间连接的电阻大小为1M,可以产生负反馈,保证放大器工作在高增益的线性区,同时电阻还起到限流作用,防止反相器驱动过载损坏晶振。

使用特权

评论回复
6
范德萨发额|  楼主 | 2022-4-29 14:42 | 只看该作者
4、BOOT启动电路

STM32F10xxx有三种启动模式,由BOOT[1:0]引脚决定,启动模式见下表。

这些选择将每个启动模式下的物理存储区域映射到存储块0(启动存储块),BOOT引脚的值在复位后SYSCLK的第四个上升沿时被锁定。通过设置BOOT1和BOOT0引脚的电平,选择在复位后需要启动的模式。当退出待机模式时,也需要监测BOOT引脚的值,因此在待机模式下,BOOT引脚也应该保持需要的启动模式所需的电平。

使用特权

评论回复
7
范德萨发额|  楼主 | 2022-4-29 14:42 | 只看该作者
SWD调试电路

STM32F10xxx使用了Cortex-M3内核,该内核内部已经拥有一个硬件调试模块,支持各种调试操作。硬件调试模块允许指令断点和数据断点,可以查询内核停止时的内外部状态,查询完成后内核与外设复原,程序继续执行,当使用调试器对STM32进行调试时,调试器会使用Cortex-M3内核的调试模块进行调试操作。

使用特权

评论回复
8
范德萨发额|  楼主 | 2022-4-29 14:44 | 只看该作者
常用的调试下载方式有JTAG和SWD,SWD只需要连接四根线:SWCLK、SWDIO、GND和3.3V引脚。相比JTAG,SWD所需引脚更少,JTAG需要20管脚,SWD只需要两个引脚,不过为了避免浪费接口占用,调试接口和GPIO是可以复用的。在高速模式下,相比JTAG,SWD模式更加可靠,在大量数据的模式下,JTAG下载程序会失败,但SWD发生程序下载失败的几率会小很多。

使用特权

评论回复
9
Jacquetry| | 2022-10-5 21:38 | 只看该作者
都是基础啊

使用特权

评论回复
10
Pulitzer| | 2022-10-8 09:13 | 只看该作者

做多层板可将做好的两块双面板用特制的粘合剂“压合”起来

使用特权

评论回复
11
Uriah| | 2022-10-8 16:14 | 只看该作者

在孔璧内部作金属处理后,可以让内部的各层线路能够彼此连接。

使用特权

评论回复
12
Bblythe| | 2022-10-8 19:13 | 只看该作者

孔璧里头必须经过电镀

使用特权

评论回复
13
周半梅| | 2023-7-1 08:10 | 只看该作者

一般要进行内存优化,尽量提高内存的使用效率

使用特权

评论回复
14
Pulitzer| | 2023-7-1 09:13 | 只看该作者

让尽可能多的变量使用直接寻址,提高速度

使用特权

评论回复
15
周半梅| | 2023-7-1 10:16 | 只看该作者

51 单片机不使用线性编址

使用特权

评论回复
16
童雨竹| | 2023-7-1 11:09 | 只看该作者

访问时采用不同的指令,所以并不会占用 RAM 空间

使用特权

评论回复
17
万图| | 2023-7-1 12:12 | 只看该作者

极限情况下可以定义的变量可占 247 个字节

使用特权

评论回复
18
Clyde011| | 2023-7-1 13:15 | 只看该作者

128以上的某些地址为特殊寄存器使用,不能给程序用

使用特权

评论回复
19
万图| | 2023-7-1 15:11 | 只看该作者

超出 120 个字节则必须用 idata 显式的指定为间接寻址

使用特权

评论回复
20
Uriah| | 2023-7-1 16:14 | 只看该作者

只要内存占用量不超过 256.0 就可以用 small 模式编译

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

935

帖子

2

粉丝