I’m still experimenting with the Photon, Arduino Shield, and Adafruit’s TFT shield. Actually, I only want to switch off the backlight of the display. Therefore, you have to solder a jumper labeled Pin 3. Then you can use Digital 3 (i.e. WKP on Photon) to control the backlight. To test the installation I used the blink example. But, it won’t run. The other samples run, i.e. I can use the TFT in general. So, why I can’t switch off the backlight?
To find an answer I’ve done some measurements and found out that without any load the Shield Shield pin changes between 4.8V (HIGH) and 0V (LOW) while blinking. That’s OK! But, when I connect the Shield Shield and the TFT shield I measure 3V(HIGH) and 2,5V(LOW). The LOW level is much to high!?
OK, changed to Pin 6 or 7 (D1/SCL or D0/SDA) and everything is working, i.e. the display goes on and off (most likely because I2C has a different voltage translation). Also everything is OK if i go directly on the Photon Pins. I guess that this behavior has something to do with the TXB0108PWR doing the voltage translation.
So, I took a look on the schematic of the TFT shield:
There’s a small circuit to drive the backlight controller using a transistor and two resistors (follow PIN3). The resistors build a voltage divider and I can measure 2.5V on the TFT pin if not connected to the Shield Shield. If connected the TXB0108PWR seems not to pull down the potential to ground.
What is happening inside of the TXB0108PWR? Is LOW different to GND? Is the resulting LOW level build by subtraction of the nearly 5V and 2.5V? Maybe this is an issue of the Shield Shield or Lady Ada’s layout is too simple? Any ideas? TIA and