DM-TFT28-103

DM-TFT28-103

Description

The DM-TFT28-103 display module, specifications and other resources are available from DisplayModule.com.

  • 2.8"
  • Resistive Touch Screen
  • SD-card slot
  • 262K color depth
  • 240x320
  • 8-bit interface
  • 4 LED backlit

The display module has a 40-pin connector and requires a shield (DM-ADTAU-001) to be compatible with Arduino pinning.

Pinning

The following pins are used (not including GND and VCC) when connected to the DM-ADTAU-001 adapter:

Arduino PinFunction
A0SPI MOSI for touch
A1SPI SCLK for touch
A2Display Reset
A3ChipSelect for display
A4Display Read/Write
A5Display Data/Command
D08-bit display interface
D18-bit display interface
D28-bit display interface
D38-bit display interface
D48-bit display interface
D58-bit display interface 1)
D68-bit display interface
D78-bit display interface
D8ChipSelect for touch
D9SPI MISO for touch
D10ChipSelect for SD Card and Touch Detect pin 2)
D11SPI MOSI for SD Card
D12SPI MISO for SD Card
D13SPI SCLK for SD Card

1) For LPC1549 some hardware settings are needed. Look at http://www.displaymodule.com/pages/mbed for details.

2) The functionallity of the D10 pin is controlled with the slider on the DM-ADTAU-001 adapter board. It must be in the SD_CS position for SD Card to work. The T_IRQ position does nothing (the driver does not use interrupts).

Compatibility

The display module has been tested with the following platforms:

PlatformComment
LPCXpresso1549The LPC1549 uses ports D0 and D1 for printf (STDIO_UART_RX and STDIO_UART_TX). Those two pins are part of the display's 8-bit interface. The direct consequence is that printf cannot be used in any code that uses this display.
EA LPC4088 QuickStart Board
with a LPC4088 QSB Base Board
Add comment

Software

There is a library to get you started with the displays:

Import libraryDmTftLibrary

Driver Library for our displays

To use the library:

main.cpp

#include "mbed.h"

#include "DmTftIli9325.h"
#include "DmTouch.h"

/* Displays with adapter */
#define DM_PIN_SPI_MOSI   A0
#define DM_PIN_SPI_MISO   D9
#define DM_PIN_SPI_SCLK   A1
#define DM_PIN_CS_TOUCH   D8
#define DM_PIN_CS_TFT     A3
#define DM_PIN_CS_SDCARD  D10

DmTftIli9325 tft;  /* DM_TFT28_103 and DM_TFT24_104 */

//DmTouch touch(DmTouch::DM_TFT28_103, DmTouch::Software); /* For LPC4088 QuickStart Board */
DmTouch touch(DmTouch::DM_TFT28_103);

DigitalInOut csTouch(DM_PIN_CS_TOUCH, PIN_OUTPUT, PullUp, 1);
DigitalInOut csDisplay(DM_PIN_CS_TFT, PIN_OUTPUT, PullUp, 1);
DigitalInOut csSDCard(DM_PIN_CS_SDCARD, PIN_OUTPUT, PullUp, 1);

int main() {
  tft.init();
  tft.drawString(20, 20, "x:");
  tft.drawString(100, 20, "y:");
  touch.init();
  while(true) {
    ...
  }
}


To use the SD Card instead of the Touch Screen include the SDFileSystem library in your project and initialize like this:

main.cpp

#include "mbed.h"

#include "DmTftIli9325.h"
#include "SDFileSystem.h"

/* Displays with adapter */
#define DM_PIN_SPI_MOSI      A0
#define DM_PIN_SPI_MISO      D9
#define DM_PIN_SPI_SCLK      A1
#define DM_PIN_CS_TOUCH      D8
#define DM_PIN_CS_TFT        A3
#define DM_PIN_CS_SDCARD     D10
#define DM_PIN_SD_SPI_MOSI   D11
#define DM_PIN_SD_SPI_MISO   D12
#define DM_PIN_SD_SPI_SCLK   D13

DmTftIli9325 tft;  /* DM_TFT28_103 and DM_TFT24_104 */

SDFileSystem sd(DM_PIN_SD_SPI_MOSI, DM_PIN_SD_SPI_MISO, DM_PIN_SD_SPI_SCLK, DM_PIN_CS_SDCARD, "sd"); // mosi,miso,clk,cs

DigitalInOut csTouch(DM_PIN_CS_TOUCH, PIN_OUTPUT, PullUp, 1);
DigitalInOut csDisplay(DM_PIN_CS_TFT, PIN_OUTPUT, PullUp, 1);
DigitalInOut csSDCard(DM_PIN_CS_SDCARD, PIN_OUTPUT, PullUp, 1);

int main() {
  const char* fname = "/sd/logop565.bmp";

  tft.init();
  
  while (true) {
    FILE *fp = fopen(fname, "r");
    if (fp != NULL) {
      ...
    }
  }
}


There are also some demo programs:

Import programdm_main

Shows how to use the display. Draws a bitmap from internal flash, some geometric shapes and some text

Import programdm_bubbles

Shows how to use the display. Draws circles that bounce around on the display.

Import programdm_calibrate

This application makes it possible to calibrate the touch screen. Note that the calibration data is not persistently saved. Either do the calibration on every startup or modify the default values in DmTouchCalibration.

Import programdm_touch

Shows how to use a display and the touch controller. Will display the X and Y coordinates of the current touch event.

Import programdm_sdcard_with_adapter

Shows how to use a display and the onboard SD Card. Requires a display module with an adapter

Import programdm_paint

Shows how to use a display and the touch controller. A very basic paint program.

Import programdm_calc

Shows how to use a display and the touch controller. A very basic calculator. Note that for some displays the LANDSCAPE define must be set for the layout to be correct.


Please log in to post comments.