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

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

[复制链接]
STMCU小助手 发布时间:2022-8-18 18:26
硬件准备1 }0 g3 x& f$ T% k( V' k
这里准备了2块开发板进行验证,分别是GD32303C_START开发板。
* `0 b9 K+ Q$ _, F% H1 }2 {5 C  w& R" M; f3 P! c
a15305ac91d945bda69c446903f697d6.png
1 x) m/ S0 z+ Q: k" f( q& ], g% c: ?+ m5 k1 c" Z4 y: P6 M  Z7 @
开发板管脚配置
; e1 O$ m( j- ^; Z4 c在GD32303C_START中的LED管脚配置如下所示。+ C& w% i5 V; p
0 C( B& J5 S$ Y
371de303b4e24ca28c4c8b63b30722bd.png ! J! f+ N5 y% L6 ~$ X2 O

3 R& a" h+ K: ]* L不同速率对应的波形; y( C: [5 l( H6 b) @
以PC3为例,在推挽输出无上下拉情况下,输出速率主要有4种,一般的低端MCU只有3种,没有Very High。0 E6 V) D8 `; H* y5 @# L
下面是ST的配置图。* E8 M4 \8 d, _3 m' P) w
% y# k4 L( \, Q% d
953e8f999771409fbdd778001cec231a.png
6 v! k5 a) X; i" L' V) C4 J* {  U# d# F$ I- N
在固件库中,定义如下所示。9 _: Z2 f0 k' n

# l& N; J& ~4 \& T; f( ?+ {9 K. A 3707e74c363945fa8c20afe1cbac18d8.png
# ]4 a, f- p8 C5 t5 I4 x" `) w* `1 I- v. G  S' Z8 y+ O5 k" z4 A
LOW速率) h' o( l$ b4 [1 D1 w/ O- b
% g5 q: j. u1 N+ P5 [
f6ff4657cbe84e1a8d89af943ac2fdec.png % U2 }! X  b7 p% N: q& W6 s

* I2 W6 q" k; G7 r' _Medium速率
5 A: O( Z0 d; r, y- r* b  g  ?, G: R9 L' f# B
c10f1fc18458489c941e8e3aa6c6df82.png & C5 n3 ^- ^' ^$ I1 g, h4 Y1 ^

% S0 x3 `2 T9 D" I1 XHigh速率
  w% q6 k- F8 L
1 ]% y; u% a7 l
d5a89a7166914b9abfc890e4affa043b.png
2 x8 f4 a! w7 j: Z: q$ q# N. f! p" d  p6 M- C- U3 a; H+ m
Very High速率

! v' J, p. G# Y/ ^1 K0 t3 }$ d
" m2 u, Z: U) v6 p c8f118d5bfa54fc197d225a408bfe9bd.png * |9 ^* y/ ^) N

, d( @4 ~5 u5 y! q可以看到,在不同速率下,端口的反应速度不一样,设置最大输出速率越大,响应越快,对应的噪声也就越大。
% ^8 o+ {/ N* F: f3 X: Q4 c; K7 e7 [) i/ d( L1 w
输出方式
, h9 }) N3 h  i7 k* B% f$ s) N" @) y+ U# f6 O& ~
a1f9283193d043c8ba763ecb573c102e.png
) _- v. {. ~- I2 S7 n1 x 8bf1755054d548e4b4f88433e1ddbee5.png
7 M  c9 m. n5 m# `& j4 {
3 Q' y$ F) N8 [* }7 Z6 h( `在上图中,P-MOS带了一个⚪,说明是低电平导通。; ~4 Y' Z7 |* K  \' T. n
1 W, y& \" O" ~' h
6b87ad300a6b4dfcade22a5da187d798.png
) M( N' G$ e% ~# L% i; B) j
1 D7 b' R5 E) v$ ^9 f5 X! h上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。
; I) {: B- U: X3 b' O4 T3 [. p' @2 Y. v4 H1 N
5bd70bb9f9824e01ac560d7f8b6280d5.png
3 f- h5 `: W$ r' e. b# T/ W1 z& e% C5 _* D% K

0 n8 t- h7 w* q- e, _推挽输出
4 A( ]1 S3 ^: [; Y3 |! e3 X推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。
  P9 r* L- v/ m) E- |8 @2 s  d0 x( y! W. [% u$ d# O8 l
49db6c09e2c14426980e795f4eda90bc.png . A. S+ ~6 X) ~

1 o7 {9 @! G5 F) I. g+ ^9 h: a+ g当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。/ S1 b) s" M/ t& n3 I

4 Y, s' o) ?7 }. A# c3 p( e0 @ e7d2d7b0da474aff9ccccd43b79aa286.png 0 N4 O; Z' ]/ m" E9 {0 u6 \7 E

& Y7 ?0 i: r1 f+ U当输出低电平时候,N-MOS导通,P-MOS截至,此时电流流入R5的为0。
: ]% o4 t; N8 ^; ^5 q) p4 H) ]6 P
* s& t6 \$ E1 Q1 |; r/ p0 Z1 b ff7e7feb1f7441228ad6b7388f888579.png
  i  D' V/ q4 [' m/ ^; W" _* ^8 ^! J% R8 N6 Z- u
线与
5 E" T7 r1 r' V# u6 @( e  u推挽输出高电平与电源电压基本上没有压差
5 _: U+ F2 k% |# C高低电平的驱动能力较强,推挽输出的电流都能达到几十mA。
" b5 y7 B' p2 L8 J6 ]但是无法进行线与操作,做进行线与操作,那么电源和地就会短路,因为mos管电阻很小。
) h) x4 X; N6 b. L; x, @% T看下图可以得知,电流通过Q3的P-MOS流到Q2的N-MOS,最终回到地。
/ c# J) z# I' W5 h$ ^- B" M5 A
a4552466e8884460a82bd8e5a2e85f53.png
& c1 p( q. F# \& t% X; X
# F  N: E% ^6 V8 u1 ]3 I' s2 Y. _开漏输出
  v9 ], e" O' r8 Q1 u' r3 O4 @开漏输出又叫漏极开漏输出简化后可以看作如下的示意图。
- r, v9 a& W$ s, K7 n
4 K& W( q/ B/ ]  T, `' u5 ^ 9dae31763a574f3191fe25a1c3f0aa0e.png
, b0 A; J) z2 K9 ]+ j) Z+ ~4 u. J4 J! b7 W2 N  Z
若还是使用上面推挽的电路图,当N-MOS为低电平时候,那么他的输出就是一个高阻态。' z) {3 ?# O1 s, O, `
可以看到,R5没有电流通过,电压也是接近于0,所以GPIO无法对外输出高电平。- x$ d6 F. N" o8 v' Q4 F% W2 ^

