技术文档

基于单片机的电阻测量 测量单片机IO输入输出电阻

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

测量单片机IO输入输出电阻

➤ 01背景

电子小帮手电路中电源开关电路分析 中介绍测量模块电路实验原理的时候,对于ATmega系列的 单片机的输出端口进行了内部描述 。特别是对于端口做为IO输出口的时候,它可以等效为通过电阻19Ω和22Ω分别上拉到VCC,或者下拉的GND。

电子小帮手电路中电源开关电路分析:https://zhuoqing.blog.csdn.net/article/details/109242259单片机的输出端口进行了内部描述:https://zhuoqing.blog.csdn.net/article/details/109238622

▲ ATMEGA单片机IO口等效电路

那么就会出现一个新的问题,对于ATmega单片机,这个IO口的内阻究竟有多大呢?

通过实验来确定单片机输出IO口的实际电阻阻值,这为将来使用单片机进行测量工作提供数据基础。

利用在 ATMEGA8 DIP-28面包板实验 中可以下载程序的实验方式,对于ATmega8单片机搭建在面包板上的测试芯片。通过实验来测量对应的IO端口在作为输出端时相对于GND,VCC的电阻阻抗。

ATMEGA8 DIP-28面包板实验:https://zhuoqing.blog.csdn.net/article/details/109245968

➤ 02测量方案

1.测量端口电阻

测量电阻阻抗的方式可以通过以下三种方式来进行:

通过V-A方法检测,也就是通过测量IO口输入、输出电流一项相对应的IO口电压的变化,来获得端口的等效串联点租。使用万用表直接测量;使用手持LCR表来测。

2.测量过程

通过软件编程,使得单片机的PB4,PB3,PB2,PB1分别处于输出高电平,和输出低电平的情况,然后按照上面三种方法来测量对于端口的内部等效阻抗。

▲ ATMEGA8 DIP-28封装

➤ 03测量数据

1.使用V-A方法测量IO内阻

(1) IO低电平内阻

▲ 测量电路图示意图

使用在 低价电阻箱-阻值测试 中的9999Ω电阻箱,分别改变IO端口的输出负载,记录不同电阻下输出端口的电压,进而可以进行获得内部电阻。

低价电阻箱-阻值测试:https://zhuoqing.blog.csdn.net/article/details/107112157

Current(mA) 3.068900 1.900500 1.376000 1.078700 0.889500 0.754900 0.655700 0.579500 0.519100 Voltage(V) 0.086651 0.055485 0.041959 0.034435 0.029279 0.025946 0.023526 0.021161 0.019959

▲ 端口电流与电压

通过线性拟合,可以建立输入电流(i,单位mA)与端口电压之间的线性关系。

通过上述线性方程,可以得到端口的输入电阻为:

(2) IO高电平内阻

测量不同输出电流下输出电压的变化。

Current(mA) 3.066000 1.897700 1.373900 1.077000 0.888000 0.753500 0.654500 0.578400 0.518200 Voltage(V) 0.077972 0.050410 0.038025 0.031065 0.026657 0.023490 0.021160 0.019415 0.018024

▲ 端口电压与电流

对上述电压电流线性拟合:

由此可以得到单片机高电平下输出内阻大约为:

通过实际测量,可以看到ATmega的IO口在输出状态下,内阻分别是26.15Ω(低电平)以及23.56Ω(高电平)。

2.使用万用表测量IO内阻

使用DM3068数字万用表,直接测量ATmega的输出低电平的IO对GND之间的电阻:

测量ATmega8输出高电平的IO对VCC(+5V)之间的直流电阻:

注意:由于存在输出静态电压,不能够测量输出高电平的IO对GND之间的电阻,或者输出低电平IO对VCC之间的电阻。

3.使用LCR表测量IO内阻

为了避免单片机端口的静态电压对于LCR表的测量影响,使用100uF的电解电容进行隔直之后,然后在使用Smart Tweezers进行测量相应端口的内阻。

▲ 使用隔直电容之后测量端口的内阻

低电平IO内阻:

高电平IO内阻:

➤ ※ 结论

单片机的IO如果作为输出端口,它可以等效一个内部穿有内阻的电压源。由于它内部是通过MOS管完成IO端口与VCC,GND的相连,所以内阻实际上是这些MOS管导通内阻。

通过对ATmega8单片机端口的内阻测量,可以看到这些内阻的大小在20欧姆到30欧姆之间。这与它的数据手册上相关的数值基本上是在同一数量级之内。

上文中使用了三种方法测量单片机IO口的内阻,它们的取值基本相似。因此上,在未来实际上应用中,可以根据具体情况来选择相应的测量方式。

利用单片机IO口测量电阻

利用单片机10口测量电阻。

在以前的有些单片机应用中,有的时候会遇到AD端口资源不够用的情况,但又需要测量电阻的大小,比如一个热敏电阻的阻值。有人给出了一个利用两个IO端口完成电阻精确测量的老方法。下面通过实验来测试一下这个古老的IO端口测量电阻的方法。

测量原理比较简单,使用两个单片机IO口连接两个电阻,向同一个电容充电。设置一个IO口为输出端口,另一个为输入端口。输出端口通过连接的电阻向电容充电,电容上的电压上升,当超过一定阈值,输入端口逻辑电平就会变成1。

