123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- /*
- * File : drv_slcd_truly240240.c
- * COPYRIGHT (C) 2008 - 2016, RT-Thread Development Team
- *
- * Change Logs:
- * Date Author Notes
- * 2017Äê4ÔÂ28ÈÕ Urey the first version
- */
- #include <rtthread.h>
- #include <cache.h>
- #include "board.h"
- #include "drv_slcdc.h"
- #include <drv_gpio.h>
- #ifdef RT_USING_TRULY_TFT240240
- rt_uint32_t _truly_tft240240_cmd_table[]=
- {
- 0x2c2c0000,
- };
- struct slcd_data_table _truly_tft240240_data_table[] =
- {
- /* LCD init code */
- {SMART_CONFIG_CMD, 0x01}, //soft reset, 120 ms = 120 000 us
- {SMART_CONFIG_UDELAY, 20},
- {SMART_CONFIG_CMD, 0x11},
- {SMART_CONFIG_UDELAY, 10}, /* sleep out 50 ms */
- {SMART_CONFIG_CMD, 0x36},
- #ifdef CONFIG_TRULY_240X240_ROTATE_180
- {SMART_CONFIG_DATA, 0xd0}, //40
- #else
- {SMART_CONFIG_DATA, 0x00}, //40
- #endif
- {SMART_CONFIG_CMD, 0x2a},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0xef},
- {SMART_CONFIG_CMD, 0x2b},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0xef},
- {SMART_CONFIG_CMD, 0x3a},
- #if defined(CONFIG_SLCD_TRULY_18BIT) //if 18bit/pixel unusual. try to use 16bit/pixel
- {SMART_CONFIG_DATA, 0x06}, //6-6-6
- #else
- {SMART_CONFIG_DATA, 0x05}, //5-6-5
- #endif
- // {SMART_CONFIG_DATA, 0x55},
- {SMART_CONFIG_CMD, 0xb2},
- {SMART_CONFIG_DATA, 0x7f},
- {SMART_CONFIG_DATA, 0x7f},
- {SMART_CONFIG_DATA, 0x01},
- {SMART_CONFIG_DATA, 0xde},
- {SMART_CONFIG_DATA, 0x33},
- {SMART_CONFIG_CMD, 0xb3},
- {SMART_CONFIG_DATA, 0x10},
- {SMART_CONFIG_DATA, 0x05},
- {SMART_CONFIG_DATA, 0x0f},
- {SMART_CONFIG_CMD, 0xb4},
- {SMART_CONFIG_DATA, 0x0b},
- {SMART_CONFIG_CMD, 0xb7},
- {SMART_CONFIG_DATA, 0x35},
- {SMART_CONFIG_CMD, 0xbb},
- {SMART_CONFIG_DATA, 0x28}, //23
- {SMART_CONFIG_CMD, 0xbc},
- {SMART_CONFIG_DATA, 0xec},
- {SMART_CONFIG_CMD, 0xc0},
- {SMART_CONFIG_DATA, 0x2c},
- {SMART_CONFIG_CMD, 0xc2},
- {SMART_CONFIG_DATA, 0x01},
- {SMART_CONFIG_CMD, 0xc3},
- {SMART_CONFIG_DATA, 0x1e}, //14
- {SMART_CONFIG_CMD, 0xc4},
- {SMART_CONFIG_DATA, 0x20},
- {SMART_CONFIG_CMD, 0xc6},
- {SMART_CONFIG_DATA, 0x14},
- {SMART_CONFIG_CMD, 0xd0},
- {SMART_CONFIG_DATA, 0xa4},
- {SMART_CONFIG_DATA, 0xa1},
- {SMART_CONFIG_CMD, 0xe0},
- {SMART_CONFIG_DATA, 0xd0},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0x08},
- {SMART_CONFIG_DATA, 0x07},
- {SMART_CONFIG_DATA, 0x05},
- {SMART_CONFIG_DATA, 0x29},
- {SMART_CONFIG_DATA, 0x54},
- {SMART_CONFIG_DATA, 0x41},
- {SMART_CONFIG_DATA, 0x3c},
- {SMART_CONFIG_DATA, 0x17},
- {SMART_CONFIG_DATA, 0x15},
- {SMART_CONFIG_DATA, 0x1a},
- {SMART_CONFIG_DATA, 0x20},
- {SMART_CONFIG_CMD, 0xe1},
- {SMART_CONFIG_DATA, 0xd0},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0x00},
- {SMART_CONFIG_DATA, 0x08},
- {SMART_CONFIG_DATA, 0x07},
- {SMART_CONFIG_DATA, 0x04},
- {SMART_CONFIG_DATA, 0x29},
- {SMART_CONFIG_DATA, 0x44},
- {SMART_CONFIG_DATA, 0x42},
- {SMART_CONFIG_DATA, 0x3b},
- {SMART_CONFIG_DATA, 0x16},
- {SMART_CONFIG_DATA, 0x15},
- {SMART_CONFIG_DATA, 0x1b},
- {SMART_CONFIG_DATA, 0x1f},
- {SMART_CONFIG_CMD, 0x35}, // TE on
- {SMART_CONFIG_DATA, 0x00}, // TE mode: 0, mode1; 1, mode2
- // {SMART_CONFIG_CMD, 0x34}, // TE off
- {SMART_CONFIG_CMD, 0x29}, //Display ON
- /* set window size*/
- // {SMART_CONFIG_CMD, 0xcd},
- {SMART_CONFIG_CMD, 0x2a},
- {SMART_CONFIG_DATA, 0},
- {SMART_CONFIG_DATA, 0},
- {SMART_CONFIG_DATA, (239>> 8) & 0xff},
- {SMART_CONFIG_DATA, 239 & 0xff},
- #ifdef CONFIG_TRULY_240X240_ROTATE_180
- {SMART_CONFIG_CMD, 0x2b},
- {SMART_CONFIG_DATA, ((320-240)>>8)&0xff},
- {SMART_CONFIG_DATA, ((320-240)>>0)&0xff},
- {SMART_CONFIG_DATA, ((320-1)>>8) & 0xff},
- {SMART_CONFIG_DATA, ((320-1)>>0) & 0xff},
- #else
- {SMART_CONFIG_CMD, 0x2b},
- {SMART_CONFIG_DATA, 0},
- {SMART_CONFIG_DATA, 0},
- {SMART_CONFIG_DATA, (239>> 8) & 0xff},
- {SMART_CONFIG_DATA, 239 & 0xff},
- #endif
- {SMART_CONFIG_CMD, 0X2C}, //GRAM start writing
- };
- struct slcd_configure _truly_tft240240_config =
- {
- .width = 240,
- .height = 240,
- .fmt = RTGRAPHIC_PIXEL_FORMAT_RGB565,
- .bpp = 16,
- .bus_width = 8,
- .reg_width = 8,
- .refresh = 60,
- .reg_write_twice = 0,
- .rsply_cmd_high = 0,
- .csply_active_high = 0,
- /* write graphic ram command, in word, for example 8-bit bus, write_gram_cmd=C3C2C1C0. */
- .newcfg_fmt_conv = 1,
- .data_table = &_truly_tft240240_data_table[0],
- .data_table_num = sizeof(_truly_tft240240_data_table)/sizeof(_truly_tft240240_data_table[0]),
- .cmd_table = &_truly_tft240240_cmd_table[0],
- .cmd_table_num = sizeof(_truly_tft240240_cmd_table)/sizeof(_truly_tft240240_cmd_table[0])
- };
- int truly_tft240240_init(void)
- {
- /* reset lcd pane */
- gpio_direction_output(LCD_RST_PORT, LCD_RST_PIN, 0); //reset
- rt_thread_delay(rt_tick_from_millisecond(50));
- gpio_set_value(LCD_RST_PORT, LCD_RST_PIN, 1);
- rt_thread_delay(rt_tick_from_millisecond(50));
- /* enable backlight */
- gpio_direction_output(LCD_BLEN_PORT, LCD_BLEN_PIN,1);
- gpio_direction_output(LCD_BLPWM_PORT, LCD_BLPWM_PIN,1);
- /* init lcd & register lcd device */
- rt_hw_slcd_init(&_truly_tft240240_config);
- return 0;
- }
- #endif
|