7 b3 V9 S  E% U6 d/ J  i 24f7594a147c403291977dad11ccb66a.png 9 h1 d& p0 k8 Q

: W9 T/ {) }) L此时需要增加一个上拉,这样的话上拉的电流就会流出去。
: x+ m% v9 u4 a; z5 H- s! t- X所以在开漏输出情况下,需要增加一个上拉才能进行输出高电平。9 q& W+ U; e+ ]3 P: K: Q

8 Z6 X- F6 b5 r: M0 H 94d0ffe64a464bc78f21f2c88b1eddc0.png
/ q1 Y+ f, i& Y! E" F) d
: @+ |# J& B0 Z, U1 {+ V+ r对于输出低电平,他和推挽输出差不多,电流通过N-MOS流到地中。  [) Q9 x5 q7 b4 o" R# T; k9 @2 I
  {- Q8 i& Y. U
8fd31bf2b9c84bb2a0e366ae22d782f8.png
6 r4 m- D" M- x9 X6 u/ E2 z7 _" Y+ |
上图是没有增加上拉,但是开漏输出模式都需要增加,增加上拉之后如下图所示。1 [: W9 H' C/ V
电流通过N-MOS流回地中。0 ^5 C/ y  M/ g. X  {- j4 T7 t

6 K4 X8 A* i1 d8 ^1 k 57fc7b4dc1dc41aaa15966c1beb0ee21.png % h' A' H7 @& f  F. V1 K& K

* c* J7 m, m+ O% a" e  d/ Z输出电压
% T+ p0 Y; E7 s5 @! b由于推挽输出在输出的时候是通过单片机内部的电压,所以他的电压是不能改变的。
% h0 z& H7 A" b5 s1 @但是开漏输出是通过外部上拉的电压,所以可以改变开漏输出模式下的电压大小。4 E) W6 ^% t6 @+ ?
下图是当上拉为5V时候,也是可以驱动出去的,这个上拉电压最大值需要看单片机的耐压。4 I1 I* M; x) z9 ~, _- j$ h% k! A

7 d& V/ j* a9 P0 P0 A  L! k8 e% \9 O' @6 {$ d7 q3 x# r

# R% q0 N" ~8 O
( N. z& a0 H* r9 Y" ]$ R$ l3 y' P5 Z  k& W
6 L- A) U0 y; r* y! F
9 Z; \# b8 u+ x- P6 y
34521860ce5b4735bec49eeda331f40a.png
赞 收藏 评论0 发布时间:2022-8-18 18:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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