请问此图中的场效应管出发开关的工作端接线时我把输入端和输出端的电源线接反的话,会发生电流倒灌吗?

Supply,简称SMPS),又称交换式电源、开关变换器,是一种高频化电能转换装置,是电源供应器的一种。其功能是将一个位准的电压,透过不同形式的架构转换为用户端所需求的电压或电流。开关电源的输入多半是交流电源(例如市电)或是直流电源,而输出多半是需要直流电源的设备,例如个人电脑,而开关电源就进行两者之间电压及电流的转换。

开关电源产品广泛应用于工业自动化控制、军工设备、科研设备、LED照明、工控设备、通讯设备、电力设备、仪器仪表、医疗设备、半导体制冷制热、空气净化器,电子冰箱,液晶显示器,LED灯具,通讯设备,视听产品,安防监控,LED灯带,电脑机箱,数码产品和仪器类等领域。

开关电源工作原理及各功能电路详解

一、 开关电源的电路组成[/b]:开关电源的主要电路是由输入电磁干扰滤波器(EMI)、整流滤波电路、功率变换电路、PWM控制器电路、输出整流滤波电路组成。辅助电路有输入过欠压保护电路、输出过欠压保护电路、输出过流保护电路、输出短路保护电路等。

开关电源的电路组成方框图如下:

二、 输入电路的原理及常见电路[/b]::

1、AC输入整流滤波电路原理:

① 防雷电路:当有雷击,产生高压经电网导入电源时,由MOV1、MOV2、MOV3:F1、F2、F3、FDG1组成的电路进行保护。当加在压敏电阻两端的电压超过其工作电压时,其阻值降低,使高压能量消耗在压敏电阻上,若电流过大,F1、F2、F3会烧毁保护后级电路。

输入滤波电路:C1、L1、C2、C3组成的双π型滤波网络主要是对输入电源的电磁噪声及杂波信号进行抑制,防止对电源干扰,同时也防止电源本身产生的高频杂波对电网干扰。当电源开启瞬间,要对C5充电,由于瞬间电流大,加RT1(热敏电阻)就能有效的防止浪涌电流。因瞬时能量全消耗在RT1电阻上,一定时间后温度升高后RT1阻值减小(RT1是负温系数元件),这时它消耗的能量非常小,后级电路可正常工作。

③ 整流滤波电路:交流电压经BRG1整流后,经C5滤波后得到较为纯净的直流电压。若C5容量变小,输出的交流纹波将增大。

2、 DC输入滤波电路原理:

① 输入滤波电路:C1、L1、C2组成的双π型滤波网络主要是对输入电源的电磁噪声及杂波信号进行抑制,防止对电源干扰,同时也防止电源本身产生的高频杂波对电网干扰。C3、C4为安规电容,L2、L3为差模电感。

② R1、R2、R3、Z1、C6、Q1、Z2、R4、R5、Q2、RT1、C7组成抗浪涌电路。在起机的瞬间,由于C6的存在Q2不导通,电流经RT1构成回路。当C6上的电压充至Z1的稳压值时Q2导通。如果C8漏电或后级电路短路现象,在起机的瞬间电流在RT1上产生的压降增大,Q1导通使Q2没有栅极电压不导通,RT1将会在很短的时间烧毁,以保护后级电路。

三、 功率变换电路[/b]:

1、 MOS管的工作原理:目前应用最广泛的绝缘栅场效应管是MOSFET(MOS管),是利用半导体表面的电声效应进行工作的。也称为表面场效应器件。由于它的栅极处于不导电状态,所以输入电阻可以大大提高,最高可达105欧姆,MOS管是利用栅源电压的大小,来改变半导体表面感生电荷的多少,从而控制漏极电流的大小。

R4、C3、R5、R6、C4、D1、D2组成缓冲器,和开关MOS管并接,使开关管电压应力减少,EMI减少,不发生二次击穿。在开关管Q1关断时,变压器的原边线圈易产生尖峰电压和尖峰电流,这些元件组合一起,能很好地吸收尖峰电压和电流。从R3测得的电流峰值信号参与当前工作周波的占空比控制,因此是当前工作周波的电流限制。当R5上的电压达到1V时,UC3842停止工作,开关管Q1立即关断 。 R1和Q1中的结电容CGS、CGD一起组成RC网络,电容的充放电直接影响着开关管的开关速度。R1过小,易引起振荡,电磁干扰也会很大;R1过大,会降低开关管的开关速度。Z1通常将MOS管的GS电压限制在18V以下,从而保护了MOS管。

