exartemarte wrote:Does anyone know for sure whether the gpio ports - specifically the eight general purpose i/o pins - have protection diodes? If they do then we should only need series resistors to limit the current rather than potential dividers to limit the voltage.
I ask because I'm thinking about an application that may have eight inputs, as well as other circuitry. The cost of a few resistors is not an issue but space probably will be, and I'd rather use eight resistors than sixteen.
No, there are no protection diodes.
There are internal clamping diodes which protect against ESD, but that is for static discharge, not for continuous over voltage.
For those who do not understand the difference between the two:
Static electricity can have only a limited amount of energy. It is basically a capacitor which is discharged over the pins. The ESD protection standard specifies exactly how big a capacitor to which voltage and the discharge curve. A 100pF capacitor charged to 1000V will hold 0.5*c*v^2 = 0.00005 Watts. That is discharged over 1500 Ohms so that energy is released in about 30 micro seconds. Then it can start cooling down as there is no more energy. (see http://en.wikipedia.org/wiki/Electrostatic_discharge
A continuous voltage source can have infinite energy. Suppose you connect a 5V port which can deliver 25mA. The protection diode will clamp against 3.3V + diode drop of 0.3V. So the rest of the energy (5-3.6=1.4V) at 25mA should be 'removed' by the diode. Thus that diode will have to burn away 35mW watts every second. A factor 23.000.000 more then above.
(I hope I made no calculation errors above but you get the gist of it)