GPIO内部具有钳位保护二极管,如图所示。其作用是防止从外部I/O管脚输入的电压过高或者过低造成内部电路损坏。如果从Pin输入的信号(假设任何输入信号都有一定的内阻)电压超过VDD加上上方二极管的导通压降(驾驶0.7V),则二极管导通,会把多于的电流引到VDD,而真正输入到内部的信号电压不会超过VDD+0.7V。同理,如果从Pin输入的信号电压低于VSS,则由于下方二极管的作用,会把实际输入内部的信号电压钳制在VSS-0.7V左右。
正如我们电脑的内存条和某些走PCI总线的设备就是因为没有这种保护电路才不支持热插拔,因为在刚上电或者产生某种特殊情况可能会导致输入电压突然很高,有几率损坏内部电路。
为什么他们的硬件设计中不加入这种机制呢?众所周知,内存是高速设备,其数据的传输速率可达几GB/s,这时候如果加这种保护电路就会对数据传输速率产生较大的影响(不是学硬件的所以具体原因未知,希望前辈能指点迷津,不胜感激)。