Q1的栅极受控电压为锯形波,当其占空比越大时,Q1导通时间越长,变压器所储存的能量也就越多;当Q1截止时,变压器通过D1、D2、R5、R4、C3释放能量,同时也达到了磁场复位的目的,为变压器的下一次存储、传递能量做好了准备。IC根据输出电压和电流时刻调整着⑥脚锯形波占空比的大小,从而稳定了整机的输出电流和电压。 C4和R6为尖峰电压吸收回路。

4、推挽式功率变换电路: Q1和Q2将轮流导通。

5、有驱动变压器的功率变换电路:T2为驱动变压器,T1为开关变压器,TR1为电流环。

四、 输出整流滤波电路[/b]::

1、 正激式整流电路:

T1为开关变压器,其初极和次极的相位同相。D1为整流二极管,D2为续流二极管,R1、C1、R2、C2为削尖峰电路。L1为续流电感,C4、L2、C5组成π型滤波器。

2、 反激式整流电路:

T1为开关变压器,其初极和次极的相位同相。D1为整流二极管,D2为续流二极管,R1、C1、R2、C2为削尖峰电路。L1为续流电感,C4、L2、C5组成π型滤波器。

3、 反激式整流电路:

4、工作原理:当变压器次级上端为正时,电流经C2、R5、R6、R7使Q2导通,电路构成回路,Q2为整流管。Q1栅极由于处于反偏而截止。当变压器次级下端为正时,电流经C3、R4、R2使Q1导通,Q1为续流管。Q2栅极由于处于反偏而截止。L2为续流电感,C6、L1、C7组成π型滤波器。R1、C1、R9、C4为削尖峰电路。

五、 稳压环路原理[/b]:

2、工作原理: 当输出U0升高,经取样电阻R7、R8、R10、VR1分压后,U1③脚电压升高,当其超过U1②脚基准电压后U1①脚输出高电平,使Q1导通,光耦OT1发光二极管发光,光电三极管导通,UC3842①脚电位相应变低,从而改变U1⑥脚输出占空比减小,U0降低。 当输出U0降低时,U1③脚电压降低,当其低过U1②脚基准电压后U1①脚输出低电平,Q1不导通,光耦OT1发光二极管不发光,光电三极管不导通,UC3842①脚电位升高,从而改变U1⑥脚输出占空比增大,U0降低。周而复始,从而使输出电压保持稳定。调节VR1可改变输出电压值。 反馈环路是影响开关电源稳定性的重要电路。如反馈电阻电容错、漏、虚焊等,会产生自激振荡,故障现象为:波形异常,空、满载振荡,输出电压不稳定等。

1、在输出端短路的情况下,PWM控制电路能够把输出电流限制在一个安全范围内,它可以用多种方法来实现限流电路,当功率限流在短路时不起作用时,只有另增设一部分电路。

2、短路保护电路通常有两种,下图是小功率短路保护电路,其原理简述如下:

当输出电路短路,输出电压消失,光耦OT1不导通,UC3842①脚电压上升至5V左右,R1与R2的分压超过TL431基准,使之导通,UC3842⑦脚VCC电位被拉低,IC停止工作。UC3842停止工作后①脚电位消失,TL431不导通UC3842⑦脚电位上升,UC3842重新启动,周而复始。当短路现象消失后,电路可以自动恢复成正常工作状态。

3、下图是中功率短路保护电路,其原理简述如下:

当输出短路,UC3842①脚电压上升,U1 ③脚 电位高于②脚时,比较器翻转①脚输出高电位,给 C1充电,当C1两端电压超过⑤脚基准电压时 U1⑦脚输出低电位,UC3842①脚低于1V,UCC3842 停止工作,输出电压为0V,周而复始,当短路 消失后电路正常工作。R2、C1是充放电时间常数, 阻值不对时短路保护不起作用。

