NXP LPCXpresso54S018M + Display - Review

Table of contents

RoadTest: NXP LPCXpresso54S018M + Display

Author: neerajrd82

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: ST->STM32F479xx; TI->TM4C129XNCZAD; Renesas->R7FA6M3AH3CFP; Silicon labs->EFM32GG11B820F2048GL192; Nuvoton->M487KMCAN; Infineon->XMC4800

What were the biggest problems encountered?: Spirit demo stopped working after running spifi test. CMSIS-DAPLINK debugger was unstable. Before performing Erase & program,Extensive fine tuning of memory address mapped for internal & external flash in Programming Algo.

Detailed Review:

First Impression: LPCXpresso54S018M board arrived preloaded with a “Spirit Level” application and on-board diagnostic software. To run just the Spirit Level demo, i connected the board to my computer using usb connector J1 at the top left of the board. The user LEDs (LED1, LED2 and LED3) glows it indicated if the board is level along the horizontal axis of the board. When i tilted the board towards me only LED1 was glowing. When i tilted the board away from me only LED3 was glowing. This proves that Spirit Level demo loaded inside the chip is working correctly as shown in video:Spirit-level-demo.mp4.

 

Now, referring to Page no:15 of UM11192 (user manual of this board) , spirit level demo comes with number of internal tests, so i decided to perform those tests as given below:

 

