技术文档

单片机io输出电流 单片机IO内阻

小编 2024-11-23 技术文档 23 0

单片机IO内阻

视频加载中...

一、前言

  这个STM32单片机测试电路板,在前两天进行了输出IO口的冒烟测试。在对地和对电源短路的情况下,它的输出最大电流大约为 40mA。之后为了更好的利用它输出信号,下面对它的IO输出端口特性进行测试。查看一下具体它输出端口对外的阻抗特性。下面准备利用一个可编程的电阻箱,QR10,来对单片机IO口输出电流电压进行测试。来查看输出特性是否与一个线性电阻等同。在什么电流范围内可以近似为一个线性电阻。

▲ 图1.1.1 测试STM32单片机电路

二、测量结果

  先通过程序,将单片机的PB7端口设置为输出高电平。测量该端口,可以看到它的电压为 3.3V 左右。下面将QR10电阻箱连接在 PB7端口和地线。分别测量不同电阻下输出端口的电压。

  通过编程,改变QR10的电阻从 50欧姆变化到5000欧姆,测量每个阻值下电阻箱的电压,实际上也是单片机IO口输出电压。可以看到 在电阻变化到 1kΩ时,输出电压已经达到了3.2V。下面重新测量 QR10 从 20欧姆变化到 1000欧姆对应的输出电压。随着电阻增加,输出电压升高。使用电压除以电阻,可以得到输出电压与电流之间的关系曲线。在 输出电流 30mA 之前,输出电压近似线性下降,由这两个电压对应的变化电流可以计算出 IO 端口近似输出电阻为 22.2欧姆。这里绘制了不同输出电流下对应的输出等效串联电阻。在30mA 之前,电阻在 25欧姆左右。当输出电流超过40mA,输出电阻变急剧上升了。

▲ 图1.2.1 负载电阻从50变化到5k对应的输出端口电压

▲ 图1.2.2 输出电阻从20欧姆变化到1000欧姆对应的输出电压

▲ 图1.2.3 输出电流与输出电压

▲ 图1.2.4 不同输出电流对应的输出电阻

  下面测试一下单片机输出低电平对应的内阻。将PB7置为低电平,QR10连接工作电源 3.3V 和PB7,测试不同电阻下,对应的电阻箱上的电压。可以看到与前面测量高电平数据曲线很接近。绘制在一起,两个测试结果基本重合。这也说明 STM32 IO 端口 在高电平和低电平下,对应的内阻特性也基本一致。

▲ 图1.2.5 输出低电平对应的负载电压曲线

▲ 图1.2.6 高电平与低电平对应的负载电压曲线

※总  结 ※

  本文利用电阻箱测试了 STM32 输出 IO特性。在输出电流小于 30mA 下,输出端口可以等效串联一个 25欧姆左右的电阻。当输出电流超过30mA 之后,输出电压变会急剧下降了。

8条腿的MCU能干啥?基于最新8-PIN STM8S大佬们的脑洞(三)

(接上文)

21. 无线门铃

之前,论坛有个活动ohy老师送了块stm8小开发板,接触了一下,然后最近很闲,临时决定做个小东西,把之前想做那个无线门铃做出来,顺便学习一下STM8的使用,入门几天出现很多问题,我是用寄存器编写的,可能用库的话就没这么曲折了,下面简单写一下遇到的问题,分享一下后来改做的小东西。

你问为啥改做床头小万年历?

DIY过程中发现433 发码 解码 还挺不简单 一头麻,STM8s003最小系统也不小心搞坏了一个,索性就先做个小东西吧,目的只是了解stm8的基本操作。

后来发现论坛【公开课】有STM8 433M 开发无线台灯 真的啥视频都有啊!!很全面 待我学会433 再来装逼。

硬件:(STM8S003F3P6最小系统 DHT11 LCD1602[IIC] 1838红外 DS1302 )

基本功能:

日期 温湿度 显示。

红外遥控设置修改日期。

1. 创建工程

2. 寄存器编写基础代码+网上找驱动修改使用(DS1302 红外 DHT11 LCD1602[IIC])

