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

STM32CUBEMX开发GD32F303(4)----GPIO输出模式,速率测试、开漏和输出说明

[复制链接]
STMCU小助手 发布时间:2022-8-18 18:26
硬件准备
: r8 R. r5 x- _/ @这里准备了2块开发板进行验证,分别是GD32303C_START开发板。! u5 r8 M3 s" W+ R

2 n0 p$ s: e0 L- w; _ a15305ac91d945bda69c446903f697d6.png
: ^( l# h& v  z( e: d1 j& _  c6 r
开发板管脚配置8 l2 \1 z, p: ^
在GD32303C_START中的LED管脚配置如下所示。1 p+ [9 O6 x# L7 ?% \

3 P8 [+ G+ t! I' J5 k2 C 371de303b4e24ca28c4c8b63b30722bd.png
% P8 z# C3 S% Z6 p
( l) E5 \+ E7 L6 E2 l不同速率对应的波形
% b& L! j% g- R! d' V, {4 s以PC3为例,在推挽输出无上下拉情况下,输出速率主要有4种,一般的低端MCU只有3种,没有Very High。& ^2 Z7 ?. F' F4 U9 c1 U
下面是ST的配置图。
4 T- S+ m5 Y( m- A7 O! S3 _; r
, P4 b" m7 j* y, \; z 953e8f999771409fbdd778001cec231a.png ; n8 w) ~& f! f+ [
2 o$ z; b, a0 E# A+ _2 F
在固件库中,定义如下所示。
" N) p# ], c6 e5 h, K2 P
9 j& W; y8 C  D" o0 j7 C0 }' \8 g 3707e74c363945fa8c20afe1cbac18d8.png
3 T' K  @% v+ z" y& e  N3 ]- Q/ E5 a/ A' J  o6 U+ }6 c
LOW速率
) U' C( ]! C  Y2 t' D
. V0 P. v3 v* I# m: V. |$ b0 P f6ff4657cbe84e1a8d89af943ac2fdec.png
, C* X! M* `3 Y5 A# W$ v7 B
. y, F8 t( i( _" O: R  s% SMedium速率
( R* x5 K# ~) s8 j. G. M( X. A: S: N
c10f1fc18458489c941e8e3aa6c6df82.png
/ n( s5 D5 Y, r" m" i7 Y- N# C$ R( D' X/ _# Y, I, p
High速率
( K7 c# ?- \6 N3 _! _  Z9 W5 ?6 c0 a4 ?! Y! X, |! h
d5a89a7166914b9abfc890e4affa043b.png
1 n% X' a' T- r9 i
  n0 ^# p5 ?) _) AVery High速率
" u! ~. G- n# [+ }0 q
0 W+ j( K$ M: H# w) j! `
c8f118d5bfa54fc197d225a408bfe9bd.png 4 C# g5 V$ \' `( ]  a! Q

) z3 C# e% ?5 H8 k3 M" N; x0 `7 E可以看到,在不同速率下,端口的反应速度不一样,设置最大输出速率越大,响应越快,对应的噪声也就越大。$ P) J% p7 p: K' K' r9 O

4 H# N2 Y$ o% ~4 |3 ~9 _输出方式
7 V, H/ i0 z( K$ a
+ C. {) S; {) Y$ K0 y/ k2 _2 j a1f9283193d043c8ba763ecb573c102e.png 1 g2 l* c; J) G9 R, t; [9 r& g
8bf1755054d548e4b4f88433e1ddbee5.png
/ h# Z3 q4 x+ J) R: A: S
$ G) O7 m! l7 i" F: z在上图中,P-MOS带了一个⚪,说明是低电平导通。9 v5 }( z% _* X" F
6 C/ f/ W( X$ R+ b- X* b% h
6b87ad300a6b4dfcade22a5da187d798.png
6 {% s  d0 \! S1 {; ?# T% i! k5 P9 r3 R* n% v- B
上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。, p* C- P& J, f8 c2 r# v! q
8 i0 k: N0 i+ e8 I- X
5bd70bb9f9824e01ac560d7f8b6280d5.png * Q' J) L4 C# f, \% c4 H9 v( s

8 U. U; j0 |; Z6 ?7 g
2 E1 z7 Z5 ]) b! n! d& s) K3 k推挽输出
' b; V$ i! D4 X* ]  }$ T推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。
- G- B! j" {) K) f" J& a, w9 T
8 d& d/ y; X# }" R7 b2 @ 49db6c09e2c14426980e795f4eda90bc.png 9 j5 Z- R6 O" l# ~

2 p+ S5 Z  b. H当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。) _# y7 I1 Y' {- g& O5 f

