mkarlsson

Driving the Adafruit 5" 800x480 TFT panel with an FPGA

11 posts in this topic

I have been playing with the 5" 800x480 TFT panel from Adafruit (https://www.adafruit.com/products/1680).
The panel is basically driven as a VGA display but with 24-bit RGB data and timing for 800x480 instead of 640x480. It's should be quite trivial to modify any existing VGA HDL block to drive this display instead of a VGA monitor. I chose to drive it with a 40 MHz DOTCLK (~80 Hz frame rate) just because I had that available, but that can be reduced to 30 MHz for close to 60 Hz frame rate.

To simplify the hookup I used a "TFT Friend" board from Adafruit, it has a pump-up constant-current driver to drive the LED backlight of the panel, and a 3.3V regulator for the TFT panel. No other hardware (besides some jumper wires and a pin header) were used.  Since R0-R7 and B0-B7 are located in a row on one side of the TFT Friend board I simply connected those signals directly to Wing C using a pin header. G0-7 and VSYNC, HSYNC, DE and DOTCLK are on the other side of the board and were wired to Wing B using jumper wires.  The TFT Friend board is powered by 5V and provides 3.3V to the panel.

 

Here it's shown hooked up to a Pipistrello board, but it's just as easy to hook it up to a Papilio One or Papilio Pro board using the TFT Friend board, a 16-pin header and a few jumper wires.

doom_tft2_small.JPG

 

 

To test the panel I ported the Pipistrello DOOM code to drive the panel instead of a DVI monitor.

doom_tft_small.JPG

Share this post


Link to post
Share on other sites

That looks good. I've been working on exactly the same thing. After I managed to get the VGA DAC chip on my DE2 working I realized dotclock type TFTs and OLEDs have the same interface. The issue is that every display I've got has a different pinout so I need to buy all the connectors and make some interface boards. Also the small ones usually need the SPI interface to initialize them and set the input to dot clock mode. Small 320x240 QVGA TFT panels can be had for less than $2 shipped though so they're practically free. I think it would be cool to build some small FPGA based arcade machines.

Share this post


Link to post
Share on other sites

Yeah, I also played with a smaller 240x320 TFT panel from Adafruit with capacitive touch (https://www.adafruit.com/products/2090) and even made a PCB for it.

 

The nice thing with this one is that the capacitive touchscreen has an I2C interface to it's easy to use with an FPGA.  The board will work with Papilio One/Pro and Pipistrello.

All signals are bought out to the wing headers so it can be used in SPI mode, 8/16/18-bit parallel mode or 8/16/18-bit DOTCLK mode (vsync/hsync/RGB).

 

Back side of the board (just a 3.3V regulator, a fet switch for back light control, a few resistors and the 50 pin connector):

tft-back.jpg

 

Front side (I added a few switches):

tft-front.jpg

 

Display:

tft1.jpg

 

I have a few left-over PCBs if anyone is interested in making one.

 

Magnus

Share this post


Link to post
Share on other sites

I also made a wing PCB for the Adafruit 5" or 7" display that can be used with Papilio or Pipistrello boards.  It uses wing signals A8-A14, B1-B7 and C0-C15.

The display is driven as a VGA display (24 bit RGB, HSYNC, VSYNC, DE, DOTCLK etc.) at 32 MHz pixel clock and it's easy to modify an existing VGA controller to drive the display.

 

The PCB has no components/traces on the top side and uses surface mount pin headers so the display can be mounted flush to the PCB using double-sticky tape. 

It uses the same components as the Adafruit "TFT Friend" board.

 

Let me know if anyone is interested in a PCB.

 

Pictures:

 

tft_friend.jpg

tft_wing_1.jpg

tft_wing_2.jpg

tft_wing_3.jpg

Share this post


Link to post
Share on other sites

Thanks!

 

Again, if anyone is interested in a blank PCB just let me know, I have a few left over. 

If there are demand for populated boards then I will add it to the Saanlima web shop as a product.

 

Magnus

Share this post


Link to post
Share on other sites

Surface mount is a piece of cake, all you need is a soldering iron, some liquid flux and some wick to clean up any solder bridges that form. Pretty hard to do anything with electronics these days without doing SMT work.

Share this post


Link to post
Share on other sites

yeah i know. i probably should find some old boards to play with and practice. its just those 0402's and 0603's are tiny. 1005's are right at the range i can even make out what it is, and my hands arent as steady as they were back in the mid 90's.

 

atm i do repairs on my own old arcade pcb's which are mostly pth so no issue there.

Share this post


Link to post
Share on other sites

It is looking a nice and cool. Thanks for sharing it with us. i want to work on this for my future projects.After I managed to get the VGA DAC chip on my DE2 working I realized dotclock type TFTs and OLEDs have the same interface.

The issue is that every display I've got has a different pinout so I need to buy all the connectors and make some interface boards. Also the small ones usually need the SPI interface to initialize them and set the input to dot clock mode.  I think it would be cool to build some small FPGA based arcade machines.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now