Library for Mini-DK board

Dependencies:   SPI_TFT_ILI9320

Dependents:   LPC1768_Mini-DK_EasyWeb_DM9161 LPC1768_Mini-DK LPC1768_Mini-DK

Fork of Mini-DK by Frank Vannieuwkerke

Mini-DK board overview (Micro SD connector is at the bottom side)

One serial interface , uses CP2102 (USB to RS232 interface, support ISP download )

RJ45-10/100M Ethernet network interface (Ethernet PHY: DM9161)

2.8 inch TFT color LCD interface (SPI interface or 16Bit parallel interface)

Touch panel controller XPT2046 (ADS7843 compatible)

USB 2.0 interface, USB host and USB Device interface.

TF SD / MMC card (SPI) interface.

Two user buttons, One Reset button and ISP button , One INT0 button, two user-programmable LED lights

Serial ISP download, Standard 20-pin JTAG download simulation debugging interface.

Selection between external 5V power supply or USB 5V supply.

Board size: 95mm * 78mm

All IO available on extension connectors

/media/uploads/frankvnk/mini-dk_top.jpg

04/01/13

Erik Olieman (http://mbed.org/users/Sissors/) joined the code development for the Mini-DK board.

Thanks to his input, we were able to obtain a tremendous speed gain, remove warnings, ...

An overview of all modifications is stored in modifs.h

The old page (http://mbed.org/users/frankvnk/code/LPC1768_Mini-DK/) contains the demo code.

IMPORTANT : Due to a change in the mbed libraries (Stream()), we cannot use the printf instruction - we need to use <SPI_TFT>.printf (example - see main.cpp in http://mbed.org/users/frankvnk/code/LPC1768_Mini-DK/)

WARNING: filetoflash (SD to CPU flash)

The SPI_TFT library contains an option to copy an image from the SD card to the CPU flash memory. This allows you to use an image as background without speed loss when writing other text and graphics.

By default, this option is enabled.

It can be disabled by uncommenting the #define mentioned below in Mini_DK.h:

#define NO_FLASH_BUFFER

Since the flash memory has limited write endurance, DO NOT use this feature when you intend to read multiple images from the SD card (eg: when used as a photo frame).

14/01/13

A newer version of the Mini-DK has been released by the manufacturer: Mini-DK2. They replaced the DM9161 PHY with a LAN8720A PHY and better buttons are fitted on the board. All other hardware remains the same. Code for this PHY is available from the NXP MCU SW application team. This allows us to use the mbed 'EthernetInterface' library with little modifications. Further info - see http://mbed.org/forum/mbed/topic/3684/?page=1#comment-18473.

Notes:

The code in 'lpc_phy_lan8720.c' uses 'msDelay' - needs to be replaced with 'osDelay'.

A custom MAC address can be defined using following code:

extern "C" void mbed_mac_address(char * mac) {
 
// define your own MAC Address
  mac[0] = 0x00;  
  mac[1] = 0x01;  
  mac[2] = 0x02;  
  mac[3] = 0x03;  
  mac[4] = 0x04;  
  mac[5] = 0x05;           
  
};
Committer:
frankvnk
Date:
Thu Jan 03 16:16:24 2013 +0000
Revision:
3:fb4d62b5ffb3
Parent:
2:d0acbd263ec7
Child:
7:ffdd4e75b366
Changes - see modifs.h

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frankvnk 2:d0acbd263ec7 1
frankvnk 2:d0acbd263ec7 2 #ifndef MBED_Touch_H
frankvnk 2:d0acbd263ec7 3 #define MBED_Touch_H
frankvnk 2:d0acbd263ec7 4
frankvnk 2:d0acbd263ec7 5 #include "SPI_TFT.h"
frankvnk 2:d0acbd263ec7 6 #include "mbed.h"
frankvnk 2:d0acbd263ec7 7
frankvnk 2:d0acbd263ec7 8 typedef struct
frankvnk 2:d0acbd263ec7 9 {
frankvnk 2:d0acbd263ec7 10 int x;
frankvnk 2:d0acbd263ec7 11 int y;
frankvnk 2:d0acbd263ec7 12 } Coordinate;
frankvnk 2:d0acbd263ec7 13
frankvnk 2:d0acbd263ec7 14 typedef struct
frankvnk 2:d0acbd263ec7 15 {
frankvnk 2:d0acbd263ec7 16 int An,
frankvnk 2:d0acbd263ec7 17 Bn,
frankvnk 2:d0acbd263ec7 18 Cn,
frankvnk 2:d0acbd263ec7 19 Dn,
frankvnk 2:d0acbd263ec7 20 En,
frankvnk 2:d0acbd263ec7 21 Fn,
frankvnk 2:d0acbd263ec7 22 Divider ;
frankvnk 2:d0acbd263ec7 23 } Matrix;
frankvnk 2:d0acbd263ec7 24
frankvnk 2:d0acbd263ec7 25 class TouchScreenADS7843 {
frankvnk 2:d0acbd263ec7 26 public:
frankvnk 2:d0acbd263ec7 27 Coordinate display;
frankvnk 2:d0acbd263ec7 28 Coordinate screen;
frankvnk 2:d0acbd263ec7 29
frankvnk 3:fb4d62b5ffb3 30 /*
frankvnk 3:fb4d62b5ffb3 31 * Create a Touchscreen object connected to SPI and two pins
frankvnk 3:fb4d62b5ffb3 32 *
frankvnk 3:fb4d62b5ffb3 33 * @param mosi,miso,sclk SPI
frankvnk 3:fb4d62b5ffb3 34 * @param cs pin connected to CS of ADS7843
frankvnk 3:fb4d62b5ffb3 35 * @param irq pin connected to IRQ of ADS7843
frankvnk 3:fb4d62b5ffb3 36 * @param pointer to SPI_TFT constructor
frankvnk 3:fb4d62b5ffb3 37 *
frankvnk 3:fb4d62b5ffb3 38 */
frankvnk 3:fb4d62b5ffb3 39 TouchScreenADS7843(PinName tp_mosi, PinName tp_miso, PinName tp_sclk, PinName tp_cs, PinName tp_irq, SPI_TFT *_LCD);
frankvnk 2:d0acbd263ec7 40
frankvnk 2:d0acbd263ec7 41 void TP_DrawPoint(unsigned int Xpos,unsigned int Ypos,unsigned int color);
frankvnk 3:fb4d62b5ffb3 42 unsigned char Read_Ads7846(Coordinate * screenPtr = NULL);
frankvnk 2:d0acbd263ec7 43 void TouchPanel_Calibrate(void);
frankvnk 2:d0acbd263ec7 44 unsigned char getDisplayPoint(void);
frankvnk 2:d0acbd263ec7 45
frankvnk 2:d0acbd263ec7 46 SPI_TFT *LCD;
frankvnk 2:d0acbd263ec7 47 SPI _tp_spi;
frankvnk 2:d0acbd263ec7 48 DigitalOut _tp_cs;
frankvnk 2:d0acbd263ec7 49 DigitalIn _tp_irq;
frankvnk 2:d0acbd263ec7 50
frankvnk 2:d0acbd263ec7 51 protected:
frankvnk 2:d0acbd263ec7 52
frankvnk 3:fb4d62b5ffb3 53 #define SPI_RD_DELAY 1
frankvnk 3:fb4d62b5ffb3 54 #define CHX 0xd0 // 12 bit mode
frankvnk 3:fb4d62b5ffb3 55 #define CHY 0x90
frankvnk 2:d0acbd263ec7 56
frankvnk 3:fb4d62b5ffb3 57 Coordinate DisplaySample[3];
frankvnk 3:fb4d62b5ffb3 58 Coordinate ScreenSample[3];
frankvnk 3:fb4d62b5ffb3 59 Matrix matrix;
frankvnk 3:fb4d62b5ffb3 60
frankvnk 3:fb4d62b5ffb3 61 void TP_GetAdXY(int *x,int *y);
frankvnk 2:d0acbd263ec7 62 int Read_XY(unsigned char XY);
frankvnk 2:d0acbd263ec7 63 void DrawCross(unsigned int Xpos,unsigned int Ypos);
frankvnk 2:d0acbd263ec7 64 unsigned char setCalibrationMatrix( Coordinate * displayPtr,Coordinate * screenPtr,Matrix * matrixPtr);
frankvnk 2:d0acbd263ec7 65
frankvnk 2:d0acbd263ec7 66 };
frankvnk 2:d0acbd263ec7 67 #endif