问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

STM32端口如何控制连接到5V的LED?

创作时间:
作者:
@小白创作中心

STM32端口如何控制连接到5V的LED?

引用
CSDN
1.
https://m.blog.csdn.net/zhuoqingjoking97298/article/details/142678285

本文通过实验探讨了3.3V工作的STM32单片机如何控制连接到5V的LED,特别是通过PNP三极管驱动LED时遇到的问题及解决方案。实验内容详细,包含了电路设计、测试过程和结果分析,并配有相关电路图和波形图,具有较高的专业性和实用性。

01 IO端口

一、前言

今天看到网络上一个短视频,一位面试官询问学生,这个单片机电路有什么问题?如何解决?这个问题就在于工作在3.3V下的STM32单片机是无法关断PNP三极管的,这是因为它的发射极连接到5V电压。面试官看到学生无法回答如何来解决这个问题,于是给出了解决这个稳妥的答案,那就是将STM32的端口设置为漏极开路模式,这样就可以关断三极管了。实际上,这个问题真正的答案是在三极管的基极增加一个4.7k欧姆左右的分压电阻,才能够实现对连接到5V的PNP三极管的开关控制。下面让我们通过实验来检查一下吧。

二、测试电路

为了测试IO的开关电压特性,将F103单片机的四个端口引至外部实验面包板。设计单面电路板,适合一分钟制板。


AD\Test\2024\October\TeSTSTMIO.PcbDoc
▲ 图1.2.1 测试PCB

一分钟之后得到测试电路板,焊接电路,将四个IO端口连接到测试面包板上。设置四个IO口,分别是漏极开路、推挽输出、带有上拉电阻的输入端口,带有下拉电阻的输入端口。端口的特性,在CubeMX中进行设置。下面就可以分别测试这四个端口的输出耐压了。

三、漏极输出

测试漏极开路输出端口。周期在该端口输出0和1。可以看到该端口的信号波形呈现周期低电平以及浮动干扰信号。在OB输出1的时候,该端口呈现高阻状态。下面,测试一下漏记开路的时候能够上拉到多高的电压。

使用一个10k欧姆电阻,将漏极开路的IO连接到5V。此时,该端口的电压为3.7V。通过内部结构可以看到,在端口有钳位二极管,将输入端口电压钳位的工作电压。只有某些5V容忍端口,钳位二极管上拉到更高的电压,此时输入电压才能够达到5V。不过现在F103单片机的这个端口只能上拉到3.3V。

在F103数据手册中,关于GPIO的5V容忍性说明中,只有输入端口才能够容忍5V输入。一旦端口设置为输出状态,该端口就不再允许电压达到5V了。下面我们测量一下输入端口是否允许电压超过5V。

四、输入端口

将10k欧姆的电阻修改在输入端口,仍然上拉到5V,该端口电压还是被钳位在3.7V。由此可见,该输入端口也不是5V容忍的端口。下面查看一下STM32的数据手册,确认该端口是否为5V容忍的。

在STMF103数据手册中,现在实验所使用的PB12到PB15端口都是5V容忍的。这就奇怪了,为什么上拉电阻达到5V,该端口的电压无法上升的5V呢。无论是输入端口还是漏极开路端口。

五、驱动LED

将一个红色LED串联330欧姆电阻,上拉到5V,连接到单片机的输出端口。可以发现无论是漏极开了,还是推挽输出,LED都可以正常闪烁。这有可能是因为LED的开启电压超过1.3V,所以,3.3V工作的单片机可以关断这个连接到5V电压的LED。

上面是测试了直接驱动上拉到5V的LED的情况。下面,再测试一下使用PNP三极管驱动LED的情况。看是否能够对PNP三极管进行关断。

使用8550这颗PNP三极管搭建电路,可以看到,LED并没有闪烁。这说明,使用3.3V的单片机,驱动PNP三极管,是无法将三极管关断的。

下面给电路增加一个基极分压电阻。这个电阻为4.7k欧姆,这样在剩余的电压中,分压到三极管基极只有0.43V。就不足以将PNP三极管打开了。测试一下这种情况。可以看到,此时LED开始闪烁。这说明只要增加一个基极分压电阻,便可以控制PNP三极管的打开与关断了。

总结

本文测试了3.3V工作的单片机控制5V负载的情况。单片机IO口可以直接控制连接到5V的LED的打开与关断,如果控制PNP三极管,通过增加基极分压电阻,也可以实现PNP三极管的打开与关断。

● 相关图表链接:

  • 图1.2.1 测试PCB
  • 图1.3.1 OD输出端口的波形
  • 图1.5.1 驱动上拉5V的LED
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号