自己做的内容就只有蜂鸣器 和 修改外来驱动。调试

3. 功能模块化 然后编写处理逻辑 完事!

第一次使用最头疼的是io功能 ,刚开始不知道就找问题花了半天时间,后来顿悟。

比如 移植DHT11它的时序要求 先写后读,IO就要配置输出的 按时序要求拉高拉低,然后再改输入读取,因为这个驱动我在51上用过的,很完美的驱动。所有问题都排除了之后我就很头疼,翻了手册发现我只配置了输出IO操作也只操作了输出数据寄存器,这才明白没有通用模式,只能输入或者输出。太傻了哈哈!低级错误。

然后还有中断问题(用库开发因为中断向量表都很完善,一般不会出现中断卡死情况,寄存器写的话就要多注意IO外部中断)。

因为每个IO都有中断功能,寄存器操作配置IO容易写错就进入中断,最后程序会卡死,我把定时器 串口通通关闭最后才查到IO外部中断,因为没有使用,直接仿真也能看到卡死在什么位置。

这种情况就是中断问题,没有找到中断入口,可能就是开启了中断,没有正确给出入口函数,系统找不到就卡死了。

还有个特奇怪的问题,我移植之前用得好好的DS1302 读数据驱动 数据老是错的 秒也跳了 就是数据相差太大,看了波形发现数据对的,单片机读取出错,查读取驱动 我搞不懂这咋回事,咋还就慢一拍 。

22. 灯带控制器、充电宝电量显示

1.生活中好多地方会用到灯带,电脑机箱(好多人喜欢的光污染)、家庭装饰、饭馆理发店等门脸装饰,WS2812B灯带用SPI控制,STM8支持SPI,价格便宜,开发方便。

2.STM8支持ADC、IIC、SPI,可通过OLED屏或单纯的几颗LED,显示充电宝电量。

23. 温度采集 OLED显示

STM8作为一款8位的单片机,在之前没有多少了解,总觉得现在的32位产品线如此丰富;STM32什么芯片斗有。但是接触到整体方案设计后,就发现,电路空间、产品成本、性能过剩这些问题都要考虑。不是一颗144脚芯片打天下了,产品必须有差异化,对成本、功耗控制都必须要有规划。

之前没用过STM8,如果可以打算用来做一款温度传感器,在体积、功耗、成本上都进一步控制下,还能带显示,8个脚就够了,将引脚几户都用掉,这很有一番不一样的成就感,强迫症的满足啊。通过利用DS18B20数字温度传感器、I2C接口的OLED屏做个家庭温度计用。

工作上做过并正在销售一款工业无线温度传感器产品,不过用的是STM32方案,就一个采集温度、无线发送的小东西,用了64引脚的芯片,真是罪过。如果可行,打算用STM8试试。

总结:8条腿的MCU也可以很优秀,做东西一样有戏。

24. 小型灯带控制器

8-PINSTM8能干啥?

有很多的小型控制器/功能模块就不需要有很多引脚,有个5、6个引脚其实就已经足够了,比如说什么呢?简单的灯条控制器,对灯条进行调色调亮度,还能进行遥控控制进行模块切换,或者说使用按键或旋钮电阻进行模式/亮度调节,这些都不需要很多引脚就能轻松完成。

来看下8-PIN引脚都有些什么功能引脚,都能完成那些对应的功能:

1、Internal 16 MHz factory-trimmed RC & Internal 38 kHz lowconsumption RC

无需外部晶振直接玩起来

2、UART, SmartCard, IrDA, LIN master mode

串口通信、红外遥控接收解码毫无压力,轻松完成遥控接收功能

3、12-bit ADC/10-bit ADC

轻松完成按键或旋钮电阻的检测

4、16-bit timers 可用于PWM生成

完成亮度PWM控制也毫无压力

5、SPI、I2C接口

轻松连接外部传感器接口

