You have no items in your shopping cart.

Subtotal: 0.00

IDFT 8 Point DIT Using TMS320F2812 DSP

TMS320C6745 Evaluation Board

The TMS320C6745 Evaluation Board is specially designed for developers in dsp field as well as beginners. The kit is designed in such way that all the possible features of the DSP will be easily used by everyone.


The kit supports in Code Composer Studio3.3 and later, with XDS100 v1 USB Emulator which is done USB port.


TFT

A thin-film-transistor liquid-crystal display (TFT LCD) is a variant of a liquid-crystal display (LCD) that uses thin-film transistor (TFT) technology to improve image qualities such as addressability and contrast.


A TFT LCD is an active-matrix LCD, in contrast to passive-matrix LCDs or simple, direct-driven LCDs with a few segments. TFT LCDs are used in appliances including television sets, computer monitors, mobile phones, handheld video game systems, personal digital assistants, navigation systems and projectors.


TFT LCDs are also used in car instrument clusters because they allow the driver to customize the cluster, as well as being able to provide an analogue-like display with digital elements.


Basic SPI
void GLCD_SPI_Read_Write(unsigned char DataByte)

{

SPI_SPIDAT1 = DataByte;

while((SPI_SPIBUF & 0x20000000)==1);

}

/* Write Address Command(Index Reg.)(Use Device ID=0) */

void GLCD_Write_Command(unsigned int GLCD_Command)

{

GLCD_CS_LOW(); // Enable GLCD Interface

GLCD_SPI_Read_Write(0x70); // Sent Byte 1 = [Device ID Code:01110[0]]+[RS:0] + [R/W:0]

GLCD_SPI_Read_Write(0x00); // Sent Byte 2 = data 8 bit High Index Reg.: 0x00

GLCD_SPI_Read_Write(GLCD_Command); // Sent Byte 3 = data 8 bit Low index reg. : cmm

GLCD_CS_HIGH();

// Disable GLCD Interface

}

 

/* Write data to LCD (Use Device ID=0) */

void GLCD_Write_Data(unsigned int GLCD_Data)

{

GLCD_CS_LOW(); // Enable GLCD Interface

GLCD_SPI_Read_Write(0x72); // Byte 1 = [Device ID Code:01110[0]]+[RS:1] + [R/W:0]

GLCD_SPI_Read_Write(GLCD_Data >> 8); // Byte 2 = Data 8 bit High

GLCD_SPI_Read_Write(GLCD_Data); // Byte 3 = Data 8 bit Low

 

 

GLCD_CS_HIGH();

// Disable GLCD Interface

}

The TFTs are SPI Bus based which is a serial bus. So the number of pins in IC is very low. Total of 4 lines are required to interface it with TMS320C6745.


  • MISO (Master In Slave Out)
  • MOSI (Master Out Slave In)
  • SCK (Serial Clock)
  • CS (Chip Select)

As you know in synchronous serial communication there is a clock line (SCK in case of SPI) which synchronizes the transfer.


In additional we need two gpio for LCD backlight and LCD RESET.


The clock is always controlled by the MASTER. In our case the TMS320C6745 is the MASTER and the TFT LCD is a slave on the bus. SPI is full duplex that means data can be sent and received simultaneously.


Circuit Diagram to Interface SPI TFT with TMS320C6745
SPI TFT with TMS320C6745

LCD Reset is pull up 4.7k with 3.3v


LCD MISO connected to SPI0_MISO & pull up 4.7k with 3.3v


LCD MOSI connected to SPI0_MOSI & pull up 4.7k with 3.3v


LCD SCK connected to SPI0_CLK is pull up 4.7k with 3.3v


LCD CS connected to SPI0_CS (active low signal) is pull up 4.7k with 3.3v


LCD BL is connected to gpio.


This TFT only can interface through SPI only.


SPI TFT Interface Reference guide

NAME

DSP PIN

PORT

LCD RESET

29

GP1_0

LCD MISO

17

GP5_0

LCD MOSI

18

GP5_1

LCD SCK

11

GP5_2

LCD CS

30

GP1_1

LCD BL

31

GP1_2

 

TFT Interface using TMS320C6745 SPI Protocol

Most of TFT displays are available at SPI based protocol. In this example we are using SPI TFT from coineltech manufacturer. There are two kinds of things we need to send, command and data through SPI protocol function. We can drive the maximum clock 35 MHz from TMS320C6745. First of all initialize the SPI protocol for clock rate, character bit length and etc.., in this example gpio (GP1_0) used as reset, gpio (GP1_2) used as backlight, gpio (GP1_1) used as chip select, and others as normal SPI lines. Follow the instruction table given by TFT driver SPFD5408A to initialize the TFT display.


Timing Diagram of TFT
Timing Diagram of TFT

Device ID:


To write command - 0x70.

To write data - 0x72.


SPI C Code
About SPFD5408A

The SPFD5408A, a 262144-color System-on-Chip (SoC) driver LSI designed for small and medium sizes of TFT LCD display, is Capable of supporting up to 240xRGBx320 in resolution which can be achieved by the designated RAM for graphic data.


The 720-channel source driver has true 6-bit resolution, which Generates 64 Gamma-corrected values by an internal D/A Converter. The SPFD5408A is able to operate with low IO interface power supply up to 1.6V and incorporate with several charge pumps to generate various voltage levels that form an on-chip power management system for gate driver and source driver. The built-in timing controller in SPFD5408A can support several interfaces for the diverse request of medium or small size portable display. SPFD5408A provides system interfaces, which include 8-/9-/16-/18-bit parallel interfaces and serial interface (SPI), to configure system. Not only can the system interfaces be used to configure system, they can also access RAM at high speed for still picture display.


In addition, the SPFD5408A incorporates 6, 16, and 18-bit RGB interfaces for picture movement display. The SPFD5408A also supports a function to display eight colors and a standby mode for power control consideration


C Program to display an image in TFT

Title : Program to display an image in SPI TFT using TMS320C6745 kit

#include "stdio.h"

#include "c6745.h"

#include "../Header/c6745.h"

#include "../Header/c6745_led.h"

#include "../Header/c6745_gpio.h"

#include "TFT.h"

#include "Font.h"

 

int main(void)

{

// Start Initialize GLCD

Initial_Hardware();

GLCD_Init();

 

lcd_printStr_hor("Welcome to ",40,164,BRIGHT_YELLOW,BLACK); // Plot Text

lcd_printStr_hor("Pantech ProLabs Pvt Ltd",40,144,BRIGHT_YELLOW,BLACK);

 

lcd_printStr_hor("Chennai",40,124,BRIGHT_YELLOW,BLACK); // Plot Text

lcd_printStr_hor("www.pantechsolutions.net",40,104,BRIGHT_RED,BLACK); // Plot Text

 

BG_Color(BLACK);

plot_picture_hor((char *)logo1,100,164,110,90);

 

TFT_drawRectangle(1,1,239,319,BRIGHT_YELLOW);

 

while(1);

}