STM32 常见模块电路设计:精彩之旅

对于一款单片机而言,有以下常见模块:

  • 电源部分;
  • 主控部分;
  • 输入部分;
  • 输出部分;
  • 显示部分;
  • 无线部分;
  • 接口部分;
  • 电机部分;
  • 等等。。。。。。。。。。。。。。。。。

    此部分内容对于偏软件的工程师来说,仅作为了解即可,看到电路得知道是干嘛的。

    电源电路

    一款开发板上有主控,有各种各样的外设,它们所需要的工作电压一般都不尽相同,但也是在一定的标准之内,并不是杂乱无章的。常用的电压有5V、4V、3.3V(大多数芯片使用的是宽电压),所以,我们需要通过电路设计使其能够产生这三种电压,同时,还应该考虑到可能会产生的最大电流,使得电压电流都能够满足要求。

    通常,会输入一个偏大的电压,比如7—24V的电压,然后通过转换器(DCDC等)、稳压器(LDO等)、降压器等芯片和电路进行转换,从而生成符合要求的电压值。

    比如:

    可参考这篇文章:MP1584降压芯DC-DC设计总结_笨鸟先飞(:>的博客-CSDN博客_mp1584

    通常:

    每个电源部分都会设计有指示灯,以表明电路是否工作正常;

    一般也可以通过USB的电源直接接到系统电压以支持USB供电。如果用USB供电的话,直接接到输出端那边的v_sys,USB 接口的电压就是 5V 的,和单片机的供电系统相适配。

    此时,DCDC芯片部分就用不上了。

    功耗不大的话是先用USB电源,只有电压不够了,反馈FB电压低,芯片才调节占空比!

    主控部分

    主控部分就是让芯片工作起来的一些电路设计。主要包括:

  • 电源连接;
  • 复位设计;
  • BOOT设计;
  • 晶振电路;
  • SWD调试接口;
  • RTC时钟;
  • Flash芯片设计;
  • 电源连接

    51单片机中,有一个电源VCC和一个地GND。

    但是更加复杂的单片机中,不止一个电源和地线连接,它提供了很多的电源端口,为内部各种电路提供电压支持,从好更好地保证其稳定性。这种电源一般命名为VDD。

    数字电路中,VDD表示芯片的内部工作电压,VCC表示电路的供电电压。不必特意区分。

     

    另外,还有模拟电源口,一般提供给A/D、D/A转换用:

    模拟电源通常在VDD和VSS前后后加上A,其中Vref是基准电压。MCU电路,对输入模拟信号或输出模拟信号,进行A/D或D/A变换时,需参考一个VREF值,进行转换。VREF是指电路中一个与负载、功率供给、温度漂移、时间等无关,能保持始终恒定的一个电压。指测量电压值时,用作参考点的电压值。

    另外还有个VBAT

    VBAT为电池工作模式专用引脚,当使用电池或其他电源连接到VBAT脚上时,若VDD断电,可以保存备份寄存器的内容和维持RTC的功能。以72MHz频率从闪存执行代码,仅消耗27mA电流。如果应用中没有使用外部电池,VBAT这个引脚必须接到VDD电源上。

    复位

    32有三种复位,系统复位、电源复位和备份区域复位。

    系统复位:

    电源复位:

    备份区域复位:

    以上,我们需要进行设计的是NRST的部分。通过一个外部按键来拉低电平从而实现复位。

    BOOT设计

    BOOT是什么?

    查阅32的手册可知,BOOT是选择启动方式的。

    就是控制BOOT0和BOOT1这两个引脚是高电平还是低电平来实现的:

    典型设置是从flash启动。

    晶振电路

    时钟源通常有三类,即纯内部、纯外部、内外部。他们各有优缺点,一般都是这三类的综合设计,以供不同情境下的使用。

    纯内部时钟源优点是方便,直接在芯片内部集成了,但往往不够精准。

    纯外部时钟是外面直接生成时钟再引入内部,一般比较精准,但是占地方,使用起来也不够方便。

    内外部则是振荡电路在内部,而晶振在外部。

    在实际中,内外部结合的方式是较为理想的。

    以下说明纯外部晶振。

    上面的电路是系统时钟的晶振来源;

    下面的电路是专门给RTC用的32.768Khz晶振,因为这个晶振频率值较为特殊,所以需要另外专门实现。

    调试接口

    JTAG

    为了方便嵌入式调试,就定义了一种JTAG接口,是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。

    参考:STM32 JTAG电路设计_零涂的博客-CSDN博客_jtag电路设计

    只要器件支持JTAG,就可以使用该接口来调试嵌入式程序。

    SWD

    SWD是ARM公司提出的另一种调试接口,相对于JTAG接口,使用更少的信号。除了电源和接地,四根信号如下:
    SWDIO:串行数据输入输出,作为仿真信号的双向数据信号线,建议上拉(高速下载时一定需要上拉);
    SWCLK:串行时钟输入,作为仿真信号的时钟信号线,建议下拉(高速下载时一定需要下拉);
    SWO:串行数据输出引脚,CPU调试接口可通过SWO引脚输出一些调试信息。该引脚是可选的;
    RESET:仿真器输出至目标CPU的系统复位信号。该引脚可选,建议选择上,因为ULINK是一定需要该管脚的,使得仿真器能够在连接器件前对器件进行复位,以获得较理想的初始状态,便于后续连接仿真。

    32单片机提供了JTAG和SWD接口。

    根据实际需要去进行电路实现:

    四线SWD
    该方式是目前STM32最小系统用的最多的方式,体积小。不过还是建议选择五线SWD


    五线SWD
    为什么把复位管脚放置在GND后面呢, 因为目前市面上大部分仿真器的SWD线序为VCC、SWDIO、SWCLK、GND,为了兼容市面上的四线的仿真器接口,所以选择放置在最后。

    20P ARM JTAG
    该种方式是最稳定的下载方式,速度相对于前两者可以很快,但是需要占用的体积大

    RTC实现

    RTC属于单片机的内部外设,只要我们提供一个外部晶振,即可工作。

    当断开电源时,启用备用电池。电路设计时可使用超级电容供电:

    Flash芯片

    具体的芯片查看具体的手册,通常,采用SPI协议来通信。

    ***************************************************

    以上部分是CPU工作的必备内容;

    以下部分就是各种外设,具体自行查找对应手册。

    ***************************************************

    输入部分

    输入部分主要是各种按键、点阵、触摸屏、热电偶、温湿度传感器、其它传感器等等。

    输出部分

    显示部分

    无线部分

    电机部分

    其他拓展接口

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32 常见模块电路设计:精彩之旅

    发表评论