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

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

[复制链接]
攻城狮Melo 发布时间:2023-4-9 22:30
概述
    本章主要GPIO输出模式下不同配置的说明。
   
生成例程
* h$ r* v- W* n- j
   使用STM32CUBEMX生成例程,这里使用NUCLEO-L476RG开发板,因为我这只有这款板子的主频较快。

8 o/ k* v" Y) X$ [: U
20.png

8 ~5 J3 n3 R- Z/ O不同速率对应的波形
; D6 W, b! p; a2 L- ]1 T  A
    以PC3为例,在推挽输出无上下拉情况下,输出速率主要有4种,一般的低端MCU只有3种,没有Very High。
% j: t. S1 P- z$ H4 i9 W4 B
19.png
8 b/ |4 a. F7 _: @4 z4 I3 ^
LOW速率
3 I' q) u4 |  {/ v  F& J+ O; [ 18.jpg $ w; s, U5 n8 [) _
' w1 M/ g" `. p8 A
Medium速率
* V  H8 B! c& e( J. X# J
1 }7 F3 A* F3 ?7 N7 m, d/ m7 l
17.jpg
4 c, y* [) w7 w0 L8 {* {9 _
High速率* ^8 L) J, B7 C

# V, S2 F( m5 }6 q& h
16.jpg

( V9 h0 H4 A5 ?% d* Y, T2 sVery High速率4 K# l6 p1 p. Q6 ?

- s3 X' I2 `" b& g: P) h 15.jpg & a" b) O1 o, {
1 l3 D7 R! }0 t4 @8 c) z9 `; m. |( O
    可以看到,在不同速率下,端口的反应速度不一样,设置最大输出速率越大,响应越快,对应的噪声也就越大。
) d( [1 y. P6 X( o* g- {
输出方式
! j  X. G( w. n' F; d, l
8 W" q- K3 L+ P6 r* Q- Y7 E' g
14.png
; \7 s  U) M2 }- X7 R/ D- [6 u3 h
13.png

: K  Z: V( a" o( c; E; `
    在上图中,P-MOS带了一个⚪,说明是低电平导通。
: B$ O: @; e9 M/ s  N. n

12.png

8 X6 r' n# U  i. H
    上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。

2 P. v3 ^% Y6 x
11.png

) C! l  `7 S4 ^推挽输出
    推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。
1 g2 z) t$ [4 A  I$ n; m" K
10.png
/ g- N9 p6 J, H: M0 G* M
    当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。
: H1 `9 U1 q: d$ P: K: I
9.png

" {+ _; Z& j4 N% g8 C% U" g% P* F
    当输出低电平时候,N-MOS导通,P-MOS截至,此时电流流入R5的为0。

8 ^. z* N2 p7 S$ T% n* Y4 b8 B7 O, @
8.png
! @1 P8 d! w8 |- o+ M' o
线与; _% X0 K/ P, n0 O- D
    推挽输出高电平与电源电压基本上没有压差
    高低电平的驱动能力较强,推挽输出的电流都能达到几十mA。
    但是无法进行线与操作,做进行线与操作,那么电源和地就会短路,因为mos管电阻很小。
    看下图可以得知,电流通过Q3的P-MOS流到Q2的N-MOS,最终回到地。
3 i5 o5 `! }  ]+ @
开漏输出  K, W4 D/ M1 x1 Q- u
    开漏输出又叫漏极开漏输出简化后可以看作如下的示意图。
- @# ]2 b5 W" O: \" m* C& H
6.png

. X4 I4 H! d3 k2 w9 ]9 s& L9 r
. g1 l/ p4 e2 D& q& \
    若还是使用上面推挽的电路图,当N-MOS为低电平时候,那么他的输出就是一个高阻态。
    可以看到,R5没有电流通过,电压也是接近于0,所以GPIO无法对外输出高电平。
4 {& ]# o; T1 {
5.png
* x1 L( J# A5 ~8 S3 Z" K" y' v  ]
    此时需要增加一个上拉,这样的话上拉的电流就会流出去。
    所以在开漏输出情况下,需要增加一个上拉才能进行输出高电平。
4 ]3 N2 T( s4 X
4.png

! Z8 M4 Y, S: T3 A- h$ r6 O
    对于输出低电平,他和推挽输出差不多,电流通过N-MOS流到地中。
. W# U0 [: ^9 p2 P7 F  ]0 f
3.png
8 v& i# _: }/ J, y1 x) E
    上图是没有增加上拉,但是开漏输出模式都需要增加,增加上拉之后如下图所示。
    电流通过N-MOS流回地中。
# D$ k" F* O8 r! B3 `7 Z/ T4 S
2.png

- _% R6 ~. q6 @: _/ L$ j% R输出电压
( U: ]1 ]$ g, @3 L
    由于推挽输出在输出的时候是通过单片机内部的电压,所以他的电压是不能改变的。
    但是开漏输出是通过外部上拉的电压,所以可以改变开漏输出模式下的电压大小。
    下图是当上拉为5V时候,也是可以驱动出去的,这个上拉电压最大值需要看单片机的耐压。

6 _+ r) O- I- M1 @
1.png

; F  _! L% r( y! W1 D% J. t7 m
转载自:记帖
如有侵权请联系删除
% I' C; l: T  F/ B1 t

: I$ \3 @: @( \5 Y' @  c8 s& P
1 ]7 |# W( w2 Q
5 P& e/ m* F/ e4 X
7.png
收藏 评论0 发布时间:2023-4-9 22:30

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版