这个充电时间与终止电压、阈值电压以及RC对应的时间常数有关系,具体数值由这个公式决定。这个过程再测量一遍,对应的时间与R2成正比,因此两次时间的比值就等于电阻的比值。如果已知其中一个电阻阻值,另外一个电阻便可以根据时间比值计算出来,这就是IO口测量电阻的基本原理。

这是STM32F030K6单片机,给它端口PFO施加一个三角波,程序循环查询输入逻辑电平,并在PF1输出反向逻辑。可以看到单片机对输入信号进行了离散化,上升和下降具有一定的回滞特性,回滞电压大约是200mM。

下面利用F030单片机的PFO、PF1两个管脚来测量电阻,测试一下这种方式测量的精度。实验中需要一个电容和两个电阻,电容容值为313.8nF,电阻1的阻值为19.545kQ,电阻2的阻值为4.718kQ。将它们安装在面包板上进行测试。

电容一端接地,另外一端与两个电阻相连,两个电阻分别与单片机的PFO、PF1端口相连。下面对单片机进行软件编程,利用其中的定时器作为时标,对延迟计时。PFI管脚连接RI,PFI连接RI,设置PFO为输出端口,PF1为输入端口,周期改变PF0高低电平,分别测量PFO、以及电容上的电压信号。可以看到电容上的电压呈现充电曲线,时间常数大约为1.5ms。根据已知器件数值,可以看到与测量的结果是相符合的。这是电阻2对电容的充放电曲线。

下面测量电阻1对电容的充放电过程。由于电阻1的阻值为20ms,所以对应的充放电过程就比较慢,时间常数大约是R2对应的时间常数的4倍,为6.3ms!在测量过程中,两个端口同时进行对电容进行放电,放电时间取20ms。

测量软件先将PFO,PF1输出0电平,对于电容进行放电。然后将其中一个设置为输入端口,另外一个置为高电平,对电容充电。同时启动定时器1进行计时。在此过程中,监视输入端口逻辑电平是否为1。当输入端口变为1时,停止定时器,并读取时间。然后再进行放电,更换另外一个端口为输入端口。测试充电时间。

这是测量PFO和电容上电压信号。可以看到两个充放电过程,黄色曲线是PFO电压信号,青色是电容上的充放电电压信号。这是PFO作为输出端口,PF1作为输入端口时的测量过程。这两个充电时间与电阻成正比。

这是给出的测量结果,第一个是电阻1对应的充电时间。第二个是电阻2对应的充电时间。它们的比值在4.1左右。根据前面测量的R1,R2的阻值,对应的比值大约为4.143.由此可以看到测量时间比值与电阻比值接近。

测试298个数据进行统计。数据的平均值为4.119,标准方差为0.043。测量平均值比实际电阻比值4943小了0.6%左右。

本文测试了利用单片机IO口测量电阻的方法。单片机平台是STM32F030K6。测量得到的电阻充放电比值比电阻值的比值小了0.6%左右。

大脑思索真理,参考链接:双手触摸知识。

相关问答

单片机电阻 怎么找?

要找到单片机上的电阻,首先需要查看单片机的电路图或者原理图。在电路图中,电阻通常用一个矩形框表示,上面标有数值和符号。根据电路图上的标识,可以确定电阻...

如何用 单片机测量 电池电量的問題-ZOL问答

(两个电阻,串联,一段接输入,另一端接地,中间送ADC),将电池电压分到一个合理的范围内,送给单片机内部的ADC去转换,程序处理上,将转换好的ADC乘上分压比还原成采样...

单片机测量 电流方法?

单片机测量电流的方法主要有两种,分别是电压降法和霍尔效应法。1.电压降法:将一个恒定的电阻接在待测电路中,测量通过该电阻的电压,并利用欧姆定律计算电流...

单片机 如何通过ADC模块采集模拟信号?

朋友们好,我是电子及工控技术,我来回答这个问题。众所周知单片机是一种超大规模的集成电路,它只能“读懂”并处理数字信号,对于连续量的模拟信号则无能为力。...

我想测试 单片机 好坏,用什么测试呢?

1、视觉判断机械损坏;2、外用表测量电源及各个端口的对地电阻,具体阻值与好的芯片对比;3、烧录一个使用相关IO口的程序,在线测试,最好是做一块每个IO口都...

通过52 单片机 如何对直流电压电流进行 测量 ?

52单片机只是内核的通称,你要可以选型一款带AD数模转换的单片机型号,比如国产的STC系列;网上可以搜到一堆程序(搜51单片机AD程序);测量电压先要看电压的...

51 单片机 和红外探测器怎样 测量 温度?

1.通过51单片机和红外探测器可以测量温度。2.51单片机是一种微控制器,可以通过接收红外探测器发出的红外线信号来测量温度。红外探测器可以感知物体发出的红...

单片机 驱动交流接触器的方法

[回答]在各种自动控制设备中,都存在一个低压的自动控制电路与高压电气电路的互相连接问题,一方面要使低压的电子电路的控制信号能够控制高压电气电路的执...

用示波器如何测试 单片机 是否处于正常工作状态?

用根电线短一点,串个10K电阻,一头去捅探头插座的芯,一头接示波器自带的方波发生器接头用根电线短一点,串个10K电阻,一头去捅探头插座的芯,一头接示波器自带的...

分压电路与 单片机 相连 电阻 作用?

单片机,功能单一的微型电脑。作用。可以用来处理一些单一而长期性,重复性的工作。二极管,一种具有单向导通特性的半导体材料制成的电子元件。在电路中的作用...

猜你喜欢