医疗电子技术网|技术阅读
登录|注册

您现在的位置是:医疗电子技术网 > 技术阅读 > 单片机控制板的PCB设计有哪些注意事项?(附STM32单片机的八种IO口模式)

单片机控制板的PCB设计有哪些注意事项?(附STM32单片机的八种IO口模式)

设计电路板最基本的过程可以分为三大步骤:电路原理图的设计产生网络表印制电路板的设计。不管是板上的器件布局还是走线等等都有着具体的要求。

例如,输入输出走线应尽量避免平行,以免产生干扰。两信号线平行走线必要是应加地线隔离,两相邻层布线要尽量互相垂直,平行容易产生寄生耦合。电源与地线应尽量分在两层互相垂直。线宽方面,对数字电路PCB可用宽的地线做一回路,即构成一地网(模拟电路不能这样使用),用大面积铺铜。

下面这篇文章就单片机控制板PCB设计需要注意的原则和一些细节问题进行了说明。

元器件布局

在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它们靠近些。对于那些易产生噪声的器件、小电流电路、大电流电路开关电路等,应尽量使其远离单片机的逻辑控制电路和存储电路(ROM、RAM),如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰,提高电路工作的可靠性。

去耦电容

尽量在关键元件,如ROM、RAM等芯片旁边安装去耦电容。实际上,印制电路板走线、引脚连线和接线等都可能含有较大的电感效应。大的电感可能会在Vcc 走线上引起严重的开关噪声尖峰。防止Vcc走线上开关噪声尖峰的唯一方法,是在VCC与电源地之间安放一个0.1uF的电子去耦电容。如果电路板上使用的是表面贴装元件,可以用片状电容直接紧靠着元件,在Vcc引脚上固定。最好是使用瓷片电容,这是因为这种电容具有较低的静电损耗(ESL)和高频阻抗,另外这种电容温度和时间上的介质稳定性也很不错。尽量不要使用钽电容,因为在高频下它的阻抗较高。

在安放去耦电容时需要注意以下几点:

  • 在印制电路板的电源输入端跨接100uF左右的电解电容,如果体积允许的话,电容量大一些则更好。

  • 原则上每个集成电路芯片的旁边都需要放置一个0.01uF的瓷片电容,如果电路板的空隙太小而放置不下时,可以每10个芯片左右放置一个1-10的钽电容。

  • 对于抗干扰能力弱、关断时电流变化大的元件和RAM、ROM等存储元件,应该在电源线(Vcc)和地线之间接入去耦电容。

  • 电容的引线不要太长,特别是高频旁路电容不能带引线。


地线设计

在单片机控制系统中,地线的种类有很多,有系统地、屏蔽地、逻辑地、模拟地等,地线是否布局合理,将决定电路板的抗干扰能力。在设计地线和接地点的时候,应该考虑以下问题:

逻辑地和模拟地要分开布线,不能合用,将它们各自的地线分别与相应的电源地线相连。在设计时,模拟地线应尽量加粗,而且尽量加大引出端的接地面积。一般来讲,对于输入输出的模拟信号,与单片机电路之间最好通过光耦进行隔离。

在设计逻辑电路的印制电路版时,其地线应构成闭环形式,提高电路的抗干扰能力。

地线应尽量的粗。如果地线很细的话,则地线电阻将会较大,造成接地电位随电流的变化而变化,致使信号电平不稳,导致电路的抗干扰能力下降。在布线空间允许的情况下,要保证主要地线的宽度至少在2-3mm以上,元件引脚上的接地线应该在1.5mm左右。

要注意接地点的选择。当电路板上信号频率低于1MHz时,由于布线和元件之间的电磁感应影响很小,而接地电路形成的环流对干扰的影响较大,所以要采用一点接地,使其不形成回路。当电路板上信号频率高于10MHz时,由于PCB布线设计的电感效应明显,地线阻抗变得很大,此时接地电路形成的环流就不再是主要的问题了。所以应采用多点接地,尽量降低地线阻抗。

其他

·电源线的布置除了要根据电流的大小尽量加粗走线宽度外,在PCB布线设计时还应使电源线、地线的走线方向与数据线的走线方身一致在PCB布线设计工作的最后,用地线将电路板的底层没有走线的地方铺满,这些方法都有助于增强电路的抗干扰能力。

数据线的宽度应尽可能地宽,以减小阻抗。数据线的宽度至少不小于0.3mm(12mil),如果采用0.46~0.5mm(18mil~20mil)则更为理想。

由于电路板的一个过孔会带来大约10pF的电容效应,这对于高频电路,将会引入太多的干扰,所以在PCB布线设计的时候,应尽可能地减少过孔的数量。再有,过多的过孔也会造成电路板的机械强度降低。


顺便整理了STM32单片机的八种IO口模式:STM32八种IO口模式区别

(1)GPIO_Mode_AIN模拟输入

(2)GPIO_Mode_IN_FLOATING浮空输入

(3)GPIO_Mode_IPD下拉输入

(4)GPIO_Mode_IPU上拉输入

(5)GPIO_Mode_Out_OD开漏输出

(6)GPIO_Mode_Out_PP推挽输出

(7)GPIO_Mode_AF_OD复用开漏输出

(8)GPIO_Mode_AF_PP复用推挽输出

以下是详细讲解

(1)GPIO_Mode_AIN模拟输入

即关闭施密特触发器,将电压信号传送到片上外设模块(不接上、下拉电阻)

(2)GPIO_Mode_IN_FLOATING浮空输入

浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的

(3)GPIO_Mode_IPD下拉输入GPIO_Mode_IPU上拉输入

一般来讲,上拉电阻为1K-10K,电阻越小,驱动能力越强

电阻的作用——防止输入端悬空,减少外部电流对芯片的干扰,限流;,增加高电平输出时的驱动能力。

上拉输入:在默认状态下(GPIO引脚无输入)为高电平

下拉输入:在默认状态下(GPIO引脚无输入)为低电平

(4)GPIO_Mode_Out_OD开漏输出

开漏输出:输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,

其吸收电流的能力相对强(一般20ma以内)。

(5)GPIO_Mode_Out_PP推挽输出

推挽输出:可以输出高,低电平,连接数字器件;

(6)GPIO_Mode_AF_OD复用开漏输出GPIO_Mode_AF_PP复用推挽输出

复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)



在STM32中选用IO模式

(1)浮空输入_IN_FLOATING——浮空输入,可以做KEY识别,RX1

(2)带上拉输入_IPU——IO内部上拉电阻输入

(3)带下拉输入_IPD——IO内部下拉电阻输入

(4)模拟输入_AIN——应用ADC模拟输入,或者低功耗下省电

(5)开漏输出_OUT_OD——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能

(6)推挽输出_OUT_PP——IO输出0-接GND,IO输出1 -接VCC,读输入值是未知的

(7)复用功能的推挽输出_AF_PP——片内外设功能(I2C的SCL,SDA)

(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)

通常有5种方式使用某个引脚功能,它们的配置方式如下:

1)作为普通GPIO输入根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。

2)作为普通GPIO输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。

3)作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。

4)作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。

5)作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。