It is obvious, that 3,3 V is a HIGH, and 0 V is a LOW at a GPIO input pin. But I am looking for the exact voltage thresholds for the GPIO input pins. I have a
Pi B+ and a
Watching this video (for an older Pi) I get:
- LOW: 0 - 1.19 V
- HIGH: 1.34 - 3.30 V
Based on this, I connected 1 V to the GPIO input. The GPIO was still a HIGH.
- VIL=0.8V means that if the output is Low it will be <= 0.8V.
- VIL=1.3V means that if the output is High it will be >= 1.3V
These values are coming from the BCM2835, which the Pi until B+ is having.
I continued reading this article:
- "Normally the voltage threshold is about 1.8V, but it isn't guaranteed; it can be anywhere between the maximum input low and minimum input high, that is, between about 0.8 and 2.0V."
These values are coming from the ARM1176JZF, which the Pi until B+ is having.
Looking at the table, I get:
- Input high voltage VIH > 2.00 V
- Input low voltage VIL < 0.80 V
So: what are the real thresholds? Are they coming from the BCM2835 or the ARM1176JZF? How about the Pi 2? Are the thresholds still the same as for the Pi B+?
EDIT: This article sais, "The GPIO pins are connected directly to the BCM2835 chip at the heart of the Raspberry Pi". Because of this I guess, the values are coming from the BCM2835 and they are 0,8 V and 2 V.
EDIT2: I using wiringPI with the following code to read the LOW/HIGH value:
gpio -g mode 21 in gpio -g read 21