打印
[STM32F1]

STM32的IO口灌入电流和输出驱动电流

[复制链接]
500|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tabmone|  楼主 | 2024-7-26 03:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

对于普通的IO口的应用,配置会比较简单,主要就以下几个步骤:

  1.打开相应IO口的时钟;

  2.打开IO口相应引脚位;

  3.配置IO口的模式;

  4.初始化IO端口。

  对于STM32的IO口可以根据需要由软件配置成8种模式:

  (1)GPIO_Mode_AIN 模拟输入

  (2)GPIO_Mode_IN_FLOATING 浮空输入

  (3)GPIO_Mode_IPD 下拉输入

  (4)GPIO_Mode_IPU 上拉输入

  (5)GPIO_Mode_Out_OD 开漏输出

  (6)GPIO_Mode_Out_PP 推挽输出

  (7)GPIO_Mode_AF_OD 复用开漏输出

  (8)GPIO_Mode_AF_PP 复用推挽输出

  STM32的IO口灌入电流和输出驱动电流最大是多少?

  最大可以输出8mA,灌入20mA,但要保证所有进入芯片VDD的不能超过150mA,同样所有从VSS流出的电流也不能超过150mA。

  芯片手册这些参数都有的啊,一般配置IO的话有三个选项10MA,20MA,50MA,可以看情况配置,往大的配置也没有关系,实际使用是多少就是多少

  

  1,浮空输入的时候,你想输入大电流都难。浮空输入,内阻比较大,你得很高的电压,这样直接超过STM32的上限了。

  2,推完输出,数据手册上最大电流是25ma,总电流也是25ma。实测可以上到60多mA。不过建议单个IO最好不要超过10mA。

  

  用的最多的也就是推挽输出、开漏输出、上拉输入。在这里做一个总结:

  一、推挽输出:

        可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。

  推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

  二、开漏输出:

           输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。开漏形式的电路有以下几个特点:

      1、利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经上拉电阻、MOSFET到GND。IC内部仅需很小的栅极驱动电流。

      2、一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。(上拉电阻的阻值决定了逻辑电平转换的速度。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。)

      3、开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。

     4、可以将多个开漏输出连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系,即“线与”。可以简单的理解为:在所有引脚连在一起时,外接一上拉电阻,如果有一个引脚输出为逻辑0,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平便为0,只有都为高电平时,与的结果才为逻辑1。

   三、浮空输入

    顾名思义就是浮在空中,上面用绳子一拉就上去了,下面用绳子一拉就沉下去了。

  四、上拉输入/下拉输入/模拟输入:

        这几个概念很好理解,从字面便能轻易读懂。

    五、复用开漏输出、复用推挽输出:

.      可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。


使用特权

评论回复
沙发
Bowclad| | 2024-7-26 11:17 | 只看该作者
那为啥有这么多电流挡位选择啊

使用特权

评论回复
板凳
elephant00| | 2024-7-26 11:48 | 只看该作者
IO口灌入电流和输出驱动电流的具体数值是什么

使用特权

评论回复
地板
两只袜子| | 2024-7-26 11:48 | 只看该作者
IO口的类型有哪些

使用特权

评论回复
5
慢动作| | 2024-7-27 15:08 | 只看该作者
在STM32中,首先需要打开相应IO口的时钟,以使该IO口模块能够正常工作。这通常是在RCC(Reset and Clock Control)模块中配置。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 打开GPIOA的时钟


使用特权

评论回复
6
慢动作| | 2024-7-27 15:16 | 只看该作者
根据应用需求,配置IO口的工作模式,例如输入模式、输出模式、模拟模式等。每种模式又分为具体的类型,如浮空输入、上拉输入、开漏输出、推挽输出等。

使用特权

评论回复
7
慢动作| | 2024-7-28 00:52 | 只看该作者
STM32的IO口电流能力
最大可以输出电流:8mA
最大灌入电流:20mA
所有VDD引脚总电流不能超过150mA
所有VSS引脚总电流不能超过150mA

使用特权

评论回复
8
LOVEEVER| | 2024-7-28 10:35 | 只看该作者
开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时

使用特权

评论回复
9
抹茶妹妹| | 2024-7-30 18:57 | 只看该作者
STM32的IO口模式
STM32的IO口可以根据需要由软件配置成以下8种模式:

GPIO_Mode_AIN:模拟输入
GPIO_Mode_IN_FLOATING:浮空输入
GPIO_Mode_IPD:下拉输入
GPIO_Mode_IPU:上拉输入
GPIO_Mode_Out_OD:开漏输出
GPIO_Mode_Out_PP:推挽输出
GPIO_Mode_AF_OD:复用开漏输出
GPIO_Mode_AF_PP:复用推挽输出

使用特权

评论回复
10
抹茶妹妹| | 2024-7-30 18:57 | 只看该作者
推挽输出配置示例推挽输出适用于需要驱动其他数字器件的场合:
c

GPIO_InitTypeDef GPIO_InitStructure;// 打开GPIOA的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 配置PA0为推挽输出GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);// 设置PA0为高电平GPIO_SetBits(GPIOA, GPIO_Pin_0);



使用特权

评论回复
11
我爱台妹mmd| | 2024-7-31 23:14 | 只看该作者
开漏输出配置示例
开漏输出适用于需要电流驱动能力和连接不同电平的场合:

c
GPIO_InitTypeDef GPIO_InitStructure;

// 打开GPIOB的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

// 配置PB0为开漏输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

// 设置PB0为低电平
GPIO_ResetBits(GPIOB, GPIO_Pin_0);


使用特权

评论回复
12
我爱台妹mmd| | 2024-7-31 23:15 | 只看该作者
总结和注意事项
推挽输出:

能够输出高、低电平,适合驱动数字器件。
提供高驱动能力和快速开关速度。
开漏输出:

需要外部上拉电阻才能输出高电平,适合电流型驱动。
可以连接不同电平的器件,通过上拉电阻实现电平转换。
适用于“线与”逻辑,通过连接多个开漏输出实现逻辑AND功能。
浮空输入:

输入端口没有内置上拉或下拉电阻,容易受外部环境影响。
上拉/下拉输入:

内部带有上拉或下拉电阻,适合稳定的输入信号。
复用功能:

当IO口作为其他外设功能使用时,需要配置为复用模式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

1275

帖子

0

粉丝