1. rtc: Performs a test of the RTC crystal. Enter a time for the test to run (in seconds. After the timeout period the test will display a message to confirm the RTC worked correctly. File: rtc.jpg contains the log generated by Docklight when i performed this test.

 

2. sdram: test on-board sdram. JP14 and JP15 must be set to SDRAM (SD) position for this test to run correctly.File: sdram.jpg contains the log generated by Docklight when i performed this test.

 

3. ether: Checks for presence of an Ethernet host connection then transmits 20 packets. File: ethernet.jpg contains the log generated by Docklight when i performed this test.

 

4. led: Tests the ISP buttons and LEDs. Holding down ISP0 will cause light LED3 to blink, ISP1 for LED2 and ISP0 for LED0. File: led-button.jpg contains the log generated by Docklight when i performed this test.

 

5. spifi: Tests the flash of the LPC54S018J4M.File: spifi.jpg contains the log generated by Docklight when i performed this test.

 

After performing spifi test, spirit level demo preloaded in target micro-controller, stopped working due to which i was not able to perform all the other remaining tests. Meanwhile,I m figuring out the reason why this demo stopped working altogether. I was also testing the stability of debugger. 

 

This debugger comes with two options, you can program it as CMSIS-DAPLINK debugger or Jlink LPCExpresso debugger

I have downloaded latest version of LPCScrypt & LPCScrypt user manual.

Now referring to LPCScrypt user manual.

i followed this path: drive:\LPCScrypt directory\scripts\

Now, here i found two windows scripts: program_CMSIS.cmd & program_JLINK.cmd.

When i put the debugger in DFU mode by shorting the JP5 & power cycle the board, LED D10 stops blinking & keeps glowing

program_CMSIS.cmd configures debugger hardware as CMSIS-DAPLINK debugger

program_JLINK.cmd configures debugger hardware as Jlink LPCExpresso debugger

It was found on testing the board using power cycling, Jlink LPCExpresso debugger is more stable than CMSIS-DAPLINK debugger.

Reason: CMSIS-DAPLINK debugger was loading USB Human interface device drivers inside windows kernel, which i think it is not required.

 

Only basic minimum requirement to make CMSIS-DAPLINK stable should be: Basic windows driver of CMSIS-DAPLINK & Virtual COM port , i mean that it should visible in USB devices as CMSIS-DAPLINK & Generic Virtual COM port in COM & LPT section of device manager in Windows. This will make it lighter, stable & faster in response.     

 

Now, i m shifting my focus to Spirit level demo, what went wrong? I m searching for source code of this demo, i will try to re-flash it without any change in source code & cross-examine the same demo again.   

After long search , i was unable to find the source code of same.

 

Important note: I m using Keil-MDK-ARM for compiling the examples. i have followed the path in keil: flash->configure flash tools -> Debug tab->selected Jlink / J-Trace Cortex as debugger -> Utilities tab -> Use debug driver setting -> flash download -> Add Programming Algo "LPC540xxxx W25Q32JvWJx" . Just below Start : 0x00000000 & Size: 0x00400000.The fine tuning of  start & size will change as per needs of  each example. In some cases, Debugger may not give errors but example will not run still correctly.    

 

Now, I have downloaded various SDK_2.8.2_LPCXpresso54S018M from MCUXpresso SDK website. Again you have look for options you want to explore inside SDK.

My choice is resides in the path:  \SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\.

Here you will find standalone examples of various computer peripherals.

I choose example to run: \SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\gpio\led_output

 

I tried to downloaded program in target chip after compilation using both ways CMSIS-DAPLINK & Jlink LPCExpresso.

I was able to see the example working but no led blinking. This was astonishing.

File: gpio_led_output.jpg shows the log received on docklight on running this example.    

 

Today, i choose to run the LCD examples given in the SDK which can be found on below path:

\SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\lcdc

both example working: lcdc_cursor: File: lcd-cursor-output.jpg shows output generated by this example. You will see moving hand in all directions over red background containing BLACK SQUARE. lcdc_tft :  lcd-tft-output.jpg shows output generated by this example. You will see moving rectangle in all directions over black background changing colors: RGB in cyclical fashion.


Emwin examples for LCD: SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\emwin_examples

working example: emwin_temperature_control

Not working example: emwin_serial_terminal & emwin_slide_show

File: emwin-temperature-control.jpg shows that output of "emwin_temperature_control" example

 

Further, i was able to find one example of LED blinking on below path:

\SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\demo_apps\led_blinky. In this example, you will see onboard LED3 blinking. file: led-blinking.mp4 shows the output of this example.

 

Now, i was able to find one simple example of USART on below path:

\SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\usart\polling . In this example, you will see simple loopback of USART. file: usart.jpg shows the output of this example.

 

Another example i was able to run given on below path:

\SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\demo_apps\touch_cursor. You will see moving hand following the touch screen coordinates over red background squares with black boundaries. Second video: lcd cursor touch screen shows the output of this example.

 

Now, refering to page no:4 & 7 of  LPC54018M-EVK-SCH.pdf (schematics of this board), we found that touch screen interface of LCD is connected with P3_24-FC2_SCLX  &  P3_23-FC2_SDAX -> this is an I2C interface of target chip. Since touch screen controller is working correctly. Therefore, this proves that I2C is working correctly.   

 

Now, i chosen one ethernet example, which i found on below path:

\SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\enet\txrx_rxpoll. You will see debugging output of physical layer transmit & receive on Virtual comport created by board on PC. File: enet-output.jpg shows the output of this example.

 

Now, i chosen one pwm example, which i found on below path: image

\SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\sctimer\pwm_with_dutycyle_change. You will see LED1 on board blinking on FADING UP/DOWN mode. Third video: sctimer pwm with duty cycle change shows the output of this example.

 

Further, i was putting my focus on SDIO interace fitted on-board but i do not have SD card to check this interface. Currently, i do not have SPI based device & oscilloscope to test SPI interface.

 

Now, referring to page no: 10 of LPC54018JxM-LPC54S018JxM.pdf (datasheet of target chip) brings us to block diagram of target chip. I noted some unique features:

1. Up to 4 MB of on-chip Quad SPI Serial Flash (connected on SPIFI interface).

2. General-purpose One-Time Programmable (OTP) memory for user application.

3. Secure Boot features on LPC54S018JxM devices.

4. DMIC subsystem includes a dual-channel PDM microphone interface.

 

BSP: It seems like easy to use but if some special requirement regarding input & final output gets emerged , then programmer may require to reverse engineer some part of BSP. For example: referring to LED blinking example found here: \SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\demo_apps\led_blinky.

when i sneaked into source code, it was found that:GPIO_PortInit  & BOARD_InitPins functions is called first before BOARD_InitBootClocks. I sincerely think that BOARD_InitBootClocks should be called first before calling GPIO_PortInit & BOARD_InitPins. Therefore, NXP is not following basic rules of micro-controller initialization but no denying fact they know this chip better than me.

But this BSP should be easy to customize for those who have spend more than 10 years in Micro-controller field.

 

Cost: Target chip cost around 3 US$. Fairly much cheapest alternative to any other counter part mentioned above. 

 

Pros:It is pretty good that it is offering Jlink for debugging. This board will be far much cheaper as compared to any other board in this category.

 

Cons: Board is not designed for beginners. Ease of use is another problem. Preconfigured CMSIS-DAPLINK was unstable. Therefore, to make stable, i need to configure debugger as Jlink->But this should only one time activity for a micro-controller expert. Tactile switch mounted over the board are too small to operate from fingers & LCD will need careful handling while mounting on-board since it is not mounted. Therefore, one should be very careful while operating this board to avoid electrical damage.

 

SHORT SUMMARY OF WHOLE EXERCISE:

1. SPIRIT LEVEL DEMO:  RTC: WORKING

                                         SDRAM :WORKING

                                         ETHERNET :WORKING

                                         LED : WORKING

                                         SPIFI: WORKING  -> AFTER this point board stopped working

                                         USB: NOT WORKING

                                         LCD:NOT WORKING

                                         SDCARD: NOT AVAILABLE FOR TESTING

                                         AUDIO: NOT WORKING

2. SDK_2.8.2_LPCXpresso54S018M\SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\gpio\led_output : Dumping log on Docklight. But No LED Blinking seen.

3. SDK_2.8.2_LPCXpresso54S018M\SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\lcdc\lcdc_cursor: WORKING

4. SDK_2.8.2_LPCXpresso54S018M\SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\lcdc\lcdc_tft : WORKING

5. CMSIS-DAPLINK : WORKING BUT UNSTABLE

6. JLINK LPCExpresso: WORKING BETTER THAN CMSIS-DAPLINK

7. SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\emwin_examples\emwin_serial_terminal : NOT WORKING

8. SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\emwin_examples\emwin_slide_show : NOT WORKING

9. SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\emwin_examples\emwin_temperature_control : WORKING

10. SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\demo_apps\led_blinky: WORKING

11. SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\usart\polling : WORKING

12. SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\demo_apps\touch_cursor : WORKING --> LCD INTERFACE & TOUCH SCREEN CONTROLLER INTERFACE (I2C) WORKING CORRECTLY

13. SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\enet\txrx_rxpoll : WORKING

14. SDK_2.8.2_LPCXpresso54S018M\boards\lpcxpresso54s018m\driver_examples\sctimer\pwm_with_dutycyle_change: WORKING

 

Note: Some other examples may be working correctly but resources are not available to test but i m trying my best to get those resources.   

 

Last but not the least. Hereby i m concluding my review.

           

I am thankful for NXP Team for sponsoring this board.

 

MY WARM REGARDS FOR NXP TEAM

NEERAJ GUPTA 

  

RoadTests & Reviews

Anonymous
  • Dear Shabaz,

                          Thanks for your appreciation. I was search for job change. But if you don't mind may i ask your country of origin? or in which country , you are currently living?          

  • Hi Neeraj,

     

    You have been very thorough, trying so many of the software examples, with different combinations of debugger tools. It is a lot of useful information.

     

    I don't know how I can help, but if you ever need assistance with your CV so you can apply for other roles in your industry, I'd be happy to review/edit it for you, just in case having another pair of eyes looking at it can help.

     

    Here's a short video of how I write blog posts, in case it gives ideas. My process is a bit longer than normal, because I first write in Word and then transfer it. However, I think most people directly use the editor in the web browser, although I find that harder e.g. if the wifi connection fails.

     

  • Dear Shabaz,

                          I haven't received recognitions/rewards/financial benefit of solutions which i have build so far for organizations be it (govt/private/startup) in last 15 years. I saved a lot of money by indigenization of various electronic equipment in my country. Many people have taken away my credit so many times. Also some youngster(s)/juniors lesser experienced than me are working on higher salaries. Even today wherever i m working, i m still underpaid even as per industry standard. Therefore! according to some people, i m dismissive & defensive in my last comments. But your words provide me some good motivation & positive energy to write the review in even more better manner. Your words are good & kind enough for me to add the table of success & failure in this review. Of course, i will take your suggestion seriously to improve my review. But another harsh reality which i would like to highlight that i m not able to understand how the font adjustment works on this website. When i was writing this review, this website hanged many times & also bold font adjustment has misbehaved many times that why my whole paragraphs unusually bold. In worst cases, formatting of whole paragraphs was getting disturbed. Due to this, it became nightmare for me to write the review.

     

    THANKS WITH WARM REGARDS

    NEERAJ GUPTA

  • Hi Neeraj,

     

    I would have liked to see an introduction more than anything else. The review starts like this:

    image

    However, the reader has no idea what a LPCXpresso54S018M is : ( An introduction can explain what it is in simple terms.

    I can see you've put in a lot of effort and there are lots of videos, but I'd love a reason to view them (for example an introduction explaining what the LPCX.. does).

     

    It's not criticism, just an opportunity to clarify, and even if you don't wish to update this review with the things people are suggesting, you can just comment that you'll take these suggestions on-board for your next review but for now clarify anything quicker in comments to save rework time and so on (it's quicker, and easier, to repond in such a way.. no-one is questioning your technical experience. It's easy to miss reading some stuff in a wall of text, so maybe you have explained what the LPC.. is, I may have missed it. Also, putting whole paragraphs in bold is very unusual. The 'Styles' button in the editor should be used for headings. I think it's OK to make a single word, or a single line, bold, if it's needed for some reason.

  • Thank you for not providing the table. It would have taken much less time assembling the information than what you invested in responding. It was a simple request, what worked and what didn't from the tests you did. It did appear you did a lot of work. Instead you chose picked apart my attempt at understanding and tried to uncovered the sinister motive I had for asking the question. My failure to extract from your review the successes and failures of using such a product is my fault and you bear no responsibility in your presentation.

     

    Please don't trouble yourself further responding to this commentary. You have invested ample time and so have I.  Instead of seeking to clarify my question you immediately made an assumption and then proceeded to defend the assumption and yourself. Your response was defensive and dismissive. I suggest it is inappropriate to make the statement "Manufactures claim is immaterial" in your review. The comment is read by the very people that make the claims and oh yeah, provide the resources that enable E14 to support such a program.

  • Dear sean conway,

                                   It seems that you do not agree with the style by which i have written the review. If there is set format about the list which you are demanding for Roadtest then that must have been given to me by . Who decides official road-testers & also reviews the feedback given by us. I have spend 15 years on fiddling around 8 to 32-bit microcontrollers.

     

    But still i would like to answer your questions:

    1. Do you have a final listing of the demos/test/task that you did, whether you were able to successful run them initially or even after some fiddling their status?

    Ans. Yes, i have final listing of the demos/test/task that i did, but is it necessary to put that list that even after putting up screenshot(s) which shows the results of various successful demos/tests/tasks that i did.

     

    2. You indicate stopped working early in your presentation, then you spoke to a debugger but I didn't get a sense of the state of the failure. If the spirit level test failed, it is not contained in your list of test.

    Ans. I indicated in my review--> after running spifi test inside spirit level demo, spirit level demo failed to proceed further. Again please! refer to UM11192.pdf on page no-15. I was searching for source code of spirit level demo, but i was unable to get from SDK. It forced me to shift my focus to debugger. Therefore, i test both CMSIS-DAPLINK & JLINK. but i found that i can run more examples successfully with JLINK rather than CMSIS-DAPLINK. It seems that NXP has loaded spirit level demo with CMSIS-DAPLINK, which can be cause of this technical glitch.     

     

    3. It appears you exercised the board extensively.

    Ans. Since i m 15 years hands on experienced person in micro-controllers, i m going to exercise the board extensively. As this is the main purpose of Roadtest.

     

    5. What I'm looking for a is a summary of those tests, their initial status (work/not working) and if you worked the issue what was the result. The table to me is a simplified score card of success and failures.

    Ans. If you are fiddling around this board for developing a new product , then there is a benefit of getting that list which you are demanding otherwise no use of that. 

     

    6. You indicate this is not a board for beginners. That is not a claim from the manufacture. Success and failures of tasks that are suppose to be available out of the box support such a statement especially if rework is required to get them to work.

    Ans. Of course this is not a board for beginners. Manufacture claim is immaterial. Every Manufacturer claims that my board is easy to use, but that is end user who decides the ease of use. I sincerely think that i have put up enough screenshot(s) of only those demos/test/tasks/ that i did successfully with or without fiddling & left only those which are unsuccessful.  I possess Keil-MDK-ARM, therefore i downloaded SDK_2.8.2_LPCXpresso54S018M for keil, then i found the number of examples where compiler & debugger will not give any errors but still that examples is not running at all. Instructions to configure memory address for each example is not given at all & also number of examples given large & complex. Some examples required the aid of expensive oscilloscope which must contain various serial decoders for which i do not have money/resources.

     

    Even small example like blinky is not written in simple manner, then how will beginners will understand the target chip. Due to this, their learning curve will get steep.       

     

    Most important thing is -> there are some examples for which everyone like me will not have enough resources to analyze the behavior of all protocols which are there inside target chip. I sincerely think that NXP should work out towards ease of use.

  • Do you have a final listing of the demos/test/task that you did, whether you were able to successful run them initially or even after some fiddling their status?

     

    You indicate stopped working early in your presentation, then you spoke to a debugger but I didn't get a sense of the state of the failure. If the spirit level test failed, it is not contained in your list of test.

     

    It appears you exercised the board extensively. What I'm looking for a is a summary of those tests, their initial status (work/not working) and if you worked the issue what was the result. The table to me is a simplified score card of success and failures. You indicate this is not a board for beginners. That is not a claim from the manufacture. Success and failures of tasks that are suppose to be available out of the box support such a statement especially if rework is required to get them to work.

     

     

    TaskInitial SuccessRework success