8-PIN 小身材但功能多,其实不止是小型灯条控制器的应用,还有如指尖陀螺等,也有用8-PIN单片机做的。在很多模块化的应用,如某一些只需要串口通信和完成简单的引脚开关控制的部件/模块中,已经完成足够,PIN脚再多也是浪费。

25. SPI<===>UART互转工具

借网友的截图,节省论坛资源

看到没,这货SPI和UART互不冲突,天生是SPI<===>UART互转工具的料。

当然,也能用来驱动spi器件,全部变成uart接口的模块。

然后,就是UART接口统一江湖的时候了

26. 多功能电池充电器

8-PINSTM8具有ADC、PWM、定时器、内部EEPROM、GPIO和UART,用来做一个多功能电池充电器不错。

首先,用ADC可以检测电池电压和充电电流,这时需要有两路ADC输入,同时把电池电压、充电电流存储于内部EEPROM。其次,STM8的PWM可以驱动一个PMOS,调整充电电压。

UART可以和PC通讯,把存储在内部EEPROM的电池电压、充电电流送给PC,显示充电曲线。GPIO可以接显示状态的LED,另外设置一个GPIO读取电池种类设置(锂电池或镍氢电池),由此确定充电方式和充电电压。

27. 物联网设备辅助处理器&物联网数据采集节点

看了一下三款STM8,感觉还是挺不错的,拿来做物联网设备的辅助处理器,因为很多物联网设备现在都有低功耗的要求,CPU耗电太严重,在低功耗状态下最好就是关掉CPU,留着一颗MCU供电,当检测到外部触发信号,或者有定时唤醒的需求的时候,可以靠这颗MCU拉起CPU的电源。

这种情况下用这个STM8L050J3就挺不错的,这款MCU明显优势在于

1、 集成了EEPROM,省了一块24C02的空间和成本,用来保存设备唯一识别号什么的,甚至还可以在单片机程序里面加一段加密的算法,这样人家很难破解的

2、 集成了RTC,ST的RTC精度还是可以接受了,这样就省了一个DS1302的空间和成本,用来做定时唤醒

3、 带了UART通信接口,可以跟CPU进行通信,满足软件关机的需求,CPU发一条指令就可以控制这个MCU拉掉CPU的电源

4、 便宜,才2.1 RMB,估计大批量会更低

现在的方案是用STM32F030F4P6这个片子,这个片子还是有点贵,而且不是所有GPIO都有用,像这种应用,除去串口,其实只需要一个GPIO去控制电源就行,这款STM8L050J3正好。

另外,物联网现在是越来越火了,很多相关的产品也已经落地,许多场景下,都要用到数据采集功能,通常都是连接几个传感器,然后通过无线蜂窝网络将数据发送出去,这个时候一颗引脚少的MCU是十分实用的,因为它不需要高性能的运算,功耗也低,往往是电池供电,就是简单的传感器数据采集和传输。

这个8-PIN的mcu开发板做一个物联网边缘数据采集终端的应用,使用太阳能电池供电,通过连接温湿度、CO2、环境光等传感器和GPRS,将环境数据无线传输到物联网云服务平台,实现远程监控功能。需要用到几个IO和串口,8-PIN的MCU恰到好处。

28. 可编程数字控制或智能IO(AI/AO/DI/DO)

8-PINSTM8的特点是pin数很少而片内存储、外设资源丰富,可软件编程、数据存储,因此最适合的应用场景是使用IO较少(1路或2路)、功能单一的数字控制或模拟/数字IO应用。可使用多。

片小尺寸的8-PINSTM8与主处理器构成大规模采集控制系统,所有STM8与主处理器之间通过串行通信进行信息交互,实现功能分散的数字控制或IO应用。

数字控制譬如简单的开关控制,使用片内定时器的时序控制、PWM控制等;智能IO包括使用片内ADC的模拟量输入(AI)、使用片内定时器的PWM输出(经外电路滤波可实现模拟量输出AO)以及数字量输入DI、数字量输出DO等。

