Does emWin support LPC1768/1769?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Does emWin support LPC1768/1769?

9,287 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by bittware on Sat May 19 19:48:04 MST 2012
Hello Experts,
From NXP website, I got the first impression that the emWin library does support all LPC1700 series controller.
However, on lpcware.com frontpage, I saw emWin is not listed as an available library to LPC175x_6x, but only to LPC177x_8x.
So can I draw the conclusion if I choose LPC1768 then I can not use emWin? If yes, what prevents emWin from supporting LPC175x_6x?
Thanks.
BRs,
Bittware
Labels (1)
0 Kudos
21 Replies

8,152 Views
回收IC芯片
Contributor I

MK64FN1M0VLQ12 有芯片余料吗  高价回收 加我V IC888505

0 Kudos

8,158 Views
Rafael007
Contributor I

Hello dear, please help me to set up :

Lpc1768 with lcd tft 4.3"

with ft800

with protocol spi

 

 

 

 

Tags (2)
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Prakash on Fri Aug 17 02:47:49 MST 2012
I have ported Segger emWin with CoiNel LPC1768 HPLUS EX. The demo is given in following link,

http://www.youtube.com/watch?v=HDf8jzPZStc

We will upload the code shortly. And user can download it from from following link,

http://coineltech.com/index.php?main_page=product_info&cPath=8&products_id=14


0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Wed Jun 20 07:00:17 MST 2012
I got it to work finally.  This experience exposed a few cons about Emwin.  It is free for use on NXP, but the support from NXP is very thin and available only through this forum.  Segger does not provide support for this NXP emwin library.  Be prepared to spend a lot of time trying to make it port it to non-standard platforms.
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Tue Jun 12 13:30:09 MST 2012
Anyone get a chance to look at the pic that I posted? I wonder if there is an issue with emwin for the HX8353D.  Waiting to hear from any NXP/Segger support on this forum!  BTW is there any way to get alternative support directly from NXP or SEgger, please LMK.  I'd like to get this resolved.
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Thu Jun 07 13:58:05 MST 2012
OK,

See attached pic.

So I'm back to this effort today.  I have successfully printed hello world on the screen, but there is a funky pattern in the background and the color is screwed up.   

Can anyone guess what might be up?  I checked that I'm using the correct GUICC_M565.  The HX8353D mode is set to match that.

Here's the code snippet

int main(void) {

// TODO: insert code here

// Enter an infinite loop, just incrementing a counter

  GUI_Init();
  GUI_SetBkColor(GUI_BLUE);
  GUI_Clear();

  GUI_DispStringAt("Hello world", 50, 50); // Disp text

  while(1) {

  }

return 0 ;
}
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by drs on Thu May 24 18:39:29 MST 2012
In LCDConf.c there is a function called LCD_X_DisplayDriver which is called by emWin with a Cmd = LCD_X_INITCONTROLLER. On this command you will need to initialize your controller. The BSP for the LPC1788 has an example of this code that initialized that chip's internal controller based on parameters in a hard coded structure or read from EEPROM. In your case you will need to refer to the data sheet for the controller you are planning to use (http://www.techtoys.com.hk/Displays/SSD1963EvalRev3B/SSD1963_1.1.pdf) to determine how to configure it. The LCD parameters that you use to configure your controller are going to some from the datasheet of the LCD display you are planning to use.

This is all explained in very fine detail in the emWin users manual in the Configuration and Display driver chapters.
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Thu May 24 11:36:35 MST 2012
Ok, so I downloaded the mcb1700 project.  On this board, the uc is connected to the display controller through an SPI bus.  The _16bit interface r/w functions are overridden to utilize the spi bus.  Anways, nowhere in the project do they define the LCD parameters!  My LCDConf.c file is functioning correctly.  I need to define the LCD parameters.  This project will NOT help.  I need to know from NXP/Segger support where to define the following parameters to match my particular LCD!  The NXP 'port guide' says it clearly on page 5, but it is nowhere to be found in the workspace files!

PPL
HSW
HFP
HBP
LPP
VSW
VFP
VBP
ACB
IVS
IHS
IPC
CPL
BPP
BGR
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by drs on Wed May 23 14:39:26 MST 2012
You will find a new port of emWin to the MCB1700 board here: http://www.lpcware.com/content/nxpfile/nxpemwin514mcb1700bsp

