Add ILI9488 header file

This commit is contained in:
Gregory Nutt 2015-04-03 07:12:11 -06:00
parent 3311bdcecb
commit e9e386ac6e
2 changed files with 165 additions and 24 deletions

View File

@ -21,7 +21,7 @@ LCD Header files
Structures and APIs needed to work with LCD drivers are provided in
this header file. This header file also depends on some of the same
definitions used for the frame buffer driver as privided in
definitions used for the frame buffer driver as provided in
include/nuttx/video/fb.h.
struct lcd_dev_s
@ -106,7 +106,7 @@ Re-usable LCD drivers reside in the drivers/lcd directory:
ssd12989.c. Generic LCD driver for LCDs based on the Solomon Systech
SSD1289 LCD controller. Think of this as a template for an LCD driver
that you will proably ahve to customize for any particular LCD
that you will probably have to customize for any particular LCD
hardware. (see also configs/hymini-stm32v/src/ssd1289.c below).
st7567.c. LCD Display Module, ST7567, Univision Technology Inc. Used
@ -143,7 +143,7 @@ Re-usable LCD drivers reside in the drivers/lcd directory:
ssd1306.c. OLED Display Modules based on the SSD1306 controllers.
This includes the UG-2864HSWEG01 and UG2832HSWEG04, Both from Univision
Technology Inc. The latter is used with the OLED1 module that comes
with the Atmel SAM4l Xplained Pro board. Examplel usage:
with the Atmel SAM4l Xplained Pro board. Example usage:
configs/stm32f4discovery
configs/sam4l-xplained
@ -164,67 +164,72 @@ that makes then less re-usable:
configs/hymini-stm32v/src/ssd1289.c. See also drivers/lcd/ssd1298.c
above.
configs/stm32f4discovery/src/up_ssd1289.c. This examples is the
configs/stm32f4discovery/src/stm32_ssd1289.c. This examples is the
bottom half for the SSD1289 driver at drivers/lcd/ssd1289.c
configs/hymini-stm32v/src/ssd1289.c. See also drivers/lcd/ssd1298.c
above.
configs/shenzhou/src/up_ssd1289.c
configs/shenzhou/src/stm32_ssd1289.c
kwikstik-k40:
configs/kwikstik-k40/src/up_lcd.c. Don't waste your time. This is
configs/kwikstik-k40/src/k40_lcd.c. Don't waste your time. This is
just a stub.
Nokia LCD Drivers:
configs/olimex-lpc1766stk/src/up_lcd.c. This examples is the
configs/olimex-lpc1766stk/src/lpc17_lcd.c. This examples is the
bottom half for the driver at drivers/lcd/nokia6100.c.
This was never completedly debugged ... there are probably issues
This was never completely debugged ... there are probably issues
with that nasty 9-bit SPI interfaces.
HX8346:
configs/sam3u-ek/src/up_lcd.c. The SAM3U-EK developement board features
configs/sam3u-ek/src/sam_lcd.c. The SAM3U-EK development board features
a TFT/Transmissive color LCD module with touch-screen, FTM280C12D,
with integrated driver IC HX8346.
HX8347:
configs/pic32mx7mmb/src/up_mio283qt2.c. This driver is for the MI0283QT-2
configs/pic32mx7mmb/src/pic32_mio283qt2.c. This driver is for the MI0283QT-2
LCD from Multi-Inno Technology Co., Ltd. This LCD is based on the Himax
HX8347-D LCD controller.
ILI93xx and Similar:
configs/stm3210e-eval/src/up_lcd.c. This driver supports the following
configs/stm3210e-eval/src/stm32_lcd.c. This driver supports the following
LCDs:
1. Ampire AM-240320LTNQW00H
2. Orise Tech SPFD5408B
3. RenesasSP R61580
configs/stm3220g-eval/src/up_lcd.c and configs/stm3240g-eval/src/up_lcd.c.
configs/stm3220g-eval/src/stm32_lcd.c and configs/stm3240g-eval/src/smt32_lcd.c.
AM-240320L8TNQW00H (LCD_ILI9320 or LCD_ILI9321) and
AM-240320D5TOQW01H (LCD_ILI9325)
configs/shenzhou/src/up_ili93xx.c. Another ILI93xx driver.
configs/shenzhou/src/stm32_ili93xx.c. Another ILI93xx driver.
config/sam4e-ek/src/sam_ili9325.c. ILI9325 driver
config/sam4e-ek/src/sam_ili9341.c. ILI9341 driver
ILI9488
configs/samv71-xult/src/sam_ili9488.c
include/nuttx/lcd/ili9488.h
R61505U
configs/hymini-stm32v/src/up_r61505u.c
configs/hymini-stm32v/src/stm32_r61505u.c
Sharp Memory LCD:
configs/maple/src/up_lcd.c
configs/maple/src/stm32_lcd.c
OLEDs:
configs/stm32f4discovery/src/up_ug2864ambag01.c
configs/stm32f4discovery/src/up_ug2864hsweg01.c
configs/sam4l-xplained/src/up_ug2832hsweg04.c
configs/zp214xpa/src/up_ug2864ambag01.c
configs/stm32f4discovery/src/stm32_ug2864ambag01.c
configs/stm32f4discovery/src/stm32_ug2864hsweg01.c
configs/sam4l-xplained/src/sa,_ug2832hsweg04.c
configs/zp214xpa/src/lpc2148_ug2864ambag01.c
LCD controllers built-into the MCU:
@ -235,14 +240,14 @@ that makes then less re-usable:
Alphnumeric/segment LCD Displays:
configs/skp16c26/src/up_lcd.c. Untested alphanumeric LCD driver.
configs/pcblogic-pic32mx/src/up_lcd1602.c. LCD1602 is based on the
configs/skp16c26/src/m16c_lcd.c. Untested alphanumeric LCD driver.
configs/pcblogic-pic32mx/src/pic32mx_lcd1602.c. LCD1602 is based on the
Hitachi HD44780U LCD controller. This version of the driver
uses the PIC32MX PMP interface to control the LCD. As of this
writing, has *NOT* been verfied (mostly because I get bewildered
writing, has *NOT* been verified (mostly because I get bewildered
by all of the jumper wires). See include/nuttx/lcd/hd4478ou.h
for more information about LCD1602.
configs/sure-pic32mx/src/up_lcd1602.c. Another LCD1602 segment
configs/sure-pic32mx/src/pic32_lcd1602.c. Another LCD1602 segment
LCD. This is a bit-bang version of the driver and appears to
be fully functional. This version of the LCD1602 driver has
been verified and is working fine.
@ -259,4 +264,3 @@ graphics/
=========
See also the usage of the LCD driver in the graphics/ directory.

137
include/nuttx/lcd/ili9488.h Normal file
View File

@ -0,0 +1,137 @@
/****************************************************************************
* include/nuttx/lcd/ili9488.h
*
* Copyright (c) 2011, Atmel Corporation
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
*
* - Atmel's name may not be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
#ifndef __INCLUDE_NUTTX_LCD_ILI9488_H
#define __INCLUDE_NUTTX_LCD_ILI9488_H
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Level 1 Commands (from the display Datasheet) */
#define ILI9488_CMD_NOP 0x00
#define ILI9488_CMD_SOFTWARE_RESET 0x01
#define ILI9488_CMD_READ_DISP_ID 0x04
#define ILI9488_CMD_READ_ERROR_DSI 0x05
#define ILI9488_CMD_READ_DISP_STATUS 0x09
#define ILI9488_CMD_READ_DISP_POWER_MODE 0x0a
#define ILI9488_CMD_READ_DISP_MADCTRL 0x0b
#define ILI9488_CMD_READ_DISP_PIXEL_FORMAT 0x0c
#define ILI9488_CMD_READ_DISP_IMAGE_MODE 0x0d
#define ILI9488_CMD_READ_DISP_SIGNAL_MODE 0x0e
#define ILI9488_CMD_READ_DISP_SELF_DIAGNOSTIC 0x0f
#define ILI9488_CMD_ENTER_SLEEP_MODE 0x10
#define ILI9488_CMD_SLEEP_OUT 0x11
#define ILI9488_CMD_PARTIAL_MODE_ON 0x12
#define ILI9488_CMD_NORMAL_DISP_MODE_ON 0x13
#define ILI9488_CMD_DISP_INVERSION_OFF 0x20
#define ILI9488_CMD_DISP_INVERSION_ON 0x21
#define ILI9488_CMD_PIXEL_OFF 0x22
#define ILI9488_CMD_PIXEL_ON 0x23
#define ILI9488_CMD_DISPLAY_OFF 0x28
#define ILI9488_CMD_DISPLAY_ON 0x29
#define ILI9488_CMD_COLUMN_ADDRESS_SET 0x2a
#define ILI9488_CMD_PAGE_ADDRESS_SET 0x2b
#define ILI9488_CMD_MEMORY_WRITE 0x2c
#define ILI9488_CMD_MEMORY_READ 0x2e
#define ILI9488_CMD_PARTIAL_AREA 0x30
#define ILI9488_CMD_VERT_SCROLL_DEFINITION 0x33
#define ILI9488_CMD_TEARING_EFFECT_LINE_OFF 0x34
#define ILI9488_CMD_TEARING_EFFECT_LINE_ON 0x35
#define ILI9488_CMD_MEMORY_ACCESS_CONTROL 0x36
#define ILI9488_CMD_VERT_SCROLL_START_ADDRESS 0x37
#define ILI9488_CMD_IDLE_MODE_OFF 0x38
#define ILI9488_CMD_IDLE_MODE_ON 0x39
#define ILI9488_CMD_COLMOD_PIXEL_FORMAT_SET 0x3a
#define ILI9488_CMD_WRITE_MEMORY_CONTINUE 0x3c
#define ILI9488_CMD_READ_MEMORY_CONTINUE 0x3e
#define ILI9488_CMD_SET_TEAR_SCANLINE 0x44
#define ILI9488_CMD_GET_SCANLINE 0x45
#define ILI9488_CMD_WRITE_DISPLAY_BRIGHTNESS 0x51
#define ILI9488_CMD_READ_DISPLAY_BRIGHTNESS 0x52
#define ILI9488_CMD_WRITE_CTRL_DISPLAY 0x53
#define ILI9488_CMD_READ_CTRL_DISPLAY 0x54
#define ILI9488_CMD_WRITE_CONTENT_ADAPT_BRIGHTNESS 0x55
#define ILI9488_CMD_READ_CONTENT_ADAPT_BRIGHTNESS 0x56
#define ILI9488_CMD_WRITE_MIN_CAB_LEVEL 0x5e
#define ILI9488_CMD_READ_MIN_CAB_LEVEL 0x5f
#define ILI9488_CMD_READ_ABC_SELF_DIAG_RES 0x68
#define ILI9488_CMD_READ_ID1 0xda
#define ILI9488_CMD_READ_ID2 0xdb
#define ILI9488_CMD_READ_ID3 0xdc
/* Level 2 Commands (from the display Datasheet) */
#define ILI9488_CMD_INTERFACE_MODE_CONTROL 0xb0
#define ILI9488_CMD_FRAME_RATE_CONTROL_NORMAL 0xb1
#define ILI9488_CMD_FRAME_RATE_CONTROL_IDLE_8COLOR 0xb2
#define ILI9488_CMD_FRAME_RATE_CONTROL_PARTIAL 0xb3
#define ILI9488_CMD_DISPLAY_INVERSION_CONTROL 0xb4
#define ILI9488_CMD_BLANKING_PORCH_CONTROL 0xb5
#define ILI9488_CMD_DISPLAY_FUNCTION_CONTROL 0xb6
#define ILI9488_CMD_ENTRY_MODE_SET 0xb7
#define ILI9488_CMD_BACKLIGHT_CONTROL_1 0xb9
#define ILI9488_CMD_BACKLIGHT_CONTROL_2 0xba
#define ILI9488_CMD_HS_LANES_CONTROL 0xbe
#define ILI9488_CMD_POWER_CONTROL_1 0xc0
#define ILI9488_CMD_POWER_CONTROL_2 0xc1
#define ILI9488_CMD_POWER_CONTROL_NORMAL_3 0xc2
#define ILI9488_CMD_POWER_CONTROL_IDEL_4 0xc3
#define ILI9488_CMD_POWER_CONTROL_PARTIAL_5 0xc4
#define ILI9488_CMD_VCOM_CONTROL_1 0xc5
#define ILI9488_CMD_CABC_CONTROL_1 0xc6
#define ILI9488_CMD_CABC_CONTROL_2 0xc8
#define ILI9488_CMD_CABC_CONTROL_3 0xc9
#define ILI9488_CMD_CABC_CONTROL_4 0xca
#define ILI9488_CMD_CABC_CONTROL_5 0xcb
#define ILI9488_CMD_CABC_CONTROL_6 0xcc
#define ILI9488_CMD_CABC_CONTROL_7 0xcd
#define ILI9488_CMD_CABC_CONTROL_8 0xce
#define ILI9488_CMD_CABC_CONTROL_9 0xcf
#define ILI9488_CMD_NVMEM_WRITE 0xd0
#define ILI9488_CMD_NVMEM_PROTECTION_KEY 0xd1
#define ILI9488_CMD_NVMEM_STATUS_READ 0xd2
#define ILI9488_CMD_READ_ID4 0xd3
#define ILI9488_CMD_ADJUST_CONTROL_1 0xd7
#define ILI9488_CMD_READ_ID_VERSION 0xd8
#define ILI9488_CMD_POSITIVE_GAMMA_CORRECTION 0xe0
#define ILI9488_CMD_NEGATIVE_GAMMA_CORRECTION 0xe1
#define ILI9488_CMD_DIGITAL_GAMMA_CONTROL_1 0xe2
#define ILI9488_CMD_DIGITAL_GAMMA_CONTROL_2 0xe3
#define ILI9488_CMD_SET_IMAGE_FUNCTION 0xe9
#define ILI9488_CMD_ADJUST_CONTROL_2 0xf2
#define ILI9488_CMD_ADJUST_CONTROL_3 0xf7
#define ILI9488_CMD_ADJUST_CONTROL_4 0xf8
#define ILI9488_CMD_ADJUST_CONTROL_5 0xf9
#define ILI9488_CMD_SPI_READ_SETTINGS 0xfb
#define ILI9488_CMD_ADJUST_CONTROL_6 0xfc
#define ILI9488_CMD_ADJUST_CONTROL_7 0xff
#endif /* __INCLUDE_NUTTX_LCD_ILI9488_H */