硬件电路设计之STM32最小系统电路设计

应用电子电路

813人已加入

描述

1 简介

今天主要来谈谈MCU的设计,我使用过的MCU的型号包括意法半导体的STM32、华大GD32、Infineon的CY8C5868LTI-LP039以及MicroChip的ATSAME70,今天的主角是意法半导体的STM32最小系统设计,其它MCU电路设计后续进行分享。

2 最小系统

STM32的最小系统设计都是类似的,今天以STM32F429IGT6为例。STM32最小系统包含了 电源电路配置电路复位电路时钟电路下载电路。

电路设计

2.1 电源电路设计

STM32手册设计指导:

电路设计

  • VDD电源

STM32一般采用3.3V供电,根据手册VDD的供电范围1.7V~3.6V,该电源一般用于外部IO,使能内部内部稳压器,可对外供电。以下是VDD实战设计电路,VDD的每个电源引脚附近需要放置一个0.1uF电容,且每个0.1uF电容需要放置在相应PIN脚附近,另外建议在额外增加1到2个10uF的电容。

电路设计

  • VDDA电源

VSSA和VDDA的电压范围1.7V-3.6V,ADC, DAC,以及Reset模块的模拟电源。以下是VDDA实战设计电路,选用3.3V供电,此处R3可能是保守设计,用于后期调试(也有可能用于RC滤波),不建议增加10R电阻。对应的位置应放置一个10uF电容和一个0.1uF电容, 10μF 电容放置在远离 IC 的位置,用于平滑电源中的低频变化, 0.1μF 电容放在靠近 IC的位置,用于平滑高频电源的变化。小电容器需要更靠近IC,这将更有效过滤IC产生的高频信号,或更有效地抑制线路引入的高频信号对IC的影响。

电路设计

  • VBAT电源

VBAT的供电范围1.65V-3.6V,可作为RTC电源,外部时钟32 kHz振荡器和备份寄存器(通过电源开关)供电。VBAT用于连接纽扣电池,当板卡上电时,该PIN脚使用板卡上的3.3V电源,当板卡下电时,使用纽扣电池供电。D1的型号为BAT54C主要有以下两种场景:

  • 当板卡上电时,即端口2为3.3V,端口1为3V,此时下二极管导通,端口3和端口2电压近似相等,此时1端截止,VBAT=3.3V;
  • 当板卡不上电时,即端口2浮空,此时可视为下二极管截止,端口1为3V,上二极管导通,端口3和端口1的电压近似相等,VBAT=3V;

电路设计

2.2 控制电路设计

  • PDR_ON控制

内部上电复位(POR) /下电复位(PDR)电路通过PDR_ON引脚关闭。外部电源监督员应监视VDD,只要VDD低于指定的阈值,就应保持设备处于复位模式。

电路设计

推荐的参考电路为:

电路设计

  • 参考电压VREF+

在电路设计中,我们常常会用到ADC来采集电压数据,其中VREF+就是ADC的参考电压,具体ADC的精度需要查看参考手册,一般为12为ADC。

电路设计

  • Regulator OFF

通过保持BYPASS_REG高来禁用调节器。Regulator OFF模式允许通过VCAP_1和VCAP_2引脚向外部提供V12电压源。

电路设计

  • 启动模式选择

系统在进行复位之,在系统时钟的第四个上升沿BOOT引脚的值会被锁存。用户可以通过BOOT0和BOOT1的值,来设置系统启动模式。

启动模式选择引脚启动模式说明
BOOT1BOOT0
X0主闪存存储器
01系统存储器
11内置SRAM

手册描述见下:

电路设计

Flash memory启动方式(boot0 = 0)

这种启动方式地址为0x08000000,是STM32内置的Flash。一般均使用这种方式,通过JATG或者SMD下载的代码通常保存在该Flash中。

System memory启动方式(boot0 = 1;boot1 = 0)

这种启动方式地址为0x1FFF0000,该启动方式的程序一般由厂家提前烧录好。STM32在出厂时,厂家在内部预置了BootLoader(通常被称为ISP程序,该部分为ROM,掉电数据不丢失),且无法修改。 使用这种模式的好处是可以通过串口下载程序固件,将程序下载到BootLader

SRAM启动方式(boot0 = 1;boot1 = 1)

这种启动方式的地址为0x20000000,属于内置SRAM,无法存储程序。这种启动方式仅用于快速调试。

2.3 时钟电路设计

  • 主时钟

时钟是STM32内部最核心的器件,它可以提供时钟信号。依赖于这个信号,STM32中的器件才可以有条不紊地将工作进行下去。主时钟的范围 4-25MHz ,此处按照25MHz进行设计,具体设计电路见下:

电路设计

  • 实时时钟

实时时钟(RTC)是一个独立的BCD定时器/计数器。专用寄存器包含秒,分,小时(12/24小时),星期,日期,月,年,BCD(二进制编码的十进制)格式。每月28日、29日(闰年)、30日和31日的更正为自动执行。RTC提供可编程报警和可编程具有从停止和待机模式唤醒的周期性中断。单位秒数为也有二进制格式。

它的时钟是由一个32.768 kHz的外部晶体,谐振器或振荡器,内部低功耗RC振荡器或高速外部时钟除以128。内部低速RC典型频率为32千赫。RTC可以使用外部512 Hz进行校准输出补偿任何天然石英偏差。

电路设计

使用32.768 kHz的原因?

2的15次方正好等于32768,反过来讲,如果要把32.768K的时钟频率经过15次分频的话,得到的频率正好是1Hz,正好就是1秒钟时间,这样就可以计时了。

2.4 复位电路设计

复位电路使程序恢复到最开始运行的状态。当系统运行出现异常时,可以通过手动复位的方式确保系统回到正常运行状态。其中,C12用于硬件消抖,同事建议增加TVS管,防止静电损坏器件。看门狗后面有专门文章讲解。

电路设计

2.5 下载电路设计

程序下载有两种方式,分别JTAG模式SMD模式

  • JTAG模式

JTAG的全称是Joint Test Action Group (测试行动联合组织),它是由几家主要电子制造商发起制定的PCB 和IC 测试标准,主要应用于电路的边界扫描测试和可编程芯片的在线系统编程。

电路设计

JTAG调试接口必须使用VCC、GND电源信号,以及TMS、TCK、TDI、TDO四根调试信号。

  • SMD模式

SWD的全称是Serial Wire Debug(串行调试)。SWD是ARM公司设计的协议,用于对其微控制器进行编程调试。由于SWD专门从事编程和调试,因此它具有许多特殊的功能,通常在其他任何地方都无法使用,例如通过IO线将调试信息发送到计算机。

由于它是ARM专门为在其设备中使用而制造的,因此SWD的性能通常是同类产品中最好的。相对于JTAG接口,使用更少的信号。四根信号如下: VCC、GND、SWDIO、SWCLK

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分