4、 下图是常见的限流、短路保护电路。其工作原理简述如下:

当输出电路短路或过流,变压器原边电流增大,R3 两端电压降增大,③脚电压升高,UC3842⑥脚输出占空 比逐渐增大,③脚电压超过1V时,UC3842关闭无输出。

5、下图是用电流互感器取样电流的保护电路

有着功耗小,但成本高和电路较为复杂,其工作原 理简述如下: 输出电路短路或电流过大,TR1次级线圈感 应的电压就越高,当UC3842③脚超过1伏,UC3842 停止工作,周而复始,当短路或过载消失,电路自行恢复。

上图是常见的输出端限流保护电路,其工作原理简述如上图:当输出电流过大时,RS(锰铜丝)两端电压上升,U1③脚电压高于②脚基准电压,U1①脚输出高电压,Q1导通,光耦发生光电效应,UC3842①脚电压降低,输出电压降低,从而达到输出过载限流的目的。

八、输出过压保护电路的原理

输出过压保护电路的作用是:当输出电压超过设计值时,把输出电压限定在一安全值的范围内。当开关电源内部稳压环路出现故障或者由于用户操作不当引起输出过压现象时,过压保护电路进行保护以防止损坏后级用电设备。

应用最为普遍的过压保护电路有如下几种:

1、可控硅触发保护电路:

如上图,当Uo1输出升高,稳压管(Z3)击穿导通,可控硅(SCR1)的控制端得到触发电压,因此可控硅导通。Uo2电压对地短路,过流保护电路或短路保护电路就会工作,停止整个电源电路的工作。当输出过压现象排除,可控硅的控制端触发电压通过R对地泄放,可控硅恢复断开状态

2、光电耦合保护电路:

如上图,当Uo有过压现象时,稳压管击穿导通,经光耦(OT2)R6到地产生电流流过,光电耦合器的发光二极管发光,从而使光电耦合器的光敏三极管导通。Q1基极得电导通, 3842的③脚电降低,使IC关闭,停止整个电源的工作,Uo为零,周而复始,。

3、输出限压保护电路: 输出限压保护电路如下图,当输出电压升高,稳压管导通光耦导通,Q1基极有驱动电压而道通,UC3842③电压升高,输出降低,稳压管不导通,UC3842③电压降低,输出电压升高。周而复始,输出电压将稳定在一范围内(取决于稳压管的稳压值)。

4、输出过压锁死电路:

输入电压经L1、L2、L3等组成的EMI滤波器,BRG1整流一路送PFC电感,另一路经R1、R2分压后送入PFC控制器作为输入电压的取样,用以调整控制信号的占空比,即改变Q1的导通和关断时间,稳定PFC输出电压。L4是PFC电感,它在Q1导通时储存能量,在Q1关断时施放能量。D1是启动二极管。D2是PFC整流二极管,C6、C7滤波。PFC电压一路送后级电路,另一路经R3、R4分压后送入PFC控制器作为PFC输出电压的取样,用以调整控制信号的占空比,稳定PFC输出电压。

AC输入和DC输入的开关电源的输入过欠压保护原理大致相同。保护电路的取样电压均来自输入滤波后的电压。 取样电压分为两路,一路经R1、R2、R3、R4分压后输入比较器3脚,如取样电压高于2脚基准电压,比较器1脚输出高电平去控制主控制器使其关断,电源无输出。另一路经R7、R8、R9、R10分压后输入比较器6脚,如取样电压低于5脚基准电压,比较器7脚输出高电平去控制主控制器使其关断,电源无输出。

联系地址:深圳市福田区车公庙天安数码城天吉大厦CD座5C1

请搜微信公众号:“KIA半导体”或扫一扫下图“关注”官方微信公众号

请“关注”官方微信公众号:提供 MOS管 技术帮助


