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

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

[复制链接]
攻城狮Melo 发布时间:2023-4-9 22:30
概述
    本章主要GPIO输出模式下不同配置的说明。
   
生成例程
. X7 K# n9 l) x7 \" t& R
   使用STM32CUBEMX生成例程,这里使用NUCLEO-L476RG开发板,因为我这只有这款板子的主频较快。

( V1 G2 x1 H3 F" N
20.png

/ |- }5 ]2 a4 Q; S& Y9 t不同速率对应的波形! v/ W3 Q. c9 W- z
    以PC3为例,在推挽输出无上下拉情况下,输出速率主要有4种,一般的低端MCU只有3种,没有Very High。

/ X! H) |' E. S" Z1 o8 V) S
19.png
- v# [$ b+ u9 F* T) k0 s/ K9 `
LOW速率
' ~% ?- ]8 f4 @/ T" N" U& A 18.jpg ' T8 f0 ?. n* J- y) F

  ~  s: N: [2 F* Z: E
Medium速率. }- c# c1 L5 }0 A6 O/ {6 r. Z

& D* Y; o" S1 t
17.jpg

8 E) l0 \0 }# T$ W  E4 QHigh速率$ \: D9 {' q$ n( a7 C
+ E* R6 h$ d, l9 @3 m- u! Y
16.jpg
( l+ s* r# h* a  a5 Z
Very High速率# E- z' i4 K- x

* B9 n0 _" B3 F" V/ P. J0 p8 H 15.jpg
5 M, }& i# [' J0 a- ~4 S$ K9 `
5 @/ K& W  G2 ~3 j% K
    可以看到,在不同速率下,端口的反应速度不一样,设置最大输出速率越大,响应越快,对应的噪声也就越大。

, Z' P1 ?/ q0 F' N
输出方式
8 U. U9 a; L6 W' @$ ?; }8 l- q1 {, r

& k6 T! ~% d- i
14.png
- e, c. c/ T8 X/ y, D3 a
13.png
5 I9 I" L5 x% ]. {3 n
    在上图中,P-MOS带了一个⚪,说明是低电平导通。
: E: y) k1 Y! H3 m: R. _

12.png


2 t4 @5 U. h8 T. A7 P' ]( |
    上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。

6 M3 W. K2 b4 @" h
11.png
5 \" |- T1 B& ?3 s' |. h
推挽输出
    推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。

, J- y3 n/ l8 M8 @+ e
10.png

& ~3 g: j! u: z. S
    当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。

* S( T2 B6 ~& |; T4 S
9.png
/ ^; Y* t: h/ i& [& P9 M
$ l9 \% y9 e7 T4 B
    当输出低电平时候,N-MOS导通,P-MOS截至,此时电流流入R5的为0。
1 ^! ^& ]1 d) |  W- X
8.png

8 ]5 Q' q) H6 ]* d1 U线与9 E3 X$ W1 L: s. r1 A
    推挽输出高电平与电源电压基本上没有压差
    高低电平的驱动能力较强,推挽输出的电流都能达到几十mA。
    但是无法进行线与操作,做进行线与操作,那么电源和地就会短路,因为mos管电阻很小。
    看下图可以得知,电流通过Q3的P-MOS流到Q2的N-MOS,最终回到地。

  }8 E, m0 U0 l, q0 u
开漏输出
6 M+ _! C% w6 ~# q/ D
    开漏输出又叫漏极开漏输出简化后可以看作如下的示意图。

; [$ z/ O; K$ o" o0 z" Q9 Q
6.png
: O+ Z, ?8 o2 I; u+ y, B

, v; V, S& e7 j7 ]( P& _1 ~* g
    若还是使用上面推挽的电路图,当N-MOS为低电平时候,那么他的输出就是一个高阻态。
    可以看到,R5没有电流通过,电压也是接近于0,所以GPIO无法对外输出高电平。
6 @. N- M; |- j3 G$ J; G
5.png

2 v3 [: x+ Z# g+ s, Z2 w
    此时需要增加一个上拉,这样的话上拉的电流就会流出去。
    所以在开漏输出情况下,需要增加一个上拉才能进行输出高电平。

, o+ O, w, {3 x/ k
4.png
; `2 p- X' c2 r% ]
    对于输出低电平,他和推挽输出差不多,电流通过N-MOS流到地中。

1 B0 Y  w5 I: _% M: q' i
3.png

. T( I" o. x2 Z" i9 [
    上图是没有增加上拉,但是开漏输出模式都需要增加,增加上拉之后如下图所示。
    电流通过N-MOS流回地中。

- n5 n2 u9 i+ G8 q3 s% f
2.png
. g7 u' h0 f+ L. @" {
输出电压1 F2 q7 c' n& L0 |: L0 E- Y% S4 `
    由于推挽输出在输出的时候是通过单片机内部的电压,所以他的电压是不能改变的。
    但是开漏输出是通过外部上拉的电压,所以可以改变开漏输出模式下的电压大小。
    下图是当上拉为5V时候,也是可以驱动出去的,这个上拉电压最大值需要看单片机的耐压。
) Y* ?& e) |/ x$ i$ S
1.png
0 I; M1 p7 y! b. z) U( G
转载自:记帖
如有侵权请联系删除
1 Q$ x% T5 \0 Q' B& j

% B' g% S! ^  b) t6 y) z3 H& @0 z* c0 S4 K& c1 J4 a0 U+ N7 E

5 B2 b3 b& }) F. M7 a
7.png
收藏 评论0 发布时间:2023-4-9 22:30

举报

0个回答

所属标签

相似技术帖

官网相关资源

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