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

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

[复制链接]
攻城狮Melo 发布时间:2023-4-9 22:30
概述
    本章主要GPIO输出模式下不同配置的说明。
   
生成例程
$ h- a( }3 y( X1 s- ^. e
   使用STM32CUBEMX生成例程,这里使用NUCLEO-L476RG开发板,因为我这只有这款板子的主频较快。
3 e3 O, H/ M3 S  f/ a) Y; z
20.png
* z1 G9 }4 X' }6 g& P
不同速率对应的波形8 D+ F  J) w  ]8 e& J. j
    以PC3为例,在推挽输出无上下拉情况下,输出速率主要有4种,一般的低端MCU只有3种,没有Very High。
2 b0 B; e' k: o9 {
19.png

  M( i1 H: Q2 F/ T% f4 r5 B5 Z. ^
LOW速率
- w7 G  k6 s$ v( @* T! D 18.jpg ! q' n* N, q1 g2 F& W, j7 F3 f/ [3 |
, U. Z; ~0 _9 \7 X
Medium速率6 S" e- T/ m' C" U4 G
) ^2 C3 r3 Q7 \6 M* i+ [
17.jpg
+ e) V' j1 H3 C3 s8 N
High速率& }$ b. X) r- X% }( \0 N3 z  x
9 q6 F" C2 B# T# e! j) S* M" C' T: ]5 L
16.jpg
% G: T& J% a, |
Very High速率
' y8 s  \% W& k5 q( L
% x8 K0 ~9 s1 P; ?1 w 15.jpg
9 g. b' w. @. t, M# X7 D. y
( g0 Y( L' B/ c3 f- b
    可以看到,在不同速率下,端口的反应速度不一样,设置最大输出速率越大,响应越快,对应的噪声也就越大。

, _4 [/ m! N# K, d! C. v
输出方式
4 p7 o9 ]* P1 o0 b' K. Q

  k( s' V4 E9 i& i2 z
14.png
* D" e9 T0 q# m
13.png

6 E" Z4 X3 A+ l
    在上图中,P-MOS带了一个⚪,说明是低电平导通。

! ?5 g* M! [3 C$ k

12.png

0 v1 ~/ \+ F7 S" e* J+ J( N, p
    上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。
8 Q; N  T. c" B/ y, H. H6 R
11.png

. n( ^, R: d3 j( q" ?( W推挽输出
    推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。

* P, h1 d% g- C
10.png
: R$ U/ r# ?7 I% \3 p
    当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。

) l. O9 _2 @* U2 \# r* x) n" w! s7 k6 u
9.png

, W! Y8 ]. N) y( E. p9 O5 _' b, w4 K% Q+ E8 u$ T) q
    当输出低电平时候,N-MOS导通,P-MOS截至,此时电流流入R5的为0。
; z( W& c$ V6 P& ?1 o
8.png
; W, k. W* S! U; D
线与/ d: W! [- \. _, w
    推挽输出高电平与电源电压基本上没有压差
    高低电平的驱动能力较强,推挽输出的电流都能达到几十mA。
    但是无法进行线与操作,做进行线与操作,那么电源和地就会短路,因为mos管电阻很小。
    看下图可以得知,电流通过Q3的P-MOS流到Q2的N-MOS,最终回到地。

" i) \0 f* L6 w* z6 y2 h5 I
开漏输出0 o- Y+ }9 S1 [/ h, n
    开漏输出又叫漏极开漏输出简化后可以看作如下的示意图。

" M; C; B# y! V3 R
6.png
" h+ E: j% Y7 P6 ^( V" V& w
( Q1 m: J8 h) Y( [3 K, H3 w% o
    若还是使用上面推挽的电路图,当N-MOS为低电平时候,那么他的输出就是一个高阻态。
    可以看到,R5没有电流通过,电压也是接近于0,所以GPIO无法对外输出高电平。
0 r7 {2 Y9 b1 {. J
5.png
' k8 D( ~" n6 v7 D: m! v
    此时需要增加一个上拉,这样的话上拉的电流就会流出去。
    所以在开漏输出情况下,需要增加一个上拉才能进行输出高电平。
! j; t9 L) K- g1 N3 |# C: q
4.png

4 X  ?5 \- V( J" u  H
    对于输出低电平,他和推挽输出差不多,电流通过N-MOS流到地中。
- C1 O: x3 r4 c# ]- r
3.png
2 Q3 u) E% O5 G4 H% l; B
    上图是没有增加上拉,但是开漏输出模式都需要增加,增加上拉之后如下图所示。
    电流通过N-MOS流回地中。

9 [2 B9 a2 Q4 z) A5 u8 n
2.png

# Z. Q* j* \' Z' y7 u; _输出电压: L2 Z' p9 X% Z0 b: J
    由于推挽输出在输出的时候是通过单片机内部的电压,所以他的电压是不能改变的。
    但是开漏输出是通过外部上拉的电压,所以可以改变开漏输出模式下的电压大小。
    下图是当上拉为5V时候,也是可以驱动出去的,这个上拉电压最大值需要看单片机的耐压。
1 m* p5 c/ p6 D0 ^# `) [" r
1.png
" k& [: D9 x3 q7 x* x, a6 P% z9 Y( m
转载自:记帖
如有侵权请联系删除. j: N9 P- M1 P, Y& r
8 K) R- X3 U; W, i( J- c
3 g& g$ I' B' s% h1 e

; w  q+ N3 [0 n
7.png
收藏 评论0 发布时间:2023-4-9 22:30

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版