矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: hhh402

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

[复制链接]
     
 楼主| 发表于 2018-11-16 10:33:54 | 显示全部楼层
本帖最后由 hhh402 于 2018-11-16 10:43 编辑

有运算放大器,4级程控放大,ADC使用过采样达到18-20位,其实STC的ADC精度不高是老型号,最新STC8系列的ADC比老型号提高了很多很多,有AD正负电源以及AD参考电压三个独立的接口,老型号全部与数字部分共用,转换速度也提高到800KHz。采用过采样技术精度比中低端Σ-Δ型ADC 还要强。交流测量对精度要求不高,毕竟是不断变化的量。用12位AD直接采样就行了,对于直流电压才使用过采样18位。
回复 支持 反对

使用道具 举报

     
发表于 2018-11-17 14:28:56 | 显示全部楼层
本帖最后由 dukedz 于 2018-11-17 14:47 编辑

曾经使用 STM8 的 IO 直连 220 市电,检测过零点,IO 口串比较大的电阻就没问题(我接的是 2M Ohm)。
(相当于 火线 串电阻到单片机 IO 口,再通过单片机的地接 零线 构成回路。)
确保电流不会把 IO 口内部钳位二极管烧坏,或是抬高很多 VCC 电压就没问题。

如果 IO 口是 ADC 输入脚,且输入低于 0V,即使存在钳位,也会有 -0.x V 的电压,只不过读到的数依然是最小的 0 而已。(超过 VCC 同理。)

你在 12 楼打的比方,5 mA 100V 1S, 即使 IO 口内部钳位二极管不烧,VCC 电压也可能被抬高很多,具体要看有多少用电单位。或者是 VCC 也加 TVS 保护。
回复 支持 反对

使用道具 举报

     
发表于 2018-11-17 16:28:05 | 显示全部楼层
hhh402 发表于 2018-11-15 21:09
按照你的说法,如果100v串联20k电阻接IO口,电流5mA应该不会烧IO口,是不是短时间(1秒内)接100v是可以 ...

我不仅对 AVR 做过这种事,还对轮胎和德姨的数种 Σ-Δ ADC 做过这种事,也烧坏过几片轮胎的 ADC --- 电流太大了,烧死两片,烧得一片半身不遂

电流足够小就没事。

不过特定的,流入端口的电流会流到单片机的 VCC,如果你的电源没有考虑过这个问题,而这个电流足够大,会导致 VCC 变高,如果超过手册容许的极限值也会烧掉 MCU,尽管不一定烧掉 --- 我 tn13 误接到模拟 15V 那边去,电源直接过载报警,但 tn13 居然没烧坏。当然这是特例,不具有重复性。

所以如果你要这样用,除了保证流入(出)端口的电流足够小,还得保证你的电源考虑过有电流从单片机端口流到 VCC 继而流到电源的情况。

当然还是要重复,这些对 AVR 单片机的作死尝试不一定在死太惨上有效,你得自己看死太惨的数据,然后自己试一试嘛,死太惨比 AVR 可便宜多了。

回复 支持 反对

使用道具 举报

     
发表于 2018-11-17 16:50:41 | 显示全部楼层
hhh402 发表于 2018-11-16 01:56
io口加钳位二极管不适用高精度AD,二极管的漏电流太大,串联的电阻是可以加大到100k的。超电压的时间不会太 ...

ADC 通常不具有极高输入阻抗,因此钳位二极管的漏电对 ADC 来说没什么意义,甚至很多单片 ADC 自带钳位二极管,比如轮胎某款 24bit ADC,人家直接说清楚有这玩意,以及这对二极管漏电流可能有多大:
cr10922.png


AVR 的手册也明确指出存在输入的这对二极管:
cr10923.png



至于你的死太惨,你只有自己看它家手册看看有没有这玩意。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-11-18 12:21:00 | 显示全部楼层
本帖最后由 hhh402 于 2018-11-18 13:49 编辑

我知道ADC 通常不具有极高输入阻抗,我加了一级电压跟随做缓冲了,100v只是举例子,实际最大电压为+-2.5v,STC单片机手册没有提到自带钳位二极管,估计是有的,电流小于1uA吧,跟24位ADC不能比。VCC 电压也可能被抬高,具体高多少怎么计算?我采集+-2.5v的正弦波,正半周期正常采集,负半周期为0,可以计算了。
回复 支持 反对

使用道具 举报

     
发表于 2018-11-29 00:56:17 | 显示全部楼层
最好还是按手册要求吧!没必要折腾以外的,浪费时间
回复 支持 反对

使用道具 举报

     
发表于 2018-11-29 01:29:46 | 显示全部楼层
头脑中一定要清楚的一个概念:低于某单片机约定的低电平就是0;高于约定的高电平就是1;
单片机不会分析出这时你的电压具体是多少;
但你可以采取其他变通的方法,让单片机知道这些!
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2018-11-29 12:52:40 | 显示全部楼层
是ADC,模数转换。不是数字量,12位
回复 支持 反对

使用道具 举报

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

本版积分规则

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

蒙公网安备 15040402000005号

GMT+8, 2025-4-30 15:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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