矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 10669|回复: 22

51单片机IO口输入电压是否可以超过0-5V

[复制链接]
     
发表于 2018-11-15 11:20:58 | 显示全部楼层 |阅读模式
想用STC单片机测量交流电压,会有-2.5V输入到IO口,端口到输入之间串联有一个20K电阻,这样是否会损坏单片机。
这时用AD测量这个-2.5V电压会得到什么结果,是0吗?
     
发表于 2018-11-15 15:17:15 | 显示全部楼层
hhh402 发表于 2018-11-15 13:05
用来做测量的超压是很有可能发生的,单片机IO口能够承受多大的电压是必须要了解的。比如一个万用表测电压, ...

1、Datasheet 会给出 IO 的 Sink,Source 电流能力和相对 VCC、GND 的绝对值,以及 IO 的具体结构示意图。以 AVR 为荔枝,通常 IO 容许输入最低电压可以低于 GND 0.5V,高于 VCC 0.5V;并且,IO 上对 GND 和 VCC 各有一个二极管作为保护,因此拉、灌电流不超过直流指标极限值(比如 M8 是 40mA)就不会损坏。2.5V 对 20k 是 125uA,对 AVR 来说小意思。

当然,AVR 是一个 IO 保护考虑得比较完善的单片机,死太惨这种不清楚。

2、一般 MCU 的片内 ADC 不能处理低于 GND 的输入电压,如果要测量这种电压可以将其抬高,一个运放构成的加法器可以妥当解决这个问题。但最简单的就是一个电阻,把输入电压通过一个电阻上拉到 VCC 或 Vref

回复 支持 1 反对 0

使用道具 举报

     
 楼主| 发表于 2018-11-15 11:25:29 | 显示全部楼层
那位老师这样用过,如果电压再大一点,比如到10V、-5V单片机是否会损坏,这时AD测量值(10位AD,STC单片机)会是多少?
回复 支持 反对

使用道具 举报

     
发表于 2018-11-15 11:37:04 | 显示全部楼层
你得看手册啊,一般单片机的ADC是不支持负输入的,输入负电压肯定是0啊。而且你为什么要让IO口过压呢?这个手册上也是有最大值的,最好不要过压。
回复 支持 反对

使用道具 举报

     
发表于 2018-11-15 12:01:45 | 显示全部楼层
超压的就用电阻分压,极限承受电压不清楚,太高了应该会损坏IO口或者整个单片机,超出范围低了是0,高了是最大值,一般不超过供电电压,
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-11-15 13:05:01 | 显示全部楼层
本帖最后由 hhh402 于 2018-11-15 13:09 编辑

用来做测量的超压是很有可能发生的,单片机IO口能够承受多大的电压是必须要了解的。比如一个万用表测电压,量程是0-5v,如果接入10v或者100v电压是否烧表是需要了解的。手册太保守,极限条件用过才知道。我主要想知道串联了一个大阻值电阻有多大的保护作用。
回复 支持 反对

使用道具 举报

     
发表于 2018-11-15 15:48:21 | 显示全部楼层
一般还是控制在0 - 芯片工作电压才安全
回复 支持 反对

使用道具 举报

     
发表于 2018-11-15 16:15:35 | 显示全部楼层
本帖最后由 jforu 于 2018-11-15 16:17 编辑

单片机是直流ADC. 所以交流电压,你是测量平均值,有效值,峰值? 瞬间值? 不同的结果要进行不同的处理.
用运放整流,可以测量到mV级,这个是平均值,有效值,要用AD637或AD736这类AC转有效值电路来处理.峰值,瞬间值,要有取样保持电路......

-2.5输入,单片机有钳位二极管, 实际在里面大概是0.7V左右.

单说-2.5V, 你可以用运放"加运算",与一个大于2.5V的基准电压累加,得到不低于0V的电压
回复 支持 反对

使用道具 举报

     
发表于 2018-11-15 16:22:32 | 显示全部楼层
好奇心  
回复 支持 反对

使用道具 举报

     
发表于 2018-11-15 17:25:17 | 显示全部楼层
自己看手册,会有结果的。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-11-15 18:17:44 | 显示全部楼层
本帖最后由 hhh402 于 2018-11-15 18:20 编辑
jforu 发表于 2018-11-15 16:15
单片机是直流ADC. 所以交流电压,你是测量平均值,有效值,峰值? 瞬间值? 不同的结果要进行不同的处理.
用运 ...


我用的是STC8系列单片机,12位AD,AD采样速度700KHz,我就是要采集动态的交流电压用真有效值法计算交流电压。如果负电压AD值为0就可以满足我的要求,用运放做做整流是可以,但是会带来误差,能够不用精度还会高一些。我需要准确到10uv。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-11-15 21:09:29 | 显示全部楼层
washu 发表于 2018-11-15 15:17
1、Datasheet 会给出 IO 的 Sink,Source 电流能力和相对 VCC、GND 的绝对值,以及 IO 的具体结构示意图 ...

按照你的说法,如果100v串联20k电阻接IO口,电流5mA应该不会烧IO口,是不是短时间(1秒内)接100v是可以的。这个是理论呢,还是有人这么使用过。
回复 支持 反对

使用道具 举报

     
发表于 2018-11-16 00:11:08 来自手机 | 显示全部楼层
io电压超过单片机供电电压,io口要加钳位二极管并限制最高输入电压,或采用隔离的办法。我试过没做隔离整死了几片单片机。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-11-16 01:56:34 | 显示全部楼层
io口加钳位二极管不适用高精度AD,二极管的漏电流太大,串联的电阻是可以加大到100k的。超电压的时间不会太久,10毫秒左右,会有继电器断开高电压的。但是单片机IO口要能够撑住10毫秒就好。

补充内容 (2018-11-16 10:40):
13#,你整死单片机IO口串联了多大的电阻,接了多大的电压才挂掉,分享一下。
回复 支持 反对

使用道具 举报

     
发表于 2018-11-16 08:22:40 | 显示全部楼层
hhh402 发表于 2018-11-15 18:17
我用的是STC8系列单片机,12位AD,AD采样速度700KHz,我就是要采集动态的交流电压用真有效值法计算交流 ...

10uV? 是因为信号小,还是你需要精密.

10uV*2^12=10uV*4096=40.96mV. 也就是,如果你用12BIT的ADC,精确到10uV,最大只能测量40.96mV

1.如果是信号小,这种情况, 你可以放大这信号, 由10uV~40.96mV放大到1mV~4.096V. 这时运放整流可以对mV级,736也可以.

2.如果你要求精密,2.5V~10uV  250000,这至少是5位的表了,12Bit的ADC是不行的了. 至少是18bit的ADC,而且还是高速,如果有会很贵.

其实STC的ADC,精度做不到12BIT,能精确到10bit就不错了,你看看它的非线性是几BIT,在常温范围内误差是几BIT

交流精密测量不如直流,成品表中,交流一般比直流低1,2个数量级

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-3-29 07:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表