Arduino IDE与STM32开发板深度解析

目录

  • 前言
  • 一、STM32芯片的命名规则
  • 二、原理图
  • 三、电源转换电路
  • 四、复位电路
  • 五、晶振电路
  • 六、GPIO输出电路
  • 七、GPIO输入电路
  • 八、下载电路
  • 总结
  • 前言

    在使用Arduino IDE开发STM32之前,先来分析一下STM32F103RCT6单片机,完整的单片机控制板一般由微控制器(MCU)、电源模块、时钟电路、输入/输出接口(I/O)、通信接口等部分组成,再逐步分析一下各个电路。

    一、STM32芯片的命名规则

    如:STM32F103RCT6代表STM32基础版MCU,64&66引脚,芯体规格是32位,速度是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是48K。

    二、原理图

    STM32F103RCT6开发板的原理图

    三、电源转换电路

    原理图 描述
    电源转换电路采用稳压芯片AMS1117-3V3,STM32芯片的工作电压为2.0~3.6V,一般取3.3V。而通过USB接口输出的电源为5V,防止STM32芯片损坏,因此通过该电源转换电路,把5V的输入电压降低到3.3V工作电压。

    在STM32单片机中,VDD、VSS、VDDA和VSSA是电源相关的引脚标记,它们各自承担不同的功能,以确保单片机的正常工作。以下是这些术语的具体含义:
    VDD:这是数字部分的正电源输入引脚。它为STM32单片机内部的数字电路提供工作电压。根据具体型号,这个电压值可以是1.8V到3.6V之间。
    VSS:这是数字部分的地(参考点),与VDD配合使用,为数字电路提供一个完整的电流回路。所有内部数字信号都相对于这个地电平进行测量和操作。
    VDDA:这是模拟部分的正电源输入引脚。它专为单片机内部的模拟电路(例如ADC模块)供电。为了保证模拟电路性能,通常建议VDDA连接到一个稳定的电压源,并且有时需要额外的去耦电容来减少噪声。
    VSSA:这是模拟部分的地(参考点)。类似于VSS,但专门用于模拟电路部分。将VSSA和VSS保持在同一电平上有助于减少数字电路对模拟电路的干扰,从而提高模拟信号的精度。
    正确处理这些电源和地线连接对于确保STM32单片机稳定运行至关重要。特别是当涉及到模拟信号处理时,良好的电源去耦和地线布局能够显著提升系统性能。此外,在设计电路板时,应特别注意使VDDA和VSSA尽可能靠近单片机放置,并采用低阻抗连接,以减少噪音和干扰。

    四、复位电路

    原理图 描述
    工作状态:RESET引脚通过电阻R12被拉高至电源电压(3V3),单片机处于正常运行状态。复位操作:当按下SW1按钮时,RESET引脚被拉低至低电平。此时,电容C12开始充电,RESET引脚保持低电平一段时间。这段时间足够长以确保单片机完成复位过程。释放按钮后,电容C12继续充电,直到RESET引脚恢复到高电平状态,单片机重新开始执行程序。

    五、晶振电路

    原理图 描述
    8MHz晶振主要用于为主系统提供时钟源。通过内部锁相环(PLL)倍频后,可以为STM32提供更高频率的工作时钟,例如72MHz或更高,这取决于具体的STM32型号。
    32.768kHz晶振主要用作实时时钟(RTC)的时钟源。这个特定频率的选择是因为它可以很容易地被分频成1Hz的信号,非常适合用来计时。此外,由于其低频特性,它消耗的电流极小,因此非常适合电池供电设备中的长时间运行。

    六、GPIO输出电路

    原理图 描述
    当PA8引脚输出低电平时,电流从电源经过电阻R11流向LED,LED发光。当PA8引脚输出高电平时,没有电流流过LED,LED熄灭。电阻R11限制电流,防止LED过流损坏。根据欧姆定律,通过LED的电流大约为 (3.3V – Vf) / 1KΩ,其中Vf是LED的正向电压降,对于大多数LED来说,这个值在1.8V到3.5V之间。确保所选电阻能够承受所需的功率。电阻消耗的功率可以用 P=I²R或 P=VI来计算。

    七、GPIO输入电路

    原理图 描述
    开发板的三个按键其中SW2闭合向单片机输入高电平信号,SW3、SW4闭合向单片机输入低电平信号。对于GPIO输入来说WK_UP这个引脚应配合下拉电阻,PC8、PC9应配合上拉电阻,只不过在STM32单片机中已对GPIO引脚配置了上、下拉电阻,在后续代码中只需要配置即可,因此此处并没有额外再添加。

    :GPIO(通用输入输出)引脚在配置为输入模式时,如果没有外部信号驱动或处于高阻态,其电平状态可能是不确定的,这种现象通常被称为“浮空”或“浮动”。为了避免这种情况,确保GPIO输入引脚有一个确定的状态(高电平或低电平),我们使用上拉或下拉电阻。以下是它们的作用:
    上拉电阻:当GPIO引脚配置为输入并且没有外部设备驱动该引脚时,上拉电阻将引脚连接到电源电压(Vcc),从而将引脚电平拉至高电平。这样,当外部设备不主动驱动引脚时,默认状态下引脚会保持在高电平。
    下拉电阻:相反,当下拉电阻连接GPIO引脚和地(GND)时,在没有外部设备驱动的情况下,它会将引脚电平拉低。这意味着如果外部设备未激活,引脚将默认保持在低电平。

    八、下载电路

  • 下载方式
  • 方式 下载器 连线 描述
    串口 USB转TTL烧录器 3.3V-3.3V,GND-GND,TX-PA10,RX-PA9 使用串口下载需将单片机BOOT0拉高,按下复位键进入系统存储区。下载完成拉低BOOT0,按下复位键STM32将从Flash中启动
    SWD ST-LINK 3.3V-3.3V,GND-GND,SWDIO-SWDIO,SWDCLK-SWDCLK 无需配置启动模式直接可下载
  • 启动模式
  • 注:启动模式配置

  • ISP串口一键下载电路
  • 原理:ISP串口一键下载电路通过串口发送复位信号并自动配置特定引脚状态,使单片机重启后进入编程模式,随后接收来自串口的新固件数据并将其写入闪存,完成程序的自动更新与烧录,整个过程只需按下一次按钮或发送下载指令即可实现。

    总结

    简单的分析了一下单片机系统的原理图,包括STM32芯片的命名规则、电源转换电路、复位电路、晶振电路、GPIO输入/输出电路和STM32的两种下载模式,接下来将基于以上原理图的STM32F103RCT6开发板,使用Aduino IDE进行编程学习。

    作者:NZ流浪者

    物联沃分享整理
    物联沃-IOTWORD物联网 » Arduino IDE与STM32开发板深度解析

    发表回复