We will post a detailed porting guide that explains this port from the LPC1788 BSP in a day or two

Hope this helps
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Wed May 23 13:39:31 MST 2012
Okay, some progress to report.  The SSD1963 controller that I am using is a GUIDRV_FlexColor driver that falls into the 'run-time configurable' driver.  My original approach assumed that I was using a compile-time driver, this is wrong. 

While not immediately apparent, the LCDCOnf.c file needed to be edited to add all the functions to write-byte and read-byte and to then connect that to the flex driver using GUIDRV_FlexColor_SetFunc.  This functionality was missing in my original code, therefore it was causing the hard-fault.

Now I have it executing without any harware faults.  I do not see the 'hello world' on the screen however. 

I think that the LCD timing is off since I did not set that yet.  I am looking for the place to add the LCD characteristics: H_BLANKING, V_BLANKING, HOR_OFFSET, VER_OFFSET.  Where is this???  I saw a document (emWin Porting Guide from NXP).  http://www.lpcware.com/sites/default/files/AN_emWin%20PortGuide.pdf, which describes on page 5 the parameters that I need to set, I did a search on my workspace and I do not see any file with these parameters.

Can someone please point me to the file that will allow me to set the LCD timing parameters?

Thanks!
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Wed May 23 06:36:32 MST 2012
I already did that, i.e. using _d5 and debug printfs.  The output is simply GUI_Init() followed by LCD_Init...
(Please see lower left corner of the posted screen-shots).
What next?  Can I post my project here for someone to try out and let me know.  I'm doing everything correctly as far as I can tell.  Is this forum manned by NXP/Segger Support?
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by drs on Tue May 22 15:22:44 MST 2012
There are diagnostic versions of every (v5.14) library which were built GUI_DEBUG_LEVEL=5. They end in _d5. Use these versions then place a break point in GUI_X_ErrorOut and look at the string pointed to by *s. It will hopefully contain useful information.
You may want to add printf statememts in all three diagnostic routines so that you can view log and warning output as well.
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Tue May 22 14:33:46 MST 2012
It crashes just after calling GUI_X_Init at 0x0fa4...please see screenshot below.  I enabled debugging, I get GUI_Init() followed by LCD_Init...then after executing line 0x0fa4. it generates a hardfault; Fault Register is "InvState".
Can Someone at NXP/Segger Help.
I'm using Code-Red tools, my processor is an LPC1768, I'm using an 8080-8bit interface to an SSD1963.  I have the entire project that I can post.
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Tue May 22 10:59:04 MST 2012
Just figured out the linker issue.  I was using the wrong library.  The LPC1768 is a cortex M3 part, and the library was for a CortexM0.  Now it compiles and links correctly, however it throws a hard-fault on gui_init.  Some more work to do...Thanks.
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by drs on Tue May 22 09:52:10 MST 2012
You will find everything you need to know about LCD interfaces in the Display drivers chapter of the emWin users manual. You can find a link to this documentation here: http://www.lpcware.com/content/project/emwin-graphics-library

0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Tue May 22 09:23:38 MST 2012
I just re-read the posts, it seems that the library should work?  Could someone please let me know why i'm getting an undefined reference to __gnu_thumb1_case_uqi.  I did a search and it is used heavily in the library archive (102 matches).  Where should this be defined??
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by oahmad on Tue May 22 09:17:12 MST 2012
I was under the impression that libemWin_514_LPCXpresso422_M0_LE_Redlib.a supported LPC1768. 

Here's the work I did so far:  I have ported my existing (custom) board using an external display controller (SSD1963) to use GUIDRV_FlexColor.h.  I have an 8bit 8080 connection so I modified LCD_X_8080_8.c to work for my platform.  In GUIConf.c, GUI_NUMBYTES was set to 320x240x2, I reduced it much lower to simply 1024 (I don't have that much RAM on the LPC1768); I don't know yet if this is enough.  I'm not sure what GUI_BLOCKSIZE needs to be set to so I've left it default for now (128).  In LCDConf.c I changed to #DISPLAY_DRIVER &GUIDRV_FlexColor_API and #define COLOR_CONVERSION GUICC_655.  In the LPCXpresso-406_emwin512 code (targettingt he 1778) I saw a custom Linker script that defines a custom position for VRAM and GUI_RAM into SDRAM32 which is defined as  SDRAM32 (rwx) : ORIGIN = 0xA0000000, LENGTH = 0x02000000 /* 32 MB */.  I've have NOT located my SDRAM32 anyplace else for right now, so VRAM is pointing to the default location.  In my main application, I have selected the 'hello world' application.

