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

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

[复制链接]
攻城狮Melo 发布时间:2023-4-9 22:30
概述
    本章主要GPIO输出模式下不同配置的说明。
   
生成例程# c; n' R" P% A! ?
   使用STM32CUBEMX生成例程,这里使用NUCLEO-L476RG开发板,因为我这只有这款板子的主频较快。
% h& e; D, g$ h) B9 {. ~
20.png
8 @( V1 L/ S. E; n8 @9 w
不同速率对应的波形
; M& f+ o' M& y# z
    以PC3为例,在推挽输出无上下拉情况下,输出速率主要有4种,一般的低端MCU只有3种,没有Very High。

; h# Y$ P% E$ k6 X8 B! g
19.png

7 R& I9 O- X4 m) A7 M4 P. b3 r
LOW速率
0 v& P* M# w5 g: C# I9 [ 18.jpg ( B) ?2 f8 {2 w" k; I) I2 ^

: ^6 b8 M2 R9 s/ w3 z# n
Medium速率0 `, Z. K, r# i+ K3 \& Y. p

3 _0 d  A) m: }8 z9 u1 G) _0 m
17.jpg

0 F1 j) v' _' LHigh速率4 `4 ?- t7 f5 T! M& q, V
. j3 |( ?1 h, b
16.jpg
2 Y/ y! _$ n/ h; d
Very High速率
: o2 c  V9 h6 d6 C9 I& d$ A' d5 r
1 x* S8 ?; |9 }1 }: X8 m 15.jpg + w# p( {" S, ]2 a7 C
# ]9 l4 w/ I4 A8 R0 Y8 j1 H
    可以看到,在不同速率下,端口的反应速度不一样,设置最大输出速率越大,响应越快,对应的噪声也就越大。
  K& |9 L# a/ c' A  Y
输出方式
! x% {" f1 K* n9 S1 ^$ R; ~3 _$ c. M

( s3 P" D$ R1 @8 B: V  E
14.png
2 N3 P8 Q% n) G; @7 f% D
13.png

( H; g) C) o$ h* @  n
    在上图中,P-MOS带了一个⚪,说明是低电平导通。

  L( B3 l5 j, h. H* N- j

12.png


/ V) P( g2 Q3 O9 C  s5 w+ e
    上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。

/ f$ G) h, q, ?, V. H
11.png
9 I/ L9 t5 ~4 z
推挽输出
    推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。

& d& E* \) J; D- L* e" w+ ?
10.png
  e1 X, n+ T  B
    当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。

/ f( ?  J4 a" ?" x0 V9 k/ _
9.png
  R) R* X$ X. a/ m! a) j# T5 [

  `$ F0 V$ w1 h0 ?6 \
    当输出低电平时候,N-MOS导通,P-MOS截至,此时电流流入R5的为0。

+ r) a: v' b5 @) P1 T3 l' C) o
8.png
* g+ x- ]3 ~0 x' `! A! R9 m4 V: `
线与3 l, i& |- a  s. ~# z/ d  ]4 l
    推挽输出高电平与电源电压基本上没有压差
    高低电平的驱动能力较强,推挽输出的电流都能达到几十mA。
    但是无法进行线与操作,做进行线与操作,那么电源和地就会短路,因为mos管电阻很小。
    看下图可以得知,电流通过Q3的P-MOS流到Q2的N-MOS,最终回到地。
& L% N, P& v( [
开漏输出$ I0 T$ w1 p/ H* h3 a) h% ~
    开漏输出又叫漏极开漏输出简化后可以看作如下的示意图。
# u: W5 m- c1 t! h
6.png
. v  O$ w# I2 C% V& b) a2 r) b

; V" R- H2 F, |3 i
    若还是使用上面推挽的电路图,当N-MOS为低电平时候,那么他的输出就是一个高阻态。
    可以看到,R5没有电流通过,电压也是接近于0,所以GPIO无法对外输出高电平。
) n+ a5 T/ f% I5 O7 |& Z1 i
5.png
3 y7 j9 V1 B) G- Z) x
    此时需要增加一个上拉,这样的话上拉的电流就会流出去。
    所以在开漏输出情况下,需要增加一个上拉才能进行输出高电平。
& T: W7 Z* X* g4 @
4.png
" Y# l. ?% Q7 N( Z
    对于输出低电平,他和推挽输出差不多,电流通过N-MOS流到地中。
5 J* Z5 X$ D- _" O
3.png

$ E0 X/ {" _8 P' o3 z7 J
    上图是没有增加上拉,但是开漏输出模式都需要增加,增加上拉之后如下图所示。
    电流通过N-MOS流回地中。

! `7 [  _7 m2 S% f+ T  e2 ~
2.png
, D3 w# W- q( }, t% O5 c+ Y
输出电压, t# W9 J/ Y) r
    由于推挽输出在输出的时候是通过单片机内部的电压,所以他的电压是不能改变的。
    但是开漏输出是通过外部上拉的电压,所以可以改变开漏输出模式下的电压大小。
    下图是当上拉为5V时候,也是可以驱动出去的,这个上拉电压最大值需要看单片机的耐压。

% U) n! c/ \* I* [, _1 F
1.png
: Z9 N7 t) W* S7 t+ V2 l
转载自:记帖
如有侵权请联系删除
  \, e/ W6 Z/ q$ a* S( P
7 p/ J+ [* {$ v5 b/ b
$ Q, Z. [: U0 g: L8 R1 T2 Z/ N
' _1 B( z& f+ {6 B+ `
7.png
收藏 评论0 发布时间:2023-4-9 22:30

举报

0个回答

所属标签

相似技术帖

官网相关资源

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