This project aims to control a small 320x240 TFT display module over USB using a Cypress EZ-USB FX2LP development board.
It is a proof of concept right now.
For an overview of the 40-pin display module pinout, see: http://www.rinkydinkelectronics.com/files/UTFT_Requirements.pdf
My display module has an SSD1289 controller and is marked "TFT_320QVT".
FX2LP Dev Board -> Display module (40-pin connector)
GND -> 1 (GND)
VCC -> 2 (VCC), 6 (RD), 19 (backlight)
CTL0 -> 5 (WR)
PA0 -> 17 (RESET)
PA1 -> 4 (RS aka data/command)
PA2 -> 15 (CS)
PB0 -> 21 (DB0)
PB1 -> 22 (DB1)
PB2 -> 23 (DB2)
PB3 -> 24 (DB3)
PB4 -> 25 (DB4)
PB5 -> 26 (DB5)
PB6 -> 27 (DB6)
PB7 -> 28 (DB7)
PD0 -> 7 (DB8)
PD1 -> 8 (DB9)
PD2 -> 9 (DB10)
PD3 -> 10 (DB11)
PD4 -> 11 (DB12)
PD5 -> 12 (DB13)
PD6 -> 13 (DB14)
PD7 -> 14 (DB15)
To rebuild the firmware, you will need a Linux system with sdcc and make installed. Run make in the firmware_source directory to generate a new firmware.ihx file in the build directory.
To get it to compile on Arch Linux, I had to change the type signature of putchar and getchar in fx2lib/include/serial.h to the following:
To build the host software, you can use go build on Windows.
Run fx2-usb-display.exe <x> <y>, where x and y are the top left corner of a 320x240 pixel screen area that will be copied to the display.
This software is licensed under the MIT License (see LICENSE file).
The firmware is based on fx2lib, which is licensed under the LGPL (see firmware_source/fx2lib/COPYING).