Beaglebone Black TFT display

beagleboardbeaglebone blackdisplayspitft

Is there any way to connect to LCD display modules through SPI as can for example be done with the Rapberry Pi through the use of https://github.com/notro/fbtft/wiki. I would also like to use one with touch capabilities. I know that there are already capes with touch screens on but they are far more expensive than the LCD module that I want to use. The capes also seem to use a parallel connection instead of an SPI one which will of course give a better refresh rate but take up a lot of pins and I do not really need a fast refresh rate, just the pins.

UPDATE:
I should be able to manage without the pins used by the capes and I was thinking about using the http://za.rs-online.com/web/p/lcd-colour-displays/7812992/ module, would this be possible with any OS for the Beaglebone, I don't mind using Debian or Ubuntu, I would actually like to use Ubuntu considering the nice gui.

Best Answer

Electrically it is possible, the only thing you'll need to do is level-shifting from 1V8 to 3V3 since most of the displays use that voltage; the problem is that you won't have the image from the OS framebuffer appearing on the display, unless you find a display driver that does that (which AFAIK doesn't exist). Even if you find such driver, its refresh rate would be so slow that it wouldn't be useful for most typical uses (command line and GUI), not to mention it'd hog the processor to do that. But you could write a small program to transfer the framebuffer to the display when you want, or generate the images you want to show directly in the display from your program.

The capes use the DSS pins, which doesn't require work from the processor to periodically transfer the framebuffer to the display and is natively supported by the OS; also the fact that it uses parallel lines for each color bit and is intended to be wired with short length connections result in a throughput much higher than SPI can handle. To better understand the DSS interface, check out this material (it's for VGA, but the concepts are the same).

If you want to connect via DSS, you'll need to level-shift the VSYNC, HSYNC, DOTCLOCK and ENABLE pins, the 24 color pins, (R0-7, G0-7, B-07); those will be connected to the corresponding pins at the BeagleBone. And the CS, SDI, SDO and SCL pins for initialization; those would be connected to CS, MOSI, MISO and CLK of an SPI port. To initialize the display you'll have to output the init sequence that the display manufacturer dictates (you'll have to look at their website or ask them for it). You'll also need to read the display spec for other requirements and mode programming pins, and for instructions on how to drive the backlight.

For the touchscreen, notice that the display you mentioned doesn't have one, but there's a version with touchscreen for the same product. You'll need either that or to buy a separated touchscreen. To interface with it you'll need two ADC lines and an IRQ line, check out this reference.