Understanding Raspberry Pi digital input and output ports
The Broadcom SOC (BCM2835 and BCM2836 in the Raspberry Pi Model 2-B) used to implement the Raspberry Pi is a CMOS device, and the I/O ports are driven by 3.3V logic gates. When connecting direct internal functionality such as digital I/O ports to the outside world or exposing them to the outside world via external wiring, there are risks involved. A single digital port might be programmatically configured to be an input or an output, and with a pull-up or pull-down termination. The ports are directly connected to the Pi SOC computer chip. These ports are static and load sensitive; the wrong load types and high voltages could potentially damage the CPU.
The following image shows a typical I/O port configuration for the digital I/O ports on this type of SOC. While there is an output-enable to turn on the port driver, the input buffer can always detect the logic level of the GPIO pin. Note that, in this typical implementation, there...