上图,这是华大的一个32位单片机IO口示意图,我们直接看框框里面的二级管,看看他们究竟是怎么保护的
假设我们供电VDD = 3.3V
那么当我输入5V时候,是什么状态呢;当输入5V时,若果二极管压降是0.7V,那么IO肯定电压是嵌位在4V,当你输入4V时,IO电压就会被嵌位成3.3V
在假设当你输入负电压时,假设输入-5V时,IO就会被嵌位在-0.7V,如下图
那么看了上面解释,我们就在想不论是嵌位在4V或者嵌位在-0.7V,那它多余的电压被谁承受了呢?
比如实际5V信号输入嵌位成4V,那1V的电压谁在承受?我们都知道输入进来都是有内阻的,那么这剩余的1V电压疾苦是加在内阻上;如果要说我是理想的5V进来没有内阻,如果是这样5V输入进来,很有可能就会把二极管烧掉
所以经过上面解释我们就知道为什么所有单片机IO基本都是有着两个二极管保护电路了
下面我们在看下正常数据手册标写的电气极性
我们首显就看到VIN电压,它要求最大的是VCC+0.3 ,如果是3.3供电,那么最大的3.6V,那么我们就可以推算出他二极管的压降是0.3V不是0.7V;
当然现实很残酷,有时候电压就会有4V或者5V这种,所以厂家设计人员也很贴心,如果超过则合格电压那么也有挽留机会,就是输入电流就小一点,给点面子,到这里我们就很明白原来很多不同电压的芯片为啥IO之间通讯要加串联一个电阻来进行通讯,兄弟们这时候我们知道上面参数,那么电流是不是也知道最大不能超过5mA,那么这个电阻是不是也能选取了
eg:一个5V的测量芯片,现在3.3v供电的单片机要去读取IO数据获取数据,那么我们就要DATA交上串联一个电阻,避免烧坏我们的单片机IO口
那么我们就可以计算 R > (1.4v/5mA) = R > 280欧姆
那么到这里基本乐意知道为什么很多IO之间都串1K或者500欧姆了