Lib for FTDI FT800 Graphic Controller EVE Support up to 512 x 512 pixel resolution. Resistive touch sense Mono audio output SPI Interface
Dependents: FT800_touch_track FT800_JPG
Library for the FT800 Display,Audio and Touch Controller from FTDI. The Code is based on the sample code from FTDI.
FT800 is a graphics chip with added features such as audio playback and touch capabilities. FT800 graphics consist of a rich set of graphics objects (primitive and widgets) that can be used for displaying various menus and screen shots.
http://www.ftdichip.com/Products/ICs/FT800.html
The mbed is talking thru the SPI interface with the graphic engine. We have to set up a list of Commands and send them to the FT800 to get graphics.
Hardware
1. VM800C development modules from FTDI : http://www.ftdichip.com/Products/Modules/VM800C.html
The modules come with different size lcd. 3.5", 4.3" or 5" or without. The picture shows a modified board, because my lcd had a different pinout. The mbed is connected to the pin header on the bottom.
2. EVBEVE-FT800 board from GLYN: http://www.glyn.com/News-Events/Newsletter/Newsletter-2013/October-2013/A-quick-start-for-EVE-Requires-no-basic-knowledge-graphics-sound-and-touch-can-all-be-learned-in-minutes
The module has a 40 pin flex cable connector to connect a display out of the EDT series.
The mbed is connected via the pin header on the left. If you use this board with a EDT display you have to uncomment the #define Inv_Backlite in FT_LCD_Type.h, because the backlight dimming is inverted.
3. ConnectEVE board from MikroElektronika http://www.mikroe.com/add-on-boards/display/connecteve/#headers_10 The board has also a pin header to connect the mbed. - not tested, but it looks like the other boards.
Connection
We need 5 signals to connect to the mbed. SCK, MOSI and MISO are connected to a SPI channel. SS is the chip select signal and PD work as powerdown. The additional INT signal is not used at the moment. It is possible to generate a interrupt signal, but at the moment you have to poll the status register of the FT800 to see if a command is finished.
Software
This lib is based on the demo code from FTDI. If you want to use it, you have to read the programming manual : http://www.ftdichip.com/Support/Documents/ProgramGuides/FT800%20Programmers%20Guide.pdf
See my demo : http://mbed.org/users/dreschpe/code/FT800_touch_track/
or the demo code from FTDI : http://www.ftdichip.com/Support/SoftwareExamples/EVE/FT800_SampleApp_1.0.zip
FT_DataTypes.h@2:ab74a9a05970, 2014-01-04 (annotated)
- Committer:
- dreschpe
- Date:
- Sat Jan 04 13:56:38 2014 +0000
- Revision:
- 2:ab74a9a05970
- Parent:
- 1:bd671a31e765
add doku
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dreschpe | 2:ab74a9a05970 | 1 | /* mbed Library for FTDI FT800 Enbedded Video Engine "EVE" |
dreschpe | 2:ab74a9a05970 | 2 | * based on Original Code Sample from FTDI |
dreschpe | 2:ab74a9a05970 | 3 | * ported to mbed by Peter Drescher, DC2PD 2014 |
dreschpe | 2:ab74a9a05970 | 4 | * Released under the MIT License: http://mbed.org/license/mit */ |
dreschpe | 2:ab74a9a05970 | 5 | |
dreschpe | 0:5e013296b353 | 6 | #ifndef _FT_DATATYPES_H_ |
dreschpe | 0:5e013296b353 | 7 | #define _FT_DATATYPES_H_ |
dreschpe | 0:5e013296b353 | 8 | |
dreschpe | 0:5e013296b353 | 9 | |
dreschpe | 0:5e013296b353 | 10 | #define FT_FALSE (0) |
dreschpe | 0:5e013296b353 | 11 | #define FT_TRUE (1) |
dreschpe | 0:5e013296b353 | 12 | |
dreschpe | 0:5e013296b353 | 13 | typedef char ft_char8_t; |
dreschpe | 0:5e013296b353 | 14 | typedef signed char ft_schar8_t; |
dreschpe | 0:5e013296b353 | 15 | typedef unsigned char ft_uchar8_t; |
dreschpe | 0:5e013296b353 | 16 | typedef ft_uchar8_t ft_uint8_t; |
dreschpe | 0:5e013296b353 | 17 | typedef short ft_int16_t; |
dreschpe | 0:5e013296b353 | 18 | typedef unsigned short ft_uint16_t; |
dreschpe | 0:5e013296b353 | 19 | typedef unsigned int ft_uint32_t; |
dreschpe | 0:5e013296b353 | 20 | typedef int ft_int32_t; |
dreschpe | 0:5e013296b353 | 21 | typedef void ft_void_t; |
dreschpe | 0:5e013296b353 | 22 | typedef long long ft_int64_t; |
dreschpe | 0:5e013296b353 | 23 | typedef unsigned long long ft_uint64_t; |
dreschpe | 0:5e013296b353 | 24 | typedef float ft_float_t; |
dreschpe | 0:5e013296b353 | 25 | typedef double ft_double_t; |
dreschpe | 0:5e013296b353 | 26 | typedef char ft_bool_t; |
dreschpe | 0:5e013296b353 | 27 | |
dreschpe | 0:5e013296b353 | 28 | #define FT_BYTE_SIZE (1) |
dreschpe | 0:5e013296b353 | 29 | #define FT_SHORT_SIZE (2) |
dreschpe | 0:5e013296b353 | 30 | #define FT_WORD_SIZE (4) |
dreschpe | 0:5e013296b353 | 31 | #define FT_DWORD_SIZE (8) |
dreschpe | 0:5e013296b353 | 32 | |
dreschpe | 0:5e013296b353 | 33 | #define FT_NUMBITS_IN_BYTE (1*8) |
dreschpe | 0:5e013296b353 | 34 | #define FT_NUMBITS_IN_SHORT (2*8) |
dreschpe | 0:5e013296b353 | 35 | #define FT_NUMBITS_IN_WORD (4*8) |
dreschpe | 0:5e013296b353 | 36 | #define FT_NUMBITS_IN_DWORD (8*8) |
dreschpe | 0:5e013296b353 | 37 | |
dreschpe | 0:5e013296b353 | 38 | #define ft_prog_uchar8_t ft_uchar8_t |
dreschpe | 0:5e013296b353 | 39 | #define ft_prog_char8_t ft_char8_t |
dreschpe | 0:5e013296b353 | 40 | #define ft_prog_uint16_t ft_uint16_t |
dreschpe | 0:5e013296b353 | 41 | |
dreschpe | 0:5e013296b353 | 42 | #define ft_random(x) (rand() % (x)) |
dreschpe | 0:5e013296b353 | 43 | |
dreschpe | 0:5e013296b353 | 44 | #define ft_pgm_read_byte_near(x) (*(x)) |
dreschpe | 0:5e013296b353 | 45 | #define ft_pgm_read_byte(x) (*(x)) |
dreschpe | 0:5e013296b353 | 46 | |
dreschpe | 0:5e013296b353 | 47 | #define ft_strcpy_P strcpy |
dreschpe | 0:5e013296b353 | 48 | #define ft_strlen_P strlen |
dreschpe | 0:5e013296b353 | 49 | |
dreschpe | 0:5e013296b353 | 50 | #define FT_DBGPRINT(x) printf(x) |
dreschpe | 1:bd671a31e765 | 51 | #define FT_PROGMEM const |
dreschpe | 0:5e013296b353 | 52 | |
dreschpe | 0:5e013296b353 | 53 | #define ft_pgm_read_byte_near(x) (*(x)) |
dreschpe | 0:5e013296b353 | 54 | #define ft_pgm_read_byte(x) (*(x)) |
dreschpe | 0:5e013296b353 | 55 | |
dreschpe | 0:5e013296b353 | 56 | #define ft_pgm_read_word(addr) (*(ft_int16_t*)(addr)) |
dreschpe | 0:5e013296b353 | 57 | |
dreschpe | 0:5e013296b353 | 58 | #endif /*_FT_DATATYPES_H_*/ |
dreschpe | 0:5e013296b353 | 59 | |
dreschpe | 0:5e013296b353 | 60 | |
dreschpe | 0:5e013296b353 | 61 | /* Nothing beyond this*/ |
dreschpe | 0:5e013296b353 | 62 | |
dreschpe | 0:5e013296b353 | 63 | |
dreschpe | 0:5e013296b353 | 64 | |
dreschpe | 0:5e013296b353 | 65 | |
dreschpe | 0:5e013296b353 | 66 | |
dreschpe | 0:5e013296b353 | 67 | |
dreschpe | 0:5e013296b353 | 68 |