. \2 ^* k) z/ L& X e7d2d7b0da474aff9ccccd43b79aa286.png % E$ Q- h6 U1 O# Q8 M; v

; y. j! t# i# s. y; n8 D) H当输出低电平时候,N-MOS导通,P-MOS截至,此时电流流入R5的为0。
" T* k% ?: Q, S$ o5 }1 e7 a6 B0 j: J2 ?3 m+ J
ff7e7feb1f7441228ad6b7388f888579.png
7 Z" e) E$ J! {  R& K- x
4 q' g  ?& I# P/ k/ a4 K5 G线与% e/ |. }. L2 @$ b
推挽输出高电平与电源电压基本上没有压差
+ ^5 s% [; L- w高低电平的驱动能力较强,推挽输出的电流都能达到几十mA。$ c; m8 w2 y7 W, W
但是无法进行线与操作,做进行线与操作,那么电源和地就会短路,因为mos管电阻很小。. R% ^" r# j1 v. k- v: h
看下图可以得知,电流通过Q3的P-MOS流到Q2的N-MOS,最终回到地。0 W; y2 H, P7 l/ |3 Q
" T2 b) T2 j! V- j+ M
a4552466e8884460a82bd8e5a2e85f53.png " {- q) e. Y, n- e0 o: ~

, T0 ?9 b2 }6 ~5 h) M( E3 X8 x% A开漏输出
) I  B+ x5 h$ r开漏输出又叫漏极开漏输出简化后可以看作如下的示意图。+ m, ?/ e/ P5 q( m6 M

9 D( X1 s2 D# [, t0 v! Z 9dae31763a574f3191fe25a1c3f0aa0e.png
+ O& i+ X; U) D8 L& m4 `4 W
  q: I) |6 M* n若还是使用上面推挽的电路图,当N-MOS为低电平时候,那么他的输出就是一个高阻态。
% q0 ^' V0 q2 V; V4 t4 e) Q) x% p可以看到,R5没有电流通过,电压也是接近于0,所以GPIO无法对外输出高电平。3 ~9 A" H: _6 Z% _) V. R3 q; J
# [$ t5 O& j; J  G2 y# F/ H) J
24f7594a147c403291977dad11ccb66a.png
! H( y2 H0 F! C& u% S6 c+ s7 S( q$ S& F& C
此时需要增加一个上拉,这样的话上拉的电流就会流出去。
+ ~* b! D, X/ l* P所以在开漏输出情况下,需要增加一个上拉才能进行输出高电平。) K6 g, K9 P% s( Z

$ V) p* |) A# j+ M 94d0ffe64a464bc78f21f2c88b1eddc0.png
" F$ D5 B: W) ]. z. m" G+ F8 j$ A; E0 r: U) a7 ^
对于输出低电平,他和推挽输出差不多,电流通过N-MOS流到地中。
" Q* @& {9 O* Y5 [7 N7 w  x' a  e8 L# _' ^$ L
8fd31bf2b9c84bb2a0e366ae22d782f8.png , f# ~! N/ M9 j3 E. {6 ~  L- D" b

8 x9 n; C) P, Q+ }上图是没有增加上拉,但是开漏输出模式都需要增加,增加上拉之后如下图所示。
$ c& I' O/ v! v: M# {  t) X4 |, X6 b电流通过N-MOS流回地中。
5 z$ R+ E! Y3 [/ x, K3 N
! S% W- L+ ^7 }0 b5 }0 U* T 57fc7b4dc1dc41aaa15966c1beb0ee21.png ' n3 a9 O' w3 }4 W
% c! f# Q3 |# Q+ W! @& |
输出电压# N) U8 K) o& F; J7 j
由于推挽输出在输出的时候是通过单片机内部的电压,所以他的电压是不能改变的。  q  S" ~/ X0 E! {- e
但是开漏输出是通过外部上拉的电压,所以可以改变开漏输出模式下的电压大小。
" Y( q- k$ Y: l. L/ K下图是当上拉为5V时候,也是可以驱动出去的,这个上拉电压最大值需要看单片机的耐压。
7 u9 R+ O! o. Z
- Z# H5 Z3 P- y5 @9 Q7 g9 e' i% c1 r9 B; A+ l

% C' q+ C) P+ }4 Y  f1 e! a! ]. `( ]

* ~, A' H0 \7 ^4 H' L' J, I- T
6 d  j8 m! U* Q0 t7 }. V2 `. E, L6 T% T8 |/ b/ L% B! G: o
34521860ce5b4735bec49eeda331f40a.png
赞 收藏 评论0 发布时间:2022-8-18 18:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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