使用STM8做智能IO的优势显而易见:由于可软件编程,因此可以实现普通IO电路难以实现的自检、自诊断功能,提高了系统可靠性。可以实现很多高级功能,为主处理器减轻任务开销,这在大规模系统中尤为有用。比如借助STM8片内ADC功能做智能AI不仅可以实现模拟量采集,还可通过软件编程实现普通ADC电路难以实现的灵活多样的数字滤波等数据预处理功能;使用STM8做智能DI时可以利用片内定时器实现消抖抗干扰并捕获外部事件发生的时间信息,做智能DO时可以通过软件编程实现复杂的时序逻辑控制等,这些都是普通功能电路不可比拟的。当然,使用STM8取代普通功能电路增大了系统复杂度,提高了开发难度和成本,设计时是否采用需要统筹考虑。

29. 驱动继电器

简单的应用就是串口与上位机通信控制轨道交通中DCJ, FCJ, SJ继电器,采集DBJ, FBJ继电器,8脚够用了,多了也用不到,放着多余。在轨道交通行业会经常用到这样的,之前都是用的PLC或者40脚的单片机,费力不讨好。

30.读卡器

射频读卡器

最近在公司熟悉STM8的产品,很有意思,其开发方式与STM32有这出奇的相似,所以开发起来也很方便。之前使用STM8S105做了一个发卡器(读写IC/ID卡)模式比较多,这次觉得8个管脚的STM8。

也可以做个发卡器。虽然不能通过拨码开关设置读什么卡,读卡的模式,但是可以做成一个简单的读卡器的功能。用起来也十分的小巧,而且成本也降低了很多。

ID卡的读写卡器

小区的门禁是ID卡,之前看到有网友用AVR和LGT单片机做ID卡读卡器和模拟器,正好这次ST的stm8活动,看看能不能用STM8也做一个。

从STM8的资源上看,可以有一个UART和PC通讯,一个IIC接外部OLED屏,传输或显示ID卡号;定时器加中断输出125kHz的载波,解码使用外部中断加定时器加LM358、二极管、阻容解决。

卡模拟器采用类似方案,可以把外部OLED屏和解码部分去掉,通过PC写入ID卡号(存储在STM8内部的EEPROM里),在加定时器加中断输出125kHz的载波调制输出。

外部IO需求不多,用8-PIN的STM8足够了。

31. 开发Micro:bit扩展板

Micro:bit是专门面对少年儿童学习的开发板,开发板本身搭载的传感器不多,可以使用STM8开发各种扩展板,扩展Micro:bit的功能完成不同应用,如光照、温度、土壤水分、破碎、湿度等传感器,扩展舵机、直流电机、LED点阵显示等驱动板。8脚的STM8MCU很适合做此类简单应用,能有效降低成本,加快开发进度。

32. 音乐灯光

8-PIN的STM8很适合做单一功能的小物件。各种常用接口功能都有。我想到的就是用2个ADC采集音乐左右声道的声音,然后加上RGB灯驱动做个随音乐变化的灯光显示。RGB灯可以用WS2811驱动的数字灯,也可以用74HC595、DM134或者TLC5940串行4线驱动的,6个IO端口足够了。也可以玩很多花样了。

类似这个很早以前做过,以前单片机选型到是没考虑那么多,现在感觉以前做的选型单片机资源太浪费了。现在如果重新做,可以做的更小巧,成本更低。

33. 电子积木终端控制

电子积木就是将导线、灯泡 、二极管、三极管、电阻、电容、各种开关、电表、电机、喇叭、集成块等电子元器件固定在塑料片(块)上,用独特的子母扣做成独立可拼装的配件,在产品配置的安装底板上像拼积木一样拼装电路组合。先看看都有什么外设:

有串口,有IIC,还有SPI,这样丰富的接口,其实做什么功能都是可以的,由于封装很小 ,功能强大,所以,在电子积木中,可以做为从机的控制,通过串口通讯与其他的模块进行数据交换来形成不同的功能。

每一块积木中有一片STM8的芯片,并设置成一种特定的功能,当与其他的积木插在一起时,会形成新的功能,就像是装备的合成一样。

34. 多彩智能家居采集点

