STMCU小助手
发布时间:2022-8-18 18:43
|
生成例程1 q$ E [$ B, S5 m( ] 使用STM32CUBEMX生成例程,这里使用NUCLEO-L476RG开发板,因为我这只有这款板子的主频较快。' @# H; w' e9 [ _' |# d+ y7 W. Y % ?! r: H/ p9 W- `
! F7 q# e6 z9 v) l 不同速率对应的波形7 V9 Q! _- g/ h F; |" ]! K 以PC3为例,在推挽输出无上下拉情况下,输出速率主要有4种,一般的低端MCU只有3种,没有Very High。7 c( R F$ f& t2 \# X
% Y$ J4 C; s9 i. S LOW速率* U4 H5 z% s& y5 D# h
0 R! X3 O8 o3 _3 E0 s7 [- a Medium速率
High速率 - ~! w6 ~- F4 N/ b0 g, H! k# ?# F
. P& ?1 ~: Q, t; @+ e Very High速率9 P" _$ a) q& z- c2 Y8 v2 t/ i- T
可以看到,在不同速率下,端口的反应速度不一样,设置最大输出速率越大,响应越快,对应的噪声也就越大。 输出方式7 o* o C# B3 y' T
在上图中,P-MOS带了一个⚪,说明是低电平导通。 0 \# u; A/ m* ?2 ~0 X
% V, N" n( L6 B+ q) I% C% c: `7 X 上图是GPIO的示意图,有输入和输出,如果简化为输出,则如下所示。
5 t6 |1 C1 E- Y$ G 推挽输出 R* K& T1 W. m. Z- z8 z 推挽输出的内部电路大概是下图这个样子,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。+ j/ I. P3 y+ u0 K2 \
8 ]$ f0 s# ^& }$ |1 i 当输出高电平时候,P-MOS导通,N-MOS截至,此时电源电流入R5。
2 ^* l' V# ]. Q9 c1 `/ M& }2 A9 \ 当输出低电平时候,N-MOS导通,P-MOS截至,此时电流流入R5的为0。
线与 推挽输出高电平与电源电压基本上没有压差9 R0 Y G, h* F( O7 { 高低电平的驱动能力较强,推挽输出的电流都能达到几十mA。 但是无法进行线与操作,做进行线与操作,那么电源和地就会短路,因为mos管电阻很小。 看下图可以得知,电流通过Q3的P-MOS流到Q2的N-MOS,最终回到地。
开漏输出' c- n, k# W/ s 开漏输出又叫漏极开漏输出简化后可以看作如下的示意图。/ f& e5 a5 u; O2 m/ ~3 Z " a: U* l6 G% e4 Z3 f
7 t2 N7 c% h) j4 [- I; }8 W' p( h 若还是使用上面推挽的电路图,当N-MOS为低电平时候,那么他的输出就是一个高阻态。 可以看到,R5没有电流通过,电压也是接近于0,所以GPIO无法对外输出高电平。: W3 W, c) Q3 d4 |/ Q) W4 P
此时需要增加一个上拉,这样的话上拉的电流就会流出去。 所以在开漏输出情况下,需要增加一个上拉才能进行输出高电平。
9 ~) H: T( `' m' h 对于输出低电平,他和推挽输出差不多,电流通过N-MOS流到地中。+ H" z7 x7 p. T6 N( P
7 a+ n/ O* y6 h1 z. q" Q6 C5 S2 S5 i 上图是没有增加上拉,但是开漏输出模式都需要增加,增加上拉之后如下图所示。 电流通过N-MOS流回地中。 2 `/ R) T/ k0 d- _
+ y/ M, i, z( u' K! v. C3 j$ S5 [ 输出电压 由于推挽输出在输出的时候是通过单片机内部的电压,所以他的电压是不能改变的。 但是开漏输出是通过外部上拉的电压,所以可以改变开漏输出模式下的电压大小。* L5 w* ^+ d H' }! o9 a. } 下图是当上拉为5V时候,也是可以驱动出去的,这个上拉电压最大值需要看单片机的耐压。; F/ d4 D: Z, z8 r
|
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
《MCUBoot课程》学习笔记+从信任链原理到量产实践
STM32CubeIDE 2.2.0新版本发布
CubeMX生成CubeIDE工程代码乱码
STM32CubeIDE实时时钟(RTC)经验分享
实战经验 | ClassB功能安全认证代码与应用代码分区的实现要点
【STM32U3 评测】人体行为识别
微信公众号
手机版