摘要:通用型输入输出端口,简称GPIO口,是单片机与其他外围设备和电路进行信息交换和控制的桥梁。本文从复习模电中所学的场效应管开始,逐步引出开漏输出与推挽输出的概念及阐述其原理,并结合点亮一盏LED灯的实例进一步探讨IO口的输出模式;随后介绍单片机的输入电路;在此基础上,结合IO口输入与输出模式的性质介绍标准双向IO口和准双向IO口的特点;最后分别对51单片机和STM32单片机的IO口结构进行讲解,其中重点对STM32单片机的GPIO寄存器和工作原理进行介绍。


    • 四、IO口的输出实例:点亮一盏LED灯
    • 五、浮空输入电路(高阻态输入)与施密特触发器
    • 六、带弱上拉的输入电路
    • 七、标准双向IO口的特点
      • 7.1 一个IO口可以既用作输出,又用作输入,但标准的双向IO口要满足以下两个特点:
      • 7.2 开漏输出、推挽输出结构是否可以作为双向IO?
    • 八、准双向IO:开漏输出 + 上拉电阻 = (准) 输入输出端口
    • 九、51单片机的IO口结构
    • 十、STM32单片机的IO口结构
      • 10.2 输入 / 输出模式的寄存器端口位配置表
      • 10.3 GPIO口通过MODER寄存器配置成输入模式的工作原理
      • 10.4 GPIO口通过MODER寄存器配置成输出模式的工作原理

首先我们需要复习一下模电里面所学的场效应管的基本知识。
场效应管主要分为两种类型:结型场效应管(JFET)和绝缘栅型场效应管(MOS - FET),这里我们介绍的主要是绝缘栅性场效应管。
绝缘栅性场效应管(MOS管)有两种结构形式,可以分为N沟道型和P沟道型,每一种沟道又可以分为增强型和耗尽型两种。增强型和耗尽型的主要区别,是当Ugs = 0时,增强型MOS管漏极和源极之间不存在导电沟道,而耗尽型MOS管漏极和源极之间存在导电沟道。以N沟道增强型MOS管为例,栅源之间必须加正向电压Ugs > 某一开启电压,才能形成导电沟道。


下面引入反相器的概念,反相器可以实现对输入信号的反相。下图电路模型即代表反相器(右端有一个小圆圈)。
反相器通常由一对互补的PMOS管和NMOS管制成。由于PMOS管和NMOS成对出现在电路中,且二者在工作时总是互补,当其中一个管导通时,另一个管总是截止,故称为CMOS管(意为互补)。
数字电路中多采用增强型MOS管,上图即为增强型PMOS管和NMOS管组成的非门电路。两个互补的MOS管开启电压相同,且需小于VDD。
增强型PMOS管的导通条件为Ug Us。
所以当输入信号为高电平时,上面的PMOS管截止,下面的NMOS管导通,此时Uo输出低电平;当输入信号为低电平时,上面的PMOS管导通,下面的NMOS管截止,此时Uo输出高电平。这样就实现了信号的反相。


开漏输出的全称是漏极开路输出电路,与开集输出十分类似,只是将三极管中的集电极替换成了场效应管中的漏极,上图就是一个漏极开路输出的电路模型。从输入端INT输入低电平后,经过反相器的作用变成高电平,那么NOMS管的栅极就是高电平,由于源极接地,此时Ug > Us,故NMOS管导通,这样输出端OUT就能输出低电平;而从输入端INT输入高电平后,经过反相器的作用变成低电平,此时Ug = Us,故NMOS管截止,这时输出端OUT悬空。悬空的意思,就是指输出既不是高电平也不是低电平,是一种很特殊的状态,称为高阻态。
也就是说,在开漏电路中,输入低电平可以从输出端得到低电平,而输入高电平却不能从输出端得到高电平,得到的只是高阻态。要想从输出端得到高电平,输出端必须通过一个上拉电阻连接到VCC(即图中虚线框部分)。具体可以拉高到多少伏,是由外部所接的VCC所决定的。所以开漏输出电路具有电平转化的能力,在需要进行电平转化的地方,非常适合使用开漏输出。