Everything compiles correctly, however during linking, the library archive: libemWin_514_LPCXpresso422_M0_LE_Redlib.a threw up errors (see below).  I did a google search and I came to this post that confirmed my suspicion that the library is not compatible with the LPC1768.  I'll wait for it and then report back with the new library.

Thanks!

Invoking: MCU Linker
arm-none-eabi-gcc -nostdlib -L"C:\nxp\lpc17xx\CMSISv1p30_LPC17xx\Debug" -L"C:\nxp\lpc17xx\lpc17xxEmwin\emWin514_library" -Xlinker -Map=lpc17xxEmwin.map -Xlinker --gc-sections -mcpu=cortex-m3 -mthumb -T "lpc17xxEmwin_Debug.ld" -o"lpc17xxEmwin.axf"  ./src/cr_startup_lpc176x.o ./src/main.o  ./emWin514_header/LCD_X_8080_8.o  ./emWin514_config/GUIConf.o ./emWin514_config/GUI_X.o ./emWin514_config/LCDConf.o ./emWin514_config/SIMConf.o   -lCMSISv1p30_LPC17xx -lemWin_514_LPCXpresso422_M0_LE_Redlib
C:\nxp\lpc17xx\lpc17xxEmwin\emWin514_library\libemWin_514_LPCXpresso422_M0_LE_Redlib.a(GUIDRV_FlexColor.o): In function `_GetDevProp':
GUIDRV_FlexColor.c:(.text._GetDevProp+0xa): undefined reference to `__gnu_thumb1_case_uqi'
C:\nxp\lpc17xx\lpc17xxEmwin\emWin514_library\libemWin_514_LPCXpresso422_M0_LE_Redlib.a(GUI__ExpandPixelIndices.o): In function `GUI__ExpandPixelIndicesEx':
GUI__ExpandPixelIndices.c:(.text.GUI__ExpandPixelIndicesEx+0x24): undefined reference to `__gnu_thumb1_case_uqi'
C:\nxp\lpc17xx\lpc17xxEmwin\emWin514_library\libemWin_514_LPCXpresso422_M0_LE_Redlib.a(GUI__CompactPixelIndices.o): In function `GUI__CompactPixelIndicesEx':
GUI__CompactPixelIndices.c:(.text.GUI__CompactPixelIndicesEx+0x20): undefined reference to `__gnu_thumb1_case_uqi'
C:\nxp\lpc17xx\lpc17xxEmwin\emWin514_library\libemWin_514_LPCXpresso422_M0_LE_Redlib.a(LCD_ReadRect.o): In function `LCD_ReadRectEx':
LCD_ReadRect.c:(.text.LCD_ReadRectEx+0x70): undefined reference to `__gnu_thumb1_case_uqi'
collect2: ld returned 1 exit status
make: *** [lpc17xxEmwin.axf] Error 1

0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by bittware on Mon May 21 18:11:59 MST 2012
From your post, I guess emWin does not care concrete interface between MCU and LCD. Providing emWin supports the MCU, we can figure out a driver which would handle the low level operation. Am I correct? If yes, is there a guideline that we could follow to ease the porting process across different LCD interfaces? Thanks.
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by bittware on Mon May 21 18:05:23 MST 2012
We use LPC1768 SPI port to connect to ST78528, 4-SPI LCD controller.
I don't know what the difference between a built-in controller and an external SPI interfaced controller is from emWin point of view.
0 Kudos

8,675 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by drs on Mon May 21 14:47:13 MST 2012
We will be posting a new BSP for the Keil MCB1700 board with a LPC1768 mounted sometime this week. This BSP uses the Flexcolor driver which is driven via SPI.

Our pre-compiled emWin libraries include support for all of our ARM and Cortex parts. But currently we only support two boards and parts (EA LPC1778 and MCB1700) with our BSP which is a collection of ported drivers and compiler project files that build and run out of the box. Getting emWin running on any other board or part will require some porting work.

In the future we will be including support for many more boards and parts. Stay tuned...
0 Kudos