文章目录
- 如何画好主控?
-
- 构建最小系统电路原理图
- 以STM32F407ZET6为例:
-
- 晶振电路原理
- 如何构建晶振电路?
- 复位电路原理
- 如何构建复位电路?
- 下载电路
- 电源电路原理
- 如何构建电源电路?
- 特殊引脚电路
- 特殊引脚电路引脚电路?
- 以上,我们成功地建立了一个MCU最小原理图:
如何画好主控?
我们通常使用它AD或者EDA画一块电路板体思路是:
-
选择芯片,构建元件图库
-
构建最小系统原理图
-
构建外设原理图
-
PCB、检测芯片稳定性
构建最小系统电路原理图
有了库,你就可以开始画板了。我们首先要建立的是选择芯片。,该系统可以确保我能够在绘制后正常记录,并向单片机编写控制指令。单片机还可以从相应的引脚中输出我的指令(例如,拉高或拉低引脚)。此时,虽然输出没有相应的外设,但我们也可以通过物理连接(或电压表测试)获得预期的效果。
:晶振电路(产生时钟)、复位电路、下载电路、电源电路、特殊引脚电路(防止单片机不稳定)。而对于任意一款单片机来说,它的最小系统电路的输入输出引脚一定是特殊且有含义的。
以STM32F407ZET6为例:
晶振电路原理
晶体振荡器,全称为石英晶体振荡器,是一种高精度、高稳定性的振荡器。通过一定的外部电路,可以产生频率和峰值稳定的正弦波。当单片机运行时,它需要一个脉冲信号作为执行指令的触发信号。可以简单地想象,当单片机收到脉冲时,它会执行一个或多个指令。
晶体振动本身可以等同于电路上的电容器和电阻,然后串联电容器的二端网络。在电工学中,该网络有两个谐振点,其中较低频率为串联谐振,较高频率为并联谐振。由于晶体本身的特性,这两个频率之间的距离相当接近。在这个极窄的频率范围内,晶体振动等效为电感,因此只要晶体振动的两端并联合适的电容,就会形成并联谐振电路。
并联谐振电路可以在负反馈电路中构成正弦波振荡电路。由于晶体振动等效电感的频率范围很窄,即使其他部件的参数变化很大,振荡器的频率也不会变化很大。
晶体振动电路连接到相反放大器的两端,另外两个电容连接到晶体振动的两端,另一个电容连接到负载电容。
晶体振动有一个重要的参数,即负载电容值,选择等于负载电容值的并联电容,以获得晶体振动标称的谐振频率。负载电容值约为15pF所以并联电容的选择是22pF最合适的(常数0和4为PCB芯片内部电路电容) 晶体振动就像单片机的心脏。如果没有心脏跳动,单片机将无法正常工作。晶体振动越大,运行速度越快,但速度增加也有干扰电路的风险。
通常有两种晶体振动:无源晶体振动和有源晶体振动。无源晶体振动需要内部振荡器,但无源信号质量差,精度差,更换麻烦。通常使用有源晶体振动。
晶体振动:根据压电效应,在极板之间增加交变电压会产生机械变形振动。这种机械振动的振幅相对较小,振动频率非常稳定。当交变电压的频率等于晶片的固有频率(取决于晶片的大小)时,机械振动的范围将急剧增加。这种现象称为压电谐振,因此石英晶体也称为石英晶体谐振器。其特点是频率稳定性高。
如何构建晶振电路?
PH0-OSC_IN和PH1-OSC_OUT接入4—16MZH用于产生单片机主频的晶振;
PC14-OSC32_IN和PC15-OSC32_OUT用于接入32.768KHZ的RTC晶振。
(实时时钟可以理解为需要准确定时的区域提供。32768正好是2的15次,15次分频后可以得到1次HZ信号。如果不需要准确定时,可以不使用。
其他单片机的晶振电路也是如此。晶振通常标记在芯片原理图上XTAL,一般需要外部晶振(即主频4-16)MZH晶振)
复位电路原理
一般采用电容电压不能突变的原理,将电容与电阻串联起来。上电时,电容器不充电,两端电压为零。此时,提供复位脉冲,电源不断充电电容器,直到电容器两端电压为电源电压,电路进入正常工作状态。
为确保单片机可靠复位,RST为了让单片机做好准备,让程序从正确的初始位置开始执行,高电平必须保持足够长的时间。
在电路图中,电容器的大小是10uf,电阻大小为10k。因此,电容充电到电源电压的0可以根据公式计算.7倍(单片机电源为5倍)V,所以充电到0.7倍即为3.5V),需要10个时间K*10UF=0.1S。
也就是说,在计算机启动0.1S内,电容两端的电压时在03.5V增加。此时10K电阻两端的电压为51.5V减少(串联电路电压之和为总电压)。
所以在0.1S内,RST引脚接收到的电压为5V~1.5V。在5V正常工作的51单片机小于1.5V电压信号为低电平信号,大于1.5V电压信号为高电平信号。所以在启动0.1S内部,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。
如何构建复位电路?
对于STM32F407ZT6芯片来说,复位电路的引脚也是固定的,只用按照复位电路的工作原理接入NRST引脚即可。而对于其他单片机也同样如此,找到对应的复位引脚RESET即可。
下载电路
对于单片机来说,:ISP、SWD、JTAG。其中SWD和JTAG是很相似而且有某种联系的,而ISP应该是我最早接触的烧录方式。
这种方式是通过单片机的串口TX和RX实现的,所以基本所有的单片机都可以通过ISP方式来进行下载。其本质就是一个USB转TTL的工具,如下图所示:
如下图,你可以买一个USB转TTL(单片机串口)的模块,也可以自己设计该转换模块的电路如下图所示,其中核心在于一个叫做CH340的芯片,你之后也可以用它来做其他USB转TTL的功能:
搭建好硬件后,通过单独的烧录软件如STC-ISP来下载即可,软件界面如下图:
之所以把这两个方式放在一起说,正是因为二者基本是互相转化的。对于一款可以用SWD或者JTAG方式烧录的单片机来说,其原理图上一定有对应的特殊引脚对应。
-
对于SWD方式而言,关键在于两根线——数据线SWDIO和时钟线SWCLK。也就是说在单片机上电的情况下,我只用两根线就能完成程序的烧录,所以通常你能看到的SWD口都是四根线(也就是还有VCC和GND)。
-
对于JATG方式而言,对应有六根必要的线,如下图:
从图中我们就能很容易看出,JTAG接口本身就含有SWD接口。也就是说如果你的单片机是SWD四根线的接口,那么你可以直接用导线引出JTAG口中的SWDIO、SWCLK外加VCC和GND即可。
开发板为例,他们通常是ISP或JTAG接口烧录的:
(如果ISP方式,那么你就是用一根USB线连接PC和单片机,利用在前文提到的ISP下载软件下载;而如果你是JTAG下载方式,那么你大可能通过一个叫做JLINK的下载器【如下图右】连接PC和单片机,然后在编译器【比如KEIL、IAR】中直接下载。)
找到JLINK下载器上对应SWD的四根线位置,通过导线连接到拥有SWD下载接口的单片机上,即可通过编译器内直接下载。
对于STM32F407ZET6来说,下载电路对应的管脚如图:
可见除了SWD和JTAG下载以外,还有两个BOOT0和BOOT1引脚,这是STM32独有的两个管理下载功能的管脚:
通常使用程序代码存储在主闪存存储器,配置方式:BOOT0=0,BOOT1=X;
* 开发调试过程中,由于某种原因导致内部Flash锁死,无法连接SWD以及Jtag调试,无法读到设备,可以通过修改BOOT模式重新刷写代码。修改为BOOT0=1,BOOT1=0即可从系统存储器启动,ST出厂时自带Bootloader程序,SWD以及JTAG调试接口都是专用的。重新烧写程序后,可将BOOT模式重新更换到BOOT0=0,BOOT1=X即可正常使用。
电源电路原理
对于任何一款单片机来说,VCC和VSS是电源的核心,VCC的C是Circuit的意思,是指整个供电回路的电压(有12V【正点原子板子供电电压】、24V、5V等);VSS的S是Series的意思,一般指公共端,通常电路中的公共端接地,即为地端电压;VDD的D是Device的意思,指设备上的电压,即芯片的工作电压,比如说STM32芯片的电压值一般为3.3V,就是VDD。(可见VCC>VDD)
通常,单片机的电平为3.3V/5V的格式,也称为CMOS/TTL电平格式,当你让单片机的一个引脚输出高电平时,它的大小就为3.3V/5V(STM32为3.3V,51为5V)。一般的,我们会利用外部供电VCC(>5V)的电源通过降压稳压的方式给单片机供电,这样做供电更稳定,也能为外围电路提供更高的电压。
现在我们所说的是单片机的最小系统电路,是围绕芯片展开的,所以我们需要的是如何通过VCC转换到VDD,再与VSS形成回路。(引脚比较简单的芯片会把VDD直接写成VCC)
如何搭建电源电路?
我们将其所有的VSS和VDD都接好,STM32芯片的工作电压是3.3V,所以VDD接到3.3V。那么现在就是如何把VCC转换到3.3V的VDD的问题。
这里我用了9V的电源为例进行外部供电,首先通过K7805-1000R3芯片进行降压到5V,然后再通过AMS1117-3.3芯片将5V降压到3.3V作为VDD。
这其中的电容是用来稳压的,具体的数值主要是跟使用的芯片参数有关,这两个芯片电路都是很成熟的,有兴趣可以去网上看原理。这是最简单的做法,降压和稳压。当然你也可以设计得复杂一点,加入防反接电路、过压保护、过流保护等等提高电路的安全性,但总的来说还是那句话,对于刚刚入门来说,很多电路设计都已经很成熟了,可以直接拿来用,创新的前提也应当是先看懂这些已经很成熟的东西。
特殊引脚电路
这里所谓的特殊引脚电路就是与电源和地大小直接相关的一些引脚,这些引脚如果什么都不接悬空的话,容易造成单片机某个功能工作的不正常,而他们其中的电平高低也决定了单片机的一些功能。功能越强大(引脚越多)的芯片,这些特殊功能引脚会越多,也就越需要我们去注意。
如何搭建特殊引脚电路?
- :VBAT是系统的掉电电源,其实就是备份电源,在单片机掉电时,给RTC和备份寄 存器提供电源。(还记得在晶振处曾讲解过有一个可有可无的32.768KHZ的晶振源吗, 当时说过那个晶振是为了给RTC,也就是实时时钟,即需要精准定时的区域提供振荡的, 比如我想要显示日期,时间等,如果你想要单片机显示实时的世界时钟,那么在单片机 掉电后肯定就需要保证RTC仍有工作能力,毕竟我们不可能一直给单片机供电。)
- :VCAP用于为备份域和待机电路之外(它们已经有一个VBAT为它们供电了)的数 字电路供电,其本质上是一个电压调节器,输出电压为1.2V,也就是说VDD作为芯片 的输入电压进入芯片后,为了给芯片内部的数字电路供电,还需要通过VCAP进行调压 到1.2V,电容的作用是滤波稳压。
- :STM32的144引脚系列引出来的掉电复位引脚,接高电平表示开启掉电复位, 接低电平表示关闭掉电复位。(100引脚系列没有这个引脚不代表没有该功能,只是ST 公司没有给你选择该功能的权利)
- :这三个是拥有AD转换功能的单片机需要的东西。VDDA是AD转换 的电源,VSSA是对应的公共端(相当于VDD和VSS),VREF是AD转换的参考电压, 大小在2.4V—VDDA之间,决定了AD转换的精度。由此可以看出AD的电源VDDA和参 考电压VREF必须稳定才能保证转换精度,所以需要加入电容进行滤波稳压。