推挽结构是指两个MOS管或者三极管收到互补控制的信号控制,两个管子总是一个在导通时另一个截止。
与开漏输出不同,推挽输出的最大特点是可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力。
但推挽输出的一个缺点是,如果将两个推挽输出结构的引脚相连在一起,并且其中一个引脚输出高电平(即上面的MOS导通,下面的MOS管截止),同时另一个引脚输出低电平(即上面的MOS闭合,下面的MOS导通)。此时电流会从第一个引脚的VCC通过上端MOS管再经过第二个引脚的下端MOS管直接流向GND。整条通路上电阻很小,会发生短路,进而可能造成端口的损害。所以推挽输出结构的IO口不能用来实现“线与”,而“线与逻辑”的特点会在使用矩阵键盘时大有用处。
下面是用51单片机连接4 × 4矩阵键盘的电路原理图,由于51单片机的IO口均为开漏输出,所以可以通过“线与逻辑”来实现矩阵键盘。关于矩阵键盘扫描的具体原理,这里就不再介绍,有兴趣的同学可以查阅相关资料。

四、IO口的输出实例:点亮一盏LED灯

以51单片机为例,电路关键部分如下图所示,VCC通过1k电阻连接到LED的正极,LED的负极接到P1.0口。只要控制单片机P1.0口输出低电平,LED灯就会由于二极管两端的压差而点亮,如果P1.0口输出的是高电平,二极管两端压差为0,二极管就不会导通,从而LED灯不会被点亮。电流方向是从外部电路经过P1.0引脚流进单片机内部的,这种由外部电路流进单片机内部的电流,称为灌电流。
程序实现也十分简单,由于51单片机并不需要对IO口进行初始化配置,所以P1.0口直接输出低电平即可。

下面再来介绍另外一种点亮LED灯的电路结构,简化电路模型如下图所示:
这是开漏输出+上拉电阻的简化电路,蓝色框的部分表示在单片机内部,开关S相当于开漏输出电路的NMOS管,与开漏输出不同的是,P1.0引脚通过10k电阻上拉到VCC,所以引脚能够通过程序写1或写0输出高低电平。当单片机内部执行P1^0 = 0的时候,NMOS管导通,相当于开关S闭合,P1.0引脚接地输出低电平,LED由于两端没有压差而不会点亮;当单片机内部执行P1^0 = 1的时候,NMOS管截止,相当于开关S断开,P1.0引脚通过上拉电阻获得高电平输出,二极管由于两端正向压差而导通,从而LED灯点亮发光。该电路的电流方向是从单片机内部流向外部电路的,所以称为拉电流 。对于51单片机,灌电流接法电流较大,拉电流接法由于受到上拉电阻的限制,电流较小,导致LED灯不亮或者亮度很微弱,所以通常不采用这种接法。
根据STC官方的芯片手册,对于STC单片机,建议单个IO口灌电流建议不超过20mA,所有IO口灌电流之和不超55mA,否则容易烧坏IO口。而拉电流大小只有230uA左右。

五、浮空输入电路(高阻态输入)与施密特触发器


为了简单化,这里所说的输入IO,指的是只作为输入,不具有输出功能。此时对于输入引脚的要求就是高阻。
图示中的缓冲器U1是具有控制输入端,且具有高阻抗特性的三态缓冲器。通俗地说就是这个缓冲器对外来说是高阻的,相当于在控制输入端不使能的情况下,物理引脚与内部总线之间是完全隔离的,完全不会影响内部电路。而控制输入端的作用就是可以发出读Pin状态的操作指令。其过程下图所示:
这种基本电路的一个缺点是在读取外部信号的跳变沿时会出现抖动,为了解决这一问题,可以加入施密特触发器用于整形,获得外部信号较理想的矩形脉冲。
经过施密特触发器后的信号如下图所示:

六、带弱上拉的输入电路

