Skip to content

davidjade/FT800-FT813

 
 

Repository files navigation

FT810-FT813, BT81x

This is a code library for EVE/EVE2/EVE3 graphics controller ICs from FTDI/Bridgetek:

http://www.ftdichip.com/EVE.htm

http://brtchip.com/eve/

http://brtchip.com/ft80x/

http://brtchip.com/ft81x/

https://brtchip.com/bt81x/

It contains code for and has been used with various mikro-controllers and displays.

I have used it so far with:

  • 8-Bit AVR, specifically the 90CAN series
  • Arduino, Uno, mini-pro, ESP8266
  • Renesas F1L RH850
  • Infineon Aurix TC222
  • ATSAMC21E18A (DMA)
  • ATSAME51J19A

I have reports of successfully using it with:

  • ATSAMV70
  • ATSAMD20
  • ATSAME4
  • STM32
  • MSP430
  • MSP432
  • some PICs
  • ESP32

The TFTs I have tested myself so far:

The examples in the "example_projects" drawer are for use with AtmelStudio7. For Arduino I am using PlatformIO with Visual Studio Code.

The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h. This is the only file that should need editing to customize the library to your needs.

  • Select the TFT attached by enabling one of the pre-defined setups in EVE_config.h.
  • Provide the pins used for Chip-Select and Power-Down in EVE_target.h for the target configuration you are using

When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialise the TFT work with the intended timing. For other plattforms you need to provide a DELAY_MS(ms) function that works between 1ms and 56ms at least and is at least not performing these delays shorter than requested. The DELAY_MS(ms) is only used during initialisation of the FT8xx/BT8xx See EVE_target.h for examples.

In Addition you need to initialise the pins used for Chip-Select and PowerDown in your hardware correctly to output. Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the init.

Originally the project went public in the German mikrocontroller.net forum, the thread contains some insight: https://www.mikrocontroller.net/topic/395608

Feel free to add to the discussion with questions or remarks.

A word of "warning", you have to take a little care yourself to for example not send more than 4kB at once to the command co-processor or to not generate display lists that are longer than 8kB. My library does not check and re-check the command-FIFO on every step. This is optimised for speed so the training wheels are off.

Note, with so many options to choose from now, FT80x support will be removed at some point in the future.

About

Multi-Plattform C code Library for FTDIs FT8xx GPUs (FT800, FT801, FT810, FT811, FT812, FT813)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 85.5%
  • C++ 14.5%