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

发布时间:2024-09-02  

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的值,来设置系统启动模式。

启动模式选择引脚 启动模式 说明
BOOT1 BOOT0
X 0 主闪存存储器
0 1 系统存储器
1 1 内置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 。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>