浮空输入状态下,IO的电平状态完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。为了防止输入端悬空,减少外部电流对芯片的干扰,限流,增加(准)双向IO口高 / 低电平输出时的驱动能力,可以在输入引脚处加入一个上拉电阻或下拉电阻。当GPIO引脚无输入时,上拉输入在默认状态下为高电平,下拉输入在默认状态下为低电平。一般来讲,上拉电阻为1K-Ω ~ 10KΩ,电阻越小,驱动能力越强,下面主要介绍带弱上拉的输入电路。
如下图所示,浮空输入模式下,引脚悬空时会受到外部信号的干扰,读取到不确定的电平状态。
如下图所示,在输入引脚处加入一个上拉电阻Rp后,默认状态下为高电平,只有当输入引脚被低电平驱动时读到的才是0,对1的读取方式为“读取非0”,即除非有低电平输入,否则读脉冲信号就为1。
但这种电路的一个问题是引脚对外呈现的不是高阻态,在某种意义上来说也在向外输出,当外部驱动电路不同时可能出现错误的检测结果。例如一个简化的外部驱动电路是如下图所示的结构,当开关K打到上端时,Test Point输出高电平;当开关K打到下端时,Test Point输出低电平。
如果让这个外部驱动电路输出低电平,并将此电路与单片机带有弱上拉电阻(10kΩ)的输入引脚相连,其结构如下所示:
由欧姆定律知,测试点处的电平是5V * (100K / 110K) = 4.545V,于是单片机的IO口测得的输入信号为高,而外部驱动电路实际输出的电平为低。这种错误的原因就在于单片机这种结构的输入电路并不是真正的高阻,或者说这个输入IO其实也在输出,而且影响了外部输入电路。
这种情况的发生也说明了:信号前后两级传递,为什么需要输出阻抗小,输入阻抗大的原因。在这个例子中,外部驱动电路的输出阻抗很大,达到了100kΩ;而输入端的阻抗又不够大,只有10kΩ,于是就出现了问题。如果输入端的输入阻抗真正做到高阻(无穷大),如下图所示,K1和K2断开使得输入引脚悬空呈现高阻态,就不会出现输入电平检测错误的问题。

七、标准双向IO口的特点

7.1 一个IO口可以既用作输出,又用作输入,但标准的双向IO口要满足以下两个特点:

?① 在输出模式下,可以输出高低电平
?② 在输入模式下,如果没有接外部电路,应呈现高阻态

7.2 开漏输出、推挽输出结构是否可以作为双向IO?

?① 由于开漏输出电路不能正常输出高电平,所以不能作为双向IO。
?② 虽然推挽电路在输出模式下可以输出高低电平,但在输入模式下,必须将推挽输出结构的PMOS管和NMOS管都断开,才不会因某一MOS管的导通而锁死Pin引脚的电平状态。但推挽电路的特性,是两个晶体管收到互补信号的控制,总是一管导通时另一管截止。如果通过控制使得两个晶体管都断开,就能使得这个IO口作为输入,并且此时在没有外部电路时呈现高阻态,所以推挽输出结构有可能成为双向IO口。

八、准双向IO:开漏输出 + 上拉电阻 = (准) 输入输出端口


?① 作为输出引脚使用时,能通过向锁存器U1中写入“1”或“0”,而从Pin引脚获得高 /低电平;作为输入引脚使用时,必须先向U1中写“1”,已达到断开T1的目的,否则U1为0会使得T1导通,从而导致Pin引脚的电平始终为GND,即外部无论输入什么信号,U2读回的全部为低电平。(具体原理可参考本文对开漏输出的介绍)
?② 单片机内部以该电路连接的IO作为输入端口时,由于上拉电阻的存在,Pin引脚不悬空,即输入阻抗不为高阻,不满足标准双向IO口的第二点条件,所以称为准双向IO口。
?③ 准双向端口读取输入状态,默认为高。也就是判断外部输入信号的方法是"非低则为高"。即该结构只能准确的识别外部的低电平,无法区分悬空和真正的高。于是只要读到的不是0,都认为外部为1。

九、51单片机的IO口结构

51单片机的IO口用作普通输入输出功能,而不是工作在第二功能状态下时,都是开漏结构。对于51单片机的P1、P2、P3口,由于有内部上拉电阻,输入模式下不可能出现高阻态,所以称之为准双向IO口。而P0口默认不接上拉电阻,所以无法输出高电平,而如果外部加了上拉电阻连接到VCC,输入时又不会出现高阻态,所以也是准双向IO口。51单片机在使用IO口之前不需要配置输入还是输出状态,直接往引脚写入“0”或“1”就能输出相应的电平,而用作输入时,必须要向该引脚写“1”置成高电平,才能去读取引脚的电平状态。

十、STM32单片机的IO口结构