8-PIN的STM8能干啥,使用在功能简单单一的场合还是不错的。两三个IO配合上一个I2C或者TIMER,也能完成不少功能了,至少做一个警号,一个闪灯玩具之类的,一点问题没有。如果使用低功耗的STM8,用于智能家居里做为单个的信号采集点,那也是相当不错的。

比如STM8L050,用电池供电,再配上个无线模块,可以做成各种信号采集点,水浸,门窗感应,各类气感,火警,抽屉移动感应等等。再配个中控类的网关,内置上个WIFI模块,一个简易版的智能家居就出来了。

STM8虽然只有8-PIN封装,但从另一个角度说明它的集成度高,开发出来的产品IC占用的空间也比较少,在智能家居领域有许多小产品都要求稳定,功耗低,易散热。

1、我们可以用STM8做室内温湿度监控数字表,采用OLED的小屏显示,温湿度传感器通过GPIO接口将采集的模拟量给到我们的STM8主控,再由它的AD转换,将数据通过I2C接口输出给OLED显示屏。

2、我们也可以做一个数字时钟机,采用外部32.768KHz的晶振电路,搭建成一个精准稳定工作的数字时钟机。

3、可以用STM8做一款红外远程遥控器,既能调节控制家里面的热水器设定的温度值,又能控制开关电源的开启与断开。

4、可以用STM8做一个智能光感控制家用台灯,将光敏传感器采集的数据经过STM8处理,而后PWM输出控制台灯光照强度等

综上所述,STM8是有很大的使用价值的,IC封装小,开发起来简洁明了,完全符合功能产品的设计要求,成本较STM32或其它型号的IC有明显的优势,采用STM8开发上述例举的智能家居产品恰到好处。小IC有小IC的用法,使用得当,那也是多姿多彩的。

35. 简易温控器

1、你选择STM8的理由(吸引你的地方)这几年用STM8做了好多个项目了,主要用了STM8L052,STM8S003。用STM8L052做了好几款温控器,这个MCU主要用它的段码LCD驱动宫功能,不用另外加驱动芯片,用起来比较方便。用STM8S003做过数码显示温控器,管道温控器,各种阀门控制。总之做了有10多个小东西了,感觉芯片还是很不错的,用起来也比较方便,也有现成的库。

全新的STM8S001,STM8L001,STM8L050 采用小型工业标准的 SO8 封装,这几款的封装比较小,8个管脚的MCU还是比较少的,有一定的市场。做些小东西比较方便。

2、STM8L001 / STM8S001 / STM8L050 这三款芯片各自的特性、优势以及适用场景

这三款最吸引人的还是封装管教比较少。L系列对应低功耗,可以做电池供电的场合,基本的复合功能都有,可以实现很多小项目。

3、STM8创意测试(方向不限)

可以用来做些传感器的检测显示,8个管教足够了。也可以做简单的温控器,一路温度采集,一个按键,一个输出,再可以加点显示。

a.传感器检测,手上有各种传感器有模拟量输入的,有IIC总线的,有SPI总线的,可以用STM8来检测处理各种传感器,然后通过串口发送到PC机处理,或者UART转无线发送到控制板处理等,也可以直接显示处理。我手上各种外设都比较齐全,玩起来比较方便。

b.做个温控器,一路温度采集,一个按键,一个输出,再可以加点显示。这样就搞成一个温控器了,虽然简单,但可以实际使用,放在家里控制个加热器什么的妥妥的。

36. 温度、湿度计

8脚的STM8单片机体积小,功能全,价格便宜,可以做成温度计主控,既能测量温度,又能驱动oled或者断码屏显示温度。

读取传感器数据并通过LCD显示;可以实时显示外界温湿度值。

(1)STM8L001配备多达6个用户I/O引脚,内置ADC;可外接数字或者模拟温湿度传感器,可采用IIC接口LCD屏;

(2)STM8工作电压1.8V至3.6V,可采用电池供电;

(3)单片机停止模式工作电流可降至300nA,最大限度地延长电池供电设备的使用寿命。

