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:
Sissors
Date:
Thu Jan 03 21:24:05 2013 +0000
Revision:
6:b547fb6c1095
Parent:
5:781a72d380a1
Child:
17:66c4e84d8571
Faster writing to LCD;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frankvnk 2:d0acbd263ec7 1 /*
frankvnk 3:fb4d62b5ffb3 2 Date : 31.12.12
frankvnk 3:fb4d62b5ffb3 3 Authors : Erik Olieman/Frank Vannieuwkerke
frankvnk 3:fb4d62b5ffb3 4 -----------------------------------------
frankvnk 3:fb4d62b5ffb3 5 Code readability and speed
frankvnk 3:fb4d62b5ffb3 6 1. created separate structure for mini-DK (base for library)
frankvnk 3:fb4d62b5ffb3 7 2. Removed wr_dat_only routine (uses 8 bit transfer = slow) in SPI_TFT
frankvnk 3:fb4d62b5ffb3 8 Replaced each wr_dat_only with
frankvnk 3:fb4d62b5ffb3 9 _spi.format(16,3);
frankvnk 3:fb4d62b5ffb3 10 .....
frankvnk 3:fb4d62b5ffb3 11 _spi.write(...);
frankvnk 3:fb4d62b5ffb3 12 .....
frankvnk 3:fb4d62b5ffb3 13 _spi.format(8,3);
frankvnk 3:fb4d62b5ffb3 14 3. Creation of Mini-DK.h with all declarations specific to the mini-DK board.
frankvnk 2:d0acbd263ec7 15
frankvnk 2:d0acbd263ec7 16
frankvnk 2:d0acbd263ec7 17 Removed reset pin from SPI_TFT (not needed - pin is connected to main reset).
frankvnk 2:d0acbd263ec7 18
frankvnk 2:d0acbd263ec7 19 Separated SPI_TFT from TouchADS7843
frankvnk 2:d0acbd263ec7 20
frankvnk 2:d0acbd263ec7 21 In main.cpp
frankvnk 2:d0acbd263ec7 22 -----------
frankvnk 2:d0acbd263ec7 23
frankvnk 3:fb4d62b5ffb3 24 TouchScreenADS7843 initialisation: pointer to SPI_TFT needed for calibration, drawcross and drawpoint routines.
frankvnk 3:fb4d62b5ffb3 25
frankvnk 3:fb4d62b5ffb3 26 Moved following global touch var declarations from main.cpp back to touch.cpp/.h
frankvnk 2:d0acbd263ec7 27 Matrix matrix;
frankvnk 2:d0acbd263ec7 28 Coordinate display;
frankvnk 2:d0acbd263ec7 29 Coordinate screen;
frankvnk 2:d0acbd263ec7 30 NOTE : i did not create a class with var readback, just used plain C notation.
frankvnk 2:d0acbd263ec7 31 These vars can be accessed from other code through <classname>.<varname>
frankvnk 2:d0acbd263ec7 32 example : TP.display.x
frankvnk 2:d0acbd263ec7 33 Only drawback : Each element of these vars needs to be initialised separately.
frankvnk 2:d0acbd263ec7 34 (initialisation of these vars is not possible with array notation).
frankvnk 2:d0acbd263ec7 35
frankvnk 2:d0acbd263ec7 36 In Touch.cpp/.h
frankvnk 2:d0acbd263ec7 37 ---------------
frankvnk 3:fb4d62b5ffb3 38 TouchScreenADS7843 constructor: added pointer to SPI_TFT - needed for calibration, drawcross and drawpoint routines.
frankvnk 3:fb4d62b5ffb3 39 If LCD calls are not needed, initialise TouchScreenADS7843 with NULL pointer for LCD.
frankvnk 2:d0acbd263ec7 40
frankvnk 3:fb4d62b5ffb3 41 Removed TP_Init - moved TP_init code to constructor.
frankvnk 2:d0acbd263ec7 42
frankvnk 2:d0acbd263ec7 43 Variables in call to TouchPanel_Calibrate, Read_Ads7846, getDisplayPoint are no longer needed.
frankvnk 2:d0acbd263ec7 44 Modified these routines accordingly in touch.cpp/.h (pointers no longer needed)
frankvnk 2:d0acbd263ec7 45 *** TouchPanel_Calibrate and getDisplayPoint already modified.
frankvnk 2:d0acbd263ec7 46
frankvnk 3:fb4d62b5ffb3 47 Read_Ads7846: is also called in TouchPanel_Calibrate (Touch.cpp) with other var.
frankvnk 3:fb4d62b5ffb3 48 Modified Read_Ads7846 to allow call with/without (parameter).
frankvnk 3:fb4d62b5ffb3 49 If called without (parameter) - screen variable is used, otherwise (parameter) is used.
frankvnk 3:fb4d62b5ffb3 50 in Touch.h - unsigned char Read_Ads7846(Coordinate * screenPtr); replaced with
frankvnk 3:fb4d62b5ffb3 51 unsigned char Read_Ads7846(Coordinate * screenPtr = NULL);
frankvnk 3:fb4d62b5ffb3 52 in Touch.cpp - if (screenPtr == NULL) screenPtr = &screen; added.
Sissors 5:781a72d380a1 53
Sissors 5:781a72d380a1 54
Sissors 5:781a72d380a1 55
Sissors 5:781a72d380a1 56 General cleaning:
Sissors 5:781a72d380a1 57 SPI_TFT::window function changed to use ints instead of unsigned ints, and made virtual to remove warnings.
Sissors 5:781a72d380a1 58 In SPI_TFT.cpp GraphicsDiplay initialization moved to front to remove warnings
Sissors 5:781a72d380a1 59 In Touch.cpp TFT pointer initialization moved to front to remove warnings
Sissors 5:781a72d380a1 60
Sissors 5:781a72d380a1 61 In Mini_DK.h
Sissors 5:781a72d380a1 62 ------------
Sissors 5:781a72d380a1 63 Added SD card pins
Sissors 5:781a72d380a1 64 Added two macros to enable/disable the LCD MISO pin, allowing use of both SD card and LCD
Sissors 6:b547fb6c1095 65
Sissors 6:b547fb6c1095 66
Sissors 6:b547fb6c1095 67 In SPI_TFT
Sissors 6:b547fb6c1095 68 ----------
Sissors 6:b547fb6c1095 69 Changed the SPI object to a BurstSPI object
Sissors 6:b547fb6c1095 70 All cases where large numbers of bytes were writting (filled rect, cls, etc) have been replaced by fastWrite functions for higher speed
Sissors 6:b547fb6c1095 71 mbed library updated to this century
Sissors 6:b547fb6c1095 72 Removed stream name from TextDisplay (not used in current mbed version)
Sissors 6:b547fb6c1095 73 Colorwheel stepsize reduced to 1 in main.cpp
Sissors 6:b547fb6c1095 74
Sissors 6:b547fb6c1095 75 Known issue: claim function for stdout does not work
Sissors 6:b547fb6c1095 76
frankvnk 2:d0acbd263ec7 77
frankvnk 2:d0acbd263ec7 78
frankvnk 2:d0acbd263ec7 79 General notes
frankvnk 2:d0acbd263ec7 80 -------------
frankvnk 3:fb4d62b5ffb3 81 lpc1768 SPI port - problem when using SD and TFT simultaneously - solution provided by Erik Olieman
frankvnk 2:d0acbd263ec7 82 see note http://mbed.org/comments/cr/83/2654/#c4768
frankvnk 3:fb4d62b5ffb3 83 Even faster SPI write : http://mbed.org/users/Sissors/code/BurstSPI/docs/600eecd89a78/BurstSPI_8cpp_source.html
frankvnk 2:d0acbd263ec7 84 */