Tri-state buffer, on all MISO lines?

KrisKasprzak

Well-known member
All,

I have a 3.5" TFT display and I need to use the boards SD card, display and touch. Unfortunately I'm running into the inability to use display MISO and the SD card. The SD and the display SPI are shared but the touch is usign the UTOUCH lib and it's spi is on different pins. Normally I can get the 2.8" to fire right up, but the SD will not work if the display is used. Reason I need MISO for the display is so I can use my PrintScreen function to save the display to the SD card. I'm sure the issue is the infamous tri-state buffer problem and my tests confirm based on this page.

https://www.pjrc.com/better-spi-bus-design-in-3-steps/


I can put a buffer say the 74AHC1G125 as cited on the web page, on the display MISO, but do I need to put another buffer on the SD MISO as well?
 
Is the T_3.5 onboard the SD card in use? It has no common connections to SPI as it uses unique SDIO pins. Only an slower external SD on SPI could present this problem.
 
Every SD card I have used seems to be able to properly tri-stat its MISO pin.

But if you have any doubt, the way to check involves using only the SPI device in question with 2 resistors on the MISO pin, as I tried to describe in that article. If you measure half the power supply voltage when the device is idle, you can be confident its MISO pin is working properly. If the voltage stays stuck either high or low, that's a sure sign you need to add the tri-state buffer chip.
 
What Teensy is this? ... just noticed I saw 3.5" and assumed T_3.5 :(

okay ... so not using the native SDIO SD - but external on the display and it works fine alone, but causes grief when also using MISO to read back from display ...

They present unique pins on the device - but are wired back to the same SPI bus on Teensy ...

Do Touch and SD work together? Though with blocking SD - or during Touch testing - they likely don't overlap I/O but they don't interfere?

I had one 9488 (?) display where the display MISO wasn't tri-state and I just cut that connect, which won't work to read display as noted without p#3 mod Paul noted.
 
Oh well.

I got the buffer chip (74ahc1g125) and wired it up. The SD card works with display MISO connected so the buffer is disconnecting MISO correctly, but when code request data from the display the display's MISO is still not sending data--it always returns 0. My cheap scope shows only one pulse on MISO during readPixel() so I'm guessing the display is just not capable of reading display data.

Oh well...back to the trusty 2.8" units that I can get to work.
 
Back
Top