01背景


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

▲ ATMEGA单片机IO口等效电路

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

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

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

02测量方案


1.测量端口电阻

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

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

2.测量过程

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

▲ ATMEGA8 DIP-28封装

03测量数据


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

(1) IO低电平内阻

▲ 测量电路图示意图

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

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

X▲ 端口电流与电压

通过线性拟合,可以建立输入电流(i,单位mA)与端口电压UIO(I)U_{IO} \left( I \right)UIO​(I)之间的线性关系。
UIO(i)=0.02615⋅i+0.0062U_{IO} \left( i \right) = 0.02615 \cdot i + 0.0062UIO​(i)=0.02615⋅i+0.0062

通过上述线性方程,可以得到端口的输入电阻为:Rs−LOW=26.15ΩR_{s - LOW} = 26.15\OmegaRs−LOW​=26.15Ω

(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

▲ 端口电压与电流

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

UΔ−High(i)=0.02354⋅i+0.00576U_{\Delta - High} \left( i \right) = 0.02354 \cdot i + 0.00576UΔ−High​(i)=0.02354⋅i+0.00576

由此可以得到单片机高电平下输出内阻大约为: RHigh=23.54ΩR_{High} = 23.54\OmegaRHigh​=23.54Ω

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

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

使用DM3068数字万用表,直接测量ATmega的输出低电平的IO对GND之间的电阻:
RLow=26.8ΩR_{Low} = 26.8\OmegaRLow​=26.8Ω
测量ATmega8输出高电平的IO对VCC(+5V)之间的直流电阻:
RHigh=17.64ΩR_{High} = 17.64\OmegaRHigh​=17.64Ω

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

3.使用LCR表测量IO内阻

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

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

低电平IO内阻:RLow=23.10ΩR_{Low} = 23.10\OmegaRLow​=23.10Ω

高电平IO内阻:RLow=23.92ΩR_{Low} = 23.92\OmegaRLow​=23.92Ω

➤ ※ 结论


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

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

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


■ 相关文献链接:

  • 电子小帮手电路中电源开关电路分析
  • 电子小帮手电路中的设计原理
  • ATMEGA8 DIP-28面包板实验
  • 低价电阻箱-阻值测试

测量ATMEGA8单片机IO口的输入输出内阻相关推荐

  1. 关于单片机IO口输入输出的理解!

    解释一: 单片机的 IO 口 (输入/输出 口),是相对单片机 本身 而言的, 就是单片机IO口往外输出信号1或者0( 1 的输出电圧 = VCC , 0 的电圧 = 0 V ) 或者 单片机从 IO ...

  2. 单片机IO口原理解析

    参考:http://m.elecfans.com/article/581431.html @[TOP] 第二功能 单片机有4组IO口,内部结构各不同,有些IO口具有第二功能 上面除了P1外,其他接口都 ...

  3. 如何利用单片机IO口产生两倍的电源电压

    简介 在很多情况下,电子系统中需要获得比工作电源高的电压电源,或者负电源.比如在一些功率器件(MOS)的基极驱动信号.扩展运算放大器的动态范围.一些通信信号(UART232). 现在有很多专门的芯片, ...

  4. c语言用p1口进行转弯灯实验,P1.0口转弯灯程序 单片机IO口的应用

    P1.0开关接5V时,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮.P1.0.P1.1 开关同时接5V或接地时,转弯灯均不闪亮. 程序框图 P1.0开关接5V时,右转弯灯闪亮,P1.1开关接5V时左 ...

  5. 51单片机——IO口

    IO口分类 此单片机有39个IO口,P0到P3每个8个口,P4有7个口 一般用P1,P2,P3,P4口与外部模块通信,这4个口是准双向口,具备弱上拉电阻的:P0口重新上电后是开漏输出,若总线扩展用,不 ...

  6. IO口多路查理复用:三个单片机IO口控制六个LED

    简 介: 本文介绍了单片机的IO控制 LED 中的复用技术,特别查理复用基本原理和特点进行了介绍.使用一款IS31FL3731可以构成16×9的PWM亮度可控的 LED 矩阵. 关键词: 查理复用,C ...

  7. 单片机IO口模拟串口程序(发送+接收

    单片机IO口模拟串口程序(发送+接收)[转] qcmc 发表于 - 2011-6-23 0:42:00 前一阵一直在做单片机的程序,由于串口不够,需要用IO口来模拟出一个串口.经过若干曲折并参考了一些 ...

  8. 51单片机有几个通用io口_51单片机IO口的四种使用方法

    原标题:51单片机IO口的四种使用方法 传统51单片机IO接口只可以作为标准双向IO接口,如果用其来驱动LED只能用灌电流的方式或是用三极管外扩驱动电路. 灌电流方式 LED正极接VCC,负极接IO口 ...

  9. 单片机推挽输出c语言,单片机IO口科普:推挽输出、开漏输出详解

    原标题:单片机IO口科普:推挽输出.开漏输出详解 在学单片机和选用逻辑器件的时候我们常别人说这款芯片是推挽输出驱动能力强,这个引脚是开漏输出需要加上拉电阻. 是不是有时候感觉一头雾水? 今天就详解一下 ...

最新文章

  1. 数字锁相环的matlab仿真
  2. ASP.NET 常见参考项目的 UI、BLL 、Model 、 DAL 分析
  3. android 开发问题----avd按钮无法按
  4. pymysql.err.OperationalError: 1136, Column count doesn t match value count at row 1
  5. Matlab画图常用的指令是啥,matlab画图常用命令
  6. 学习笔记(01):程序员的数学:微积分-常用导数(一):最常用到的技巧
  7. 【ATSC】ATSC数字测试专用ATSC Frequency
  8. 什么是广域网(WAN、公网、外网),什么是局域网(LAN、私网、内网)
  9. jquery fadeOut 异步
  10. 揭开 Java 注解的神秘面纱
  11. MBTI职业性格测试完整版(静态题库)
  12. mysql数据库无法插入中文
  13. mysql 计算成功率_mysql数据统计技巧备忘录
  14. 微信小程序---页面刷新的几种方法
  15. 文件服务器fuse,FUSE 扩展
  16. 45个超实用网站,超强整理!外贸人收藏
  17. 一篇“从入门到上手”的PCB设计教程
  18. 华软2016校内选拔赛
  19. WINCE系统防火墙设置
  20. 2022年信息安全工程师考试知识点:无线网络安全

热门文章

  1. 在UE4 Editor中改变一个变量时同时更新相关联的其它变量
  2. firefox显示nagios
  3. 如何对软件项目团队成员进行角色和岗位的划分
  4. 【转】Java中File常用的方法汇总
  5. 腾讯99公益日︱深圳市慈善会:那些无力的故事,都拥有了力量
  6. 【leetcode】394. Decode String
  7. 10个JavaScript难点
  8. keepalived+nginx安装与配置
  9. 几种民间排毒养颜祛痘DIY自制面膜 - 健康程序员,至尚生活!
  10. 学python对学c++有帮助吗_2020,你该学习Python还是C++