37.电池供电的无线设备

STM8L001这芯片好,低功耗+低引脚+FLASH+RAM+EEPROM,当然适合电池供电的场合的设备。

1, 设计成无线门铃也是不错的。

STM8L001+433模块+喇叭驱动+喇叭之类的。就构成了无线门铃。

2, 家用无线报警设备(智能家居网络里)

无线报警设备包括窗门报警(这个可以电池供电也可以不是电池供电)。

无线通讯,电池供典型的煤气泄漏报警。(电池供电)。

无线通讯的环境空气质量检测设备。

无线通讯的输入检测设备,可以用STM8L050(带ADC 可检测模拟电平高低)。

无线通讯的输出设备(继电器输出驱动外部设备)

3, 灯光控制

可调LED台灯,无线可调LED壁灯,吊顶等等。

从上面的一个个鲜活又颇赋创意的例子下,原来STM8无处不在,当然,也正印证了8-PIN的STM8究竟有多重要。

相关问答

51 单片机 ,引脚 输出电流 有多大-ZOL问答

其实,根据u=ir来算的话,电流可以是无限大的,你这种说法是不正确的,电流是跟负载有关。但一般的单片机有一定的输出功率,在功率限制下,电流一般为30~40ma,两个...

单片机 io 电流 大概10ma左右,如何让一个 io 口控制四个并联一起的led(同时亮灭)?

每个LED电流20mA?你为什么要那么大电流呢?不怕烧坏LED?好吧,不管你为什么用那么大的了,反正你不能把四个LED连接到IO口上,因为单片机IO口没那么大驱动能力.用...

【一个工作电压为5V的 单片机 ,想驱动并联了50颗led,接在P0口,...

[最佳回答]按照一个LED工作电流5mA计算,50个就是250mA,超出了绝大多数单片机IO口的输出能力(我还没见过能输出这个电流的单片机呢),因此必须使用晶体管、继电...

单片机 io 口最低驱动电压及 电流 ,也就是说多少伏以上及多少毫安以上被认为高电平?

5v单片机的io口与TTL电平兼容输入高电平>2.0V低电平<0.8V,输出高电平3.5V,低电平0.2V,输入电流是很小的1UA左右,输出电流可以在10-20ma5v单片机的i...

如何通俗地理解 单片机IO 口的几种 输出 模式?

我来说说STM32吧,这是意法半导体出的ARM-cortex内核的32位微控制器,功能有多强自己百度吧。其IO也叫GPIO,即通用输入输出端口,主要有一下几种模式,普通输入...

单片机 一个 io电流 太大会影响其它的口吗?

是的,单片机的每个IO口都有其最大驱动电流和最大负载电流限制,如果一个IO口的电流太大超出了其限制,就有可能影响到其它的口。过大的电流会导致电压下降、功耗...

单片机 io 口作为输入口是,需要选 输出 全零?

如今的比较好的单片机的IO口是可以定义的,这和最原来的51有区别。当作为输入口时候是单片机接收IC的数据信息,或者是灌电流,这时候要考虑电流的大小是否在单片...

51 单片机 能提供多大的电压 电流 ?

答:51单片机输出低电平驱动能力很强,至少可达20mA~50mA。高电平驱动能力很弱,电流在5mA以下。带动4~8个TTL负载是指一个输出类的IO口可与4~8个TTL的输入引脚相...

51 单片机 的各个引脚 输出 高低电平的时候电压和 电流 是多少?能够带动4个或者是8个ttl负载是什么意思?

51单片机输出低电平驱动能力很强,至少可达20mA~50mA。高电平驱动能力很弱,电流在5mA以下。带动4~8个TTL负载是指一个输出类的IO口可与4~8个TTL的输入引脚相连...

怎样使 单片机 上电时 IO 口为低电平呀?

由于STC单片机上电后有一段时间的延迟,好像最长能到65535个指令周期,才进入用户程序,所以从软件上想办法不能阻止上电误动作的产生,最简单的方法是在需要处理...

猜你喜欢