你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32CUBEIDE的GPIO输出模式和速率经验分享篇三

[复制链接]
攻城狮Melo 发布时间:2023-4-9 22:30
概述
    本章主要GPIO输出模式下不同配置的说明。
   
生成例程
) _0 T* T6 }$ t8 ~7 d4 m
   使用STM32CUBEMX生成例程,这里使用NUCLEO-L476RG开发板,因为我这只有这款板子的主频较快。
, f% H, C8 e5 ^
20.png

0 p: P! j1 m  g# h: ~# N不同速率对应的波形
% @, w2 ^: q% ?' q
    以PC3为例,在推挽输出无上下拉情况下,输出速率主要有4种,一般的低端MCU只有3种,没有Very High。

; z5 H/ M2 E" m# [1 }6 Q2 T
19.png

- E; S5 ^7 m6 B, \
LOW速率9 b, n; g: C* D3 h) ?; a: P
18.jpg
1 s9 r6 H& n& h/ N. p  G
) E4 `* T7 ]7 e
Medium速率7 @* J5 T& H' `! B1 C

% ~% N% z4 @5 x6 X0 D9 R
17.jpg
' e, u3 X) ]: b- k' [1 ^7 |
High速率
: Z$ o! h* _) z' p

3 ?, E6 E' X1 \: N. e
16.jpg
5 G: r! }, m9 a
Very High速率
# r. V! _4 ^9 _/ i: b$ \0 G5 U& J0 M3 i7 |- s5 }! Q& ?% r# s0 b: |
15.jpg
- r. X& S1 o+ c+ [, q  _5 ?0 u
    可以看到,在不同速率下,端口的反应速度不一样,设置最大输出速率越大,响应越快,对应的噪声也就越大。

# G8 p4 _/ ?4 l
输出方式
; V! z1 H! g- \7 }& p
$ Y: i8 o' c1 N2 R
14.png
% a/ ]' T3 X  {. c
13.png

: j) Y* }8 I2 w5 t" ]( a3 T2 b
    在上图中,P-MOS带了一个⚪,说明是低电平导通。

' H7 ^6 P8 F% B$ |

12.png

3 N' t6 `7 G3 y+ \; [- F7 A2 N0 `  U
    上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。

& v) d% e" X5 ^$ C5 y6 u: N
11.png
) a1 c8 w- J/ p9 G. }* _
推挽输出
    推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。

" }4 |; O% B6 S2 K/ \( q
10.png

' O  Y* \8 T/ L
    当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。
* x8 U/ R8 `. v  A6 t5 A
9.png
3 _2 v" V/ V, t3 L+ x) X
& Z) d! K0 e4 f. ~0 C' S* B
    当输出低电平时候,N-MOS导通,P-MOS截至,此时电流流入R5的为0。
$ e( u; z$ p7 x( s: x: a8 N
8.png

+ k; U, b: o$ r8 u7 n3 R4 H线与
6 C* M. R# ~/ ^. _  D9 X/ c
    推挽输出高电平与电源电压基本上没有压差
    高低电平的驱动能力较强,推挽输出的电流都能达到几十mA。
    但是无法进行线与操作,做进行线与操作,那么电源和地就会短路,因为mos管电阻很小。
    看下图可以得知,电流通过Q3的P-MOS流到Q2的N-MOS,最终回到地。

7 G" J& Y2 G$ `& _7 T& K8 I
开漏输出
" I: U6 ]+ j+ C2 D+ U( _
    开漏输出又叫漏极开漏输出简化后可以看作如下的示意图。
% R, m) S9 j; u' E. D- ^
6.png
& T/ @9 \( p. x! Q! p

( p  y9 F' N" w. D  \3 Z/ Y7 B
    若还是使用上面推挽的电路图,当N-MOS为低电平时候,那么他的输出就是一个高阻态。
    可以看到,R5没有电流通过,电压也是接近于0,所以GPIO无法对外输出高电平。

* |7 L: s& G2 g; Q( R1 @0 Z$ z
5.png

* ?3 L8 _+ ^, l0 ]/ F" t' k: B+ [
    此时需要增加一个上拉,这样的话上拉的电流就会流出去。
    所以在开漏输出情况下,需要增加一个上拉才能进行输出高电平。

' G; X! u8 N8 r, F
4.png

# h5 O$ K9 {; }! S
    对于输出低电平,他和推挽输出差不多,电流通过N-MOS流到地中。
( i, J- b( W" n; s4 u$ {' [9 E
3.png
; T( c) L+ F4 g, [0 L! [# p
    上图是没有增加上拉,但是开漏输出模式都需要增加,增加上拉之后如下图所示。
    电流通过N-MOS流回地中。

6 D) z& V1 a, V' B% ?) w% z
2.png
( G2 C( P1 C2 o! E1 ?5 i. |
输出电压* E! `. w0 o: i7 Y( R0 F) c
    由于推挽输出在输出的时候是通过单片机内部的电压,所以他的电压是不能改变的。
    但是开漏输出是通过外部上拉的电压,所以可以改变开漏输出模式下的电压大小。
    下图是当上拉为5V时候,也是可以驱动出去的,这个上拉电压最大值需要看单片机的耐压。

. I$ G' U+ n2 c8 e) B* R8 M3 b; L$ x
1.png

" I' ^7 R! [4 o% k5 |  G# t9 j
转载自:记帖
如有侵权请联系删除7 g4 M# p7 R% z' `& e

, g2 _- a+ V1 {; L' |7 H
6 d$ u' `. S* r# g5 Y: p' c/ o! U
7.png
赞 收藏 评论0 发布时间:2023-4-9 22:30

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版