Cableado
Se debe considerar una limitante en las dimensiones del cableado empleado para conectar la placa de control (arduino MEGA, DUE, UNO o teensy 3.X) y la pantalla. La longitud màxima debe estar en el rango de 15 a 20 cms.
Las pantallas emplean un cable plano (Riverdi: 20 pines, HotMCU: 10 pines) y un adaptador. En el caso de RIverdi, se puede conseguir un shield que incluye un lector microSD, un amplificador de audio y un selector de alimentación de los leds de retroiluminación de la pantalla.
Esquema de conexiones
Pantalla FT8XX Arduino Due
MOSI 11
MISO 12
SCK 13
TFT-CS 10
SD-CS 5
La libreria GD2 funciona en el arduino Due empleando un porteo de señales SPI, hacia los pines 11, 12, 13 equivalentes al SPI del arduino UNO; es por esta razón que el shield gameduino 2 se puede conectar directamente sobre el arduino Due.
Para que la librería funcione en el arduino MEGA, se deben usar las lineas SPI 51, 50, 52; adicionando esta linea en el encabezado:
#include <EEPROM.h>
En el arduino Due no es necesario usarla.
Las lineas PD e INT, no ha sido necesario emplearlas, por lo menos en las pantallas Riverdi y la FT843 de 4D systems.
En las pantallas HotMCU hay que usar la linea INT, el forero ligthcalamar ha documentado su uso con la libreria, acá se puede revisar su trabajo
Parámetros de inicio para el chip FT813
La configuración para iniciar cada pantalla, debe corresponder al tipo de chip, es posible que existan ligeras variaciones entre cada chip, se deberá ajustar para cada caso y fabricante. En el caso de la pantalla: RVT50UQFNWC00 (FT813 5" de Riverdi)
Estos son los parámetros de configuración:
GDTR.wr32(REG_ROTATE, 1);
GD.wr32(REG_HCYCLE, 1056); // 900 //548
GD.wr32(REG_HOFFSET, 47); // 43
GD.wr32(REG_HSIZE, 800);
GD.wr32(REG_HSYNC0, 0);
GD.wr32(REG_HSYNC1, 10); // 41
GD.wr32(REG_VCYCLE, 525); // 500
GD.wr32(REG_VOFFSET, 23); // 12
GD.wr32(REG_VSIZE, 480);
GD.wr32(REG_VSYNC0, 0);
GD.wr32(REG_VSYNC1, 10);
GD.wr32(REG_PCLK, 2);
GD.wr32(REG_PCLK_POL, 1);
GD.wr32(REG_DITHER, 0); // 1
GD.wr32(REG_CSPREAD, 0); // 1
La instrucción:
GDTR.wr32(REG_ROTATE, 1);
Forma parte de la libreria gameduino 2, permite establecer la rotación inicial similar a la que tiene el shield gameduino 2 (es equivalente a establecer la rotación del chip FT81X en modo 1).