<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Problem 16 bit tft configuration in LPC1788 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Problem-16-bit-tft-configuration-in-LPC1788/m-p/523409#M6045</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by aaram on Thu Feb 06 22:52:30 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi to all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have configured 7 inches tft LCD with LPC1788 controller for 24 bit and it is working without any problem. but now i need to reconfigure it to 16bit. So I changed the value of BPP in LCD control register to 6 from 5. Now the letters and all the shapes in tft lcd got bigger(doubled).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When iam using 24bit in LCD I was using two hynix sdram of&amp;nbsp; size 16Mx16 each. Now i reduced it to one. But stil it is not working. Can someone please me on this issue........&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SDRAM CONFIGURATION:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DYN_CONTROL_NOP_COMMAND0x00000183 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DYN_CONTROL_PALL_COMMAND0x00000103 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DYN_CONTROL_MODE_COMMAND 0x00000083&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DYN_CONTROL_NORMAL_COMMAND 0x00000000 &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define EMC_CLOCK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define NANO_SEC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1/1000000000)&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define NS_TO_CLKS(ns) ( (uint32_t)( (double)(ns) * EMC_CLOCK * NANO_SEC ) + 1 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SDRAM_BASE_ADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xA0000000&amp;nbsp;&amp;nbsp; /* CS0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define REFRESH_TIME_MAX 0X7FF&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void sdram_initialization (void){&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned long Dummy;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;PCONP |= (1&amp;lt;&amp;lt;11);&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;emc_sdram_pin_allocation ();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCDLYCTL = 0x00080808;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_CONTROL = 0x00000001;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_CONFIG&amp;nbsp; = 0x00000000;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCCLKSEL=0;&amp;nbsp;&amp;nbsp;&amp;nbsp; //60 MHZ &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_REFERESH&amp;nbsp;&amp;nbsp;&amp;nbsp; = REFRESH_TIME_MAX;/*260 usec*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_RASCAS0&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0X00000303;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_READ_CONFIG = 0x00000001; /* Command delayed strategy, using EMCCLKDELAY */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_RP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(18);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_RAS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(42);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_SREX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_APR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_DAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2+NS_TO_CLKS(18);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_WR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_RC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(63);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_RFC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 4;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_XSR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_RRD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(15);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_MRD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_CONFIG0&amp;nbsp;&amp;nbsp; =&amp;nbsp; (1&amp;lt;&amp;lt;10) | (1&amp;lt;&amp;lt;9) | (1&amp;lt;&amp;lt;7);/* 256Mb, 16Mx16, 4 banks, row=13, column=9, RBC */\&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONTROL&amp;nbsp;&amp;nbsp;&amp;nbsp; = DYN_CONTROL_NOP_COMMAND;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; delay_in_millisecond(100);&amp;nbsp; /* wait 100ms */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONTROL&amp;nbsp;&amp;nbsp;&amp;nbsp; = DYN_CONTROL_PALL_COMMAND;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;delay_in_millisecond(500);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_REFERESH&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(7812)&amp;gt;&amp;gt;4;&amp;nbsp; //30&amp;nbsp;&amp;nbsp; 64ms/8192=7812 nsec&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONTROL&amp;nbsp;&amp;nbsp;&amp;nbsp; = DYN_CONTROL_MODE_COMMAND; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dummy = *((volatile uint32_t *)(SDRAM_BASE_ADDRESS | (0x33&amp;lt;&amp;lt;12)));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;delay_in_millisecond(100);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONTROL&amp;nbsp;&amp;nbsp;&amp;nbsp; = DYN_CONTROL_NORMAL_COMMAND;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONFIG0 |= 0x80000; /* enable buffer */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;delay_in_millisecond(100);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;7 INCHES TFT LCD CONFIGURATION:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_H_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 800&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_H_PULSE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_H_FRONTPORCH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_H_BACKPORCH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 45&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_V_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 480&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_V_PULSE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_V_FRONTPORCH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_V_BACKPORCH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define LCD_EN (1&amp;lt;&amp;lt;0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define BPP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define LCDTFT (1&amp;lt;&amp;lt;5)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define BGR&amp;nbsp;&amp;nbsp;&amp;nbsp; (1&amp;lt;&amp;lt;8)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define LCDPWR (1&amp;lt;&amp;lt;11)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define IVS&amp;nbsp;&amp;nbsp;&amp;nbsp; (1&amp;lt;&amp;lt;11)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define IHS&amp;nbsp;&amp;nbsp;&amp;nbsp; (1&amp;lt;&amp;lt;12)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define BCD&amp;nbsp;&amp;nbsp;&amp;nbsp; (1&amp;lt;&amp;lt;26)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void glcd_initialization (){&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned long i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned long *pDst = (unsigned long *)LCD_VRAM_BASE_ADDR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//&amp;nbsp; IOCON_P0_4&amp;nbsp;&amp;nbsp; = LCD_RED; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//IOCON_P0_5&amp;nbsp;&amp;nbsp; = LCD_RED;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P4_28&amp;nbsp; = LCD_RED;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P4_29&amp;nbsp; = LCD_RED; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_6&amp;nbsp;&amp;nbsp; = LCD_RED;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_7&amp;nbsp;&amp;nbsp; = LCD_RED;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_8&amp;nbsp;&amp;nbsp; = LCD_RED;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_9&amp;nbsp;&amp;nbsp; = LCD_RED;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P0_6&amp;nbsp;&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P0_7&amp;nbsp;&amp;nbsp; = LCD_GREEN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_20&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_21&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_22&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_23&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_24&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_25&amp;nbsp; = LCD_GREEN; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P0_8&amp;nbsp;&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P0_9&amp;nbsp;&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P2_12&amp;nbsp; = LCD_BLUE ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_13&amp;nbsp; = LCD_BLUE ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_26&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_27&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_28&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_29&amp;nbsp; = LCD_BLUE ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_2&amp;nbsp;&amp;nbsp; = LCD_DCLK ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_5&amp;nbsp;&amp;nbsp; = LCD_HSYNC;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_3&amp;nbsp;&amp;nbsp; = LCD_VSYNC;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_4&amp;nbsp;&amp;nbsp; = LCD_LCDDEN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_0&amp;nbsp;&amp;nbsp; = LCD_PWR;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PCONP |= 1&amp;lt;&amp;lt;0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG &amp;amp;= 0; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG |= (BPP&amp;lt;&amp;lt;1)|LCDTFT;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG &amp;amp;= ~BGR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG &amp;amp;= ~LCDPWR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG &amp;amp;= 0; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG |=(5&amp;lt;&amp;lt;0)|1&amp;lt;&amp;lt;6; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG |=IVS|IHS|BCD;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG |= (TFT_H_SIZE-1)&amp;lt;&amp;lt;16;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG |=(0&amp;lt;&amp;lt;27); &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;LCD_CFG = 7 ;// 120000000 / ((unsigned long) C_GLCD_PIX_CLK); 15 MHZ&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*Refresh time 41msec*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG&amp;nbsp; &amp;amp;= 0; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG |= (TFT_H_BACKPORCH - 1)&amp;lt;&amp;lt;24;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG |= (TFT_H_FRONTPORCH - 1)&amp;lt;&amp;lt;16;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG |= (TFT_H_PULSE - 1)&amp;lt;&amp;lt;8;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG |= ((TFT_H_SIZE/16) - 1)&amp;lt;&amp;lt;2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG&amp;nbsp; &amp;amp;= 0;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG |= (TFT_V_BACKPORCH)&amp;lt;&amp;lt;24;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG |= (TFT_V_FRONTPORCH)&amp;lt;&amp;lt;16;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG |= (TFT_V_PULSE - 1)&amp;lt;&amp;lt;10;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG |= TFT_V_SIZE - 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_UPBASE_REG = LCD_VRAM_BASE_ADDR &amp;amp; ~7UL ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_LPBASE_REG = LCD_VRAM_BASE_ADDR &amp;amp; ~7UL ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for( i = 0; (TFT_H_SIZE * TFT_V_SIZE) &amp;gt; i; i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; *pDst++ = White;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; for(i = 10000; i; i--);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//LCD_CTRL_REG |= LCDPWR| LCD_EN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG |= LCDPWR;//| LCD_EN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void lcd_powerenable(){&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG |= LCD_EN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void lcd_powerdisable(){&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG &amp;amp;= LCD_EN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:01:34 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:01:34Z</dc:date>
    <item>
      <title>Problem 16 bit tft configuration in LPC1788</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Problem-16-bit-tft-configuration-in-LPC1788/m-p/523409#M6045</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by aaram on Thu Feb 06 22:52:30 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi to all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have configured 7 inches tft LCD with LPC1788 controller for 24 bit and it is working without any problem. but now i need to reconfigure it to 16bit. So I changed the value of BPP in LCD control register to 6 from 5. Now the letters and all the shapes in tft lcd got bigger(doubled).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When iam using 24bit in LCD I was using two hynix sdram of&amp;nbsp; size 16Mx16 each. Now i reduced it to one. But stil it is not working. Can someone please me on this issue........&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SDRAM CONFIGURATION:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DYN_CONTROL_NOP_COMMAND0x00000183 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DYN_CONTROL_PALL_COMMAND0x00000103 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DYN_CONTROL_MODE_COMMAND 0x00000083&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define DYN_CONTROL_NORMAL_COMMAND 0x00000000 &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define EMC_CLOCK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define NANO_SEC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1/1000000000)&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define NS_TO_CLKS(ns) ( (uint32_t)( (double)(ns) * EMC_CLOCK * NANO_SEC ) + 1 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define SDRAM_BASE_ADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xA0000000&amp;nbsp;&amp;nbsp; /* CS0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define REFRESH_TIME_MAX 0X7FF&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void sdram_initialization (void){&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned long Dummy;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SC-&amp;gt;PCONP |= (1&amp;lt;&amp;lt;11);&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;emc_sdram_pin_allocation ();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCDLYCTL = 0x00080808;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_CONTROL = 0x00000001;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_CONFIG&amp;nbsp; = 0x00000000;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;EMCCLKSEL=0;&amp;nbsp;&amp;nbsp;&amp;nbsp; //60 MHZ &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_REFERESH&amp;nbsp;&amp;nbsp;&amp;nbsp; = REFRESH_TIME_MAX;/*260 usec*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_RASCAS0&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0X00000303;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_READ_CONFIG = 0x00000001; /* Command delayed strategy, using EMCCLKDELAY */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_RP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(18);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_RAS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(42);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_SREX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_APR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_DAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2+NS_TO_CLKS(18);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_WR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_RC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(63);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_RFC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 4;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_XSR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_RRD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(15);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_MRD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EMC_DYN_CONFIG0&amp;nbsp;&amp;nbsp; =&amp;nbsp; (1&amp;lt;&amp;lt;10) | (1&amp;lt;&amp;lt;9) | (1&amp;lt;&amp;lt;7);/* 256Mb, 16Mx16, 4 banks, row=13, column=9, RBC */\&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONTROL&amp;nbsp;&amp;nbsp;&amp;nbsp; = DYN_CONTROL_NOP_COMMAND;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; delay_in_millisecond(100);&amp;nbsp; /* wait 100ms */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONTROL&amp;nbsp;&amp;nbsp;&amp;nbsp; = DYN_CONTROL_PALL_COMMAND;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;delay_in_millisecond(500);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_REFERESH&amp;nbsp;&amp;nbsp;&amp;nbsp; = NS_TO_CLKS(7812)&amp;gt;&amp;gt;4;&amp;nbsp; //30&amp;nbsp;&amp;nbsp; 64ms/8192=7812 nsec&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONTROL&amp;nbsp;&amp;nbsp;&amp;nbsp; = DYN_CONTROL_MODE_COMMAND; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dummy = *((volatile uint32_t *)(SDRAM_BASE_ADDRESS | (0x33&amp;lt;&amp;lt;12)));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;delay_in_millisecond(100);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONTROL&amp;nbsp;&amp;nbsp;&amp;nbsp; = DYN_CONTROL_NORMAL_COMMAND;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EMC_DYN_CONFIG0 |= 0x80000; /* enable buffer */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;delay_in_millisecond(100);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;7 INCHES TFT LCD CONFIGURATION:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_H_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 800&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_H_PULSE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_H_FRONTPORCH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_H_BACKPORCH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 45&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_V_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 480&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_V_PULSE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_V_FRONTPORCH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define TFT_V_BACKPORCH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define LCD_EN (1&amp;lt;&amp;lt;0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define BPP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define LCDTFT (1&amp;lt;&amp;lt;5)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define BGR&amp;nbsp;&amp;nbsp;&amp;nbsp; (1&amp;lt;&amp;lt;8)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define LCDPWR (1&amp;lt;&amp;lt;11)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define IVS&amp;nbsp;&amp;nbsp;&amp;nbsp; (1&amp;lt;&amp;lt;11)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define IHS&amp;nbsp;&amp;nbsp;&amp;nbsp; (1&amp;lt;&amp;lt;12)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#define BCD&amp;nbsp;&amp;nbsp;&amp;nbsp; (1&amp;lt;&amp;lt;26)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void glcd_initialization (){&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned long i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned long *pDst = (unsigned long *)LCD_VRAM_BASE_ADDR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//&amp;nbsp; IOCON_P0_4&amp;nbsp;&amp;nbsp; = LCD_RED; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//IOCON_P0_5&amp;nbsp;&amp;nbsp; = LCD_RED;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P4_28&amp;nbsp; = LCD_RED;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P4_29&amp;nbsp; = LCD_RED; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_6&amp;nbsp;&amp;nbsp; = LCD_RED;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_7&amp;nbsp;&amp;nbsp; = LCD_RED;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_8&amp;nbsp;&amp;nbsp; = LCD_RED;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_9&amp;nbsp;&amp;nbsp; = LCD_RED;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P0_6&amp;nbsp;&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P0_7&amp;nbsp;&amp;nbsp; = LCD_GREEN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_20&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_21&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_22&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_23&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_24&amp;nbsp; = LCD_GREEN;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_25&amp;nbsp; = LCD_GREEN; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P0_8&amp;nbsp;&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P0_9&amp;nbsp;&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// IOCON_P2_12&amp;nbsp; = LCD_BLUE ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_13&amp;nbsp; = LCD_BLUE ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_26&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_27&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_28&amp;nbsp; = LCD_BLUE ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P1_29&amp;nbsp; = LCD_BLUE ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_2&amp;nbsp;&amp;nbsp; = LCD_DCLK ; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_5&amp;nbsp;&amp;nbsp; = LCD_HSYNC;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_3&amp;nbsp;&amp;nbsp; = LCD_VSYNC;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_4&amp;nbsp;&amp;nbsp; = LCD_LCDDEN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IOCON_P2_0&amp;nbsp;&amp;nbsp; = LCD_PWR;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;PCONP |= 1&amp;lt;&amp;lt;0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG &amp;amp;= 0; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG |= (BPP&amp;lt;&amp;lt;1)|LCDTFT;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG &amp;amp;= ~BGR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG &amp;amp;= ~LCDPWR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG &amp;amp;= 0; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG |=(5&amp;lt;&amp;lt;0)|1&amp;lt;&amp;lt;6; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG |=IVS|IHS|BCD;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG |= (TFT_H_SIZE-1)&amp;lt;&amp;lt;16;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_POL_REG |=(0&amp;lt;&amp;lt;27); &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SC-&amp;gt;LCD_CFG = 7 ;// 120000000 / ((unsigned long) C_GLCD_PIX_CLK); 15 MHZ&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*Refresh time 41msec*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG&amp;nbsp; &amp;amp;= 0; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG |= (TFT_H_BACKPORCH - 1)&amp;lt;&amp;lt;24;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG |= (TFT_H_FRONTPORCH - 1)&amp;lt;&amp;lt;16;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG |= (TFT_H_PULSE - 1)&amp;lt;&amp;lt;8;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMH_REG |= ((TFT_H_SIZE/16) - 1)&amp;lt;&amp;lt;2;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG&amp;nbsp; &amp;amp;= 0;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG |= (TFT_V_BACKPORCH)&amp;lt;&amp;lt;24;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG |= (TFT_V_FRONTPORCH)&amp;lt;&amp;lt;16;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG |= (TFT_V_PULSE - 1)&amp;lt;&amp;lt;10;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_TIMV_REG |= TFT_V_SIZE - 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_UPBASE_REG = LCD_VRAM_BASE_ADDR &amp;amp; ~7UL ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_LPBASE_REG = LCD_VRAM_BASE_ADDR &amp;amp; ~7UL ;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;for( i = 0; (TFT_H_SIZE * TFT_V_SIZE) &amp;gt; i; i++)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; *pDst++ = White;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; for(i = 10000; i; i--);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//LCD_CTRL_REG |= LCDPWR| LCD_EN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG |= LCDPWR;//| LCD_EN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void lcd_powerenable(){&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG |= LCD_EN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void lcd_powerdisable(){&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCD_CTRL_REG &amp;amp;= LCD_EN;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:01:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Problem-16-bit-tft-configuration-in-LPC1788/m-p/523409#M6045</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:01:34Z</dc:date>
    </item>
  </channel>
</rss>