STM32单片机的IO口与51单片机相比较为复杂,使用前必须操作相关寄存器完成对IO口的初始化配置(单片机内部会选择不同的硬件电路连接),以选择不同的输入 / 输出模式,配置完成后,共有八种输入 / 输出模式:浮空输入、上拉输入、下拉输入、模拟输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。这里除了模拟输入、复用开漏输出和复用推挽输出,其他的输入 / 输出模式都已经在前面介绍了,这里就主要对STM32单片机的GPIO寄存器及其配置成输入和输出模式下的内部工作原理进行详解。

STM32单片机一共有10个与GPIO口相关的寄存器,但GPIO口的初始化只用到了其中的四个,分别为端口模式寄存器MODER、输出类型寄存器OTYPER、输出速度寄存器OSPEEDR、上拉/下拉寄存器PUPDR,通过软件操作这四个寄存器就可以完成单片机对GPIO口输入 / 输出模式的配置。
以下对寄存器的说明参考《STM32F4xx中文参考手册》第7章第4小节:
● 其它GPIO口:输入模式
这些位通过软件写入,用于配置 I/O 方向模式。
● 00:输入(复位状态)
● 01:通用输出模式
● 10:复用功能模式

10.2 输入 / 输出模式的寄存器端口位配置表

GPIO口的初始化一般需要配置四个寄存器:MODER寄存器、OTYPER寄存器、OSPEEDR寄存器、PUPDR寄存器,但如果选择GPIO口作为输入功能,可以只配置MODER寄存器和PUPDR寄存器,OTYPER寄存器和OSPEEDR寄存器的状态不会影响输入。
与51单片机类似,如果将stm32的某一IO口配置成开漏输出,且端口带上拉电阻,该IO口就成为一个准双向IO口,同样地,用作输入前,必须要向该引脚写“1”置成高电平,才能去读取引脚的电平状态。(或者需要切换使用输入功能时,直接操作MODER寄存器配置成输入)
● stm32的GPIO口配置成准双向IO口的步骤:
? MODER寄存器配置成通用输出模式,OTYPER寄存器配置成输出开漏,PUPDR寄存器配置成上拉。
? 输入时: 读时先输出高电平(否则有可能因先前低电平输出锁死IO口为低电平),然后读。

10.3 GPIO口通过MODER寄存器配置成输入模式的工作原理

● 施密特触发器输入被打开
● 根据 GPIOx_PUPDR 寄存器中的值决定是否打开上拉和下拉电阻
● 输入数据寄存器每隔 1 个 AHB1 时钟周期对 I/O 引脚上的数据进行一次采样
● 对输入数据寄存器的读访问可获取 I/O 状态

10.4 GPIO口通过MODER寄存器配置成输出模式的工作原理

● 输出缓冲器被打开:
— 开漏模式:输出寄存器中的“0”可激活 N-MOS,而输出寄存器中的“1”会使端口保持高阻态 (Hi-Z)(P-MOS 始终不激活)。
— 推挽模式:输出寄存器中的“0”可激活 N-MOS,而输出寄存器中的“1”可激活P-MOS。
● 施密特触发器输入被打开
● 根据 GPIOx_PUPDR 寄存器中的值决定是否打开弱上拉电阻和下拉电阻
● 输入数据寄存器每隔 1 个 AHB1 时钟周期对 I/O 引脚上的数据进行一次采样
● 对输入数据寄存器的读访问可获取 I/O 状态
● 对输出数据寄存器的读访问可获取最后的写入值
注意:虽然在输出模式下施密特触发器输入也打开,且输入数据寄存器每隔一个AHB1时钟周期对IO引脚上的数据进行一次采样,但IO口的电平状态很有可能通过推挽 / 开漏结构中的P-MOS管被钳制在高电平,或通过N-MOS管被钳制在低电平,此时对输入数据寄存器的读访问反映的只是IO口此时输出电平的高低,并不能用来检测外部电路输入的电平状态。要想使用该IO口作为输入,需要将MODER寄存器配置成输入模式,此时输出缓冲器被关闭,不会使电平检测发生错误。或者,可以在输出开漏+上拉电阻的配置模式下,向输出数据寄存器中写“1”,此时N-MOS管截止,IO口不会因为N-MOS管被钳制在低电平,从而可以进行外部电路输入电平的检测。

我要回帖

更多关于 hy1707场效应管参数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信