NXP I.MX RT1050 EV KIT and Display - Review

Table of contents

RoadTest: NXP I.MX RT1050 EV KIT and Display

Author: Nitin_Bhaskar

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?: LPC4357-Xplorer++, STM32F4 Discovery

What were the biggest problems encountered?: Trying to get MCUXpresso IDE work with this dev board was biggest problem. No examples for LCD are included in SDK by default.

Detailed Review:

Here is my detailed review of NXP i.MX RT1050 EV with display.

 

Unboxing:

The package arrived in element14 box with sufficient protection on all sides. Below is the image capture of the contents in the box.

image

 

Inside box following items where found,

1. Packing list sheet

                                      image

2. LCD screen with capacitive touch panel

                                    image

3.Micro USB  cable

                                    image

4.Burg connectors for arduino headers

                                   image

5.NXP i.MX RT1050 EVK board

                                           

image

Below is the unboxing video:

 

 

Hardware:

Processor

This board comes with i.MX RT1052 "crossover" MCU which has an ARM Cortex-M7 core capable of running at 600MHz. Term crossover is used because of MCU performance comparable with low power application processors. "RT" family MCUs can be used for computationally intensive apps that needs real time functionality. The marking on i.MXRT1050 says PIMXRT1052DVL6AEVALCTWA1723. This is an A0 silicon rev, full feature general purpose, consumer grade(0-95 deg C) prototype sample. The package is 196BGA and package dimension is 10mmx10mm and thickness is 0.65mm. Other members in this family includes industrial grade (-40 to 105 deg C), reduced feature, mass production samples with different max operating frequency variants. This MCU has 32KB each of I-cache and D-cache, 512KB for SRAM, integrated MPU supporting up to 16 protection regions and floating point unit. i.MXRT1052 has no internal flash. So, it uses one of the below mentioned boot media and using SW7, boot media can be selected.

 

SW7-1SW7-1SW7-1SW7-1Boot media
0110Hyperflash
0010QSPI flash
1010SD card

 

The silicon errata sheet for this chip reveals 19 issues, out of which few of them have been fixed in silicon rev A1 and rest of them has no fixed schedule for providing fix.

 

image

SDRAM

External memory OF 256Mbits is from Micron and the part number is MT48LC16M16A2B4-6A.

 

Hyperflash

This is an extremely fast external non-volatile memory from Spansion which has bus width of 8bits capable of DDR. Part number is S26KS512SDPBHI020. Apart from 8-bit wide bus, read/write operations are burst oriented. The density is 512Mbits.

 

Quad SPI flash

Part number is IS25WP064ABLE from ISSI. Density is 64Mbit.

 

Both these flash share the same SPI bus called FlexSPI and if one needs to switch among these memories then board modifications needs to done.

image

Combo sensor

This is a 6-axis motion sensor with integrated linear accelerometer and magnetometer. It uses I2C protocol.

image

Ethernet PHY

Part is from Micrel and part number is KSZ8081.

 

Audio codec

Wolfson's WM8960 is used as stereo audio codec with class D speaker driver which is capable of driving 1W per channel into 8Ohm BTL speakers, this codec is also coupled with onboard analog microphone.

image

CMSIS-DAP/DAPLINK

This is standard debugger designed with MK20DX128VFM5 capable of SWD/JTAG.

image

Apart from above parts, there are other hardware parts such as,

  1. SD card slot
  2. CAN transceiver(TJA1057GT)
  3. LCD and touch panel connectors
  4. Camera FPC connector
  5. Couple of Micro USB connectors for USB device/host/OTG
  6. SPDIF jacks
  7. External JTAG header

 

Software:

I have always been a fan of LPCXpresso, now MCUXpresso. So, my choice of IDE for this roadtest will be MCUXpresso.

NXP has really done a very good job with MCUXpresso IDE and its ecosystem. SDK builder just works fine with huge amount of configurable parameters. The variety of examples that are part of SDK is very vast. It has very good set of middleware support which includes CMSIS DSP Library, FatFS, ISSDK, QCA400x WiFi, USB stack, emWin, lwIP, mbedtls, wolfssl, FreeRTOS. MCUXpresso SDK builder helps in getting SDK for Keil MDK v5, IAR, GCC and MCUXpresso(ofcourse!) IDEs running on Windows, Linux and MACOS hosts. Below is the screenshot of the MCUXpresso SDK builder,

image

As seen, emwin middleware can be included while building SDK. But, unfortunately this is not available when trying to import SDK examples. This can be because emwin is not fully tested on this EVK board. Below is the screenshot of initial screen of  MCUXpresso,

image

 

Adding i.MX RT1050 SDK for MCUXpresso is simple. You have to just drag drop the SDK zip obtained using SDK builder into "Installed SDKs" window as shown below.

image

 

After approving the confirmation, SDK import process begins.

image

 

After SDK import is complete, different components in installed SDK are displayed as shown below.

image

 

To import an example from installed SDK, Click on "Import SDK examples" on left pane. Next selection of board must be done.

image

 

All the examples supported for the selected board will be displayed next.

image

 

One or more examples can be selected.

image

 

Next screen in import wizard displays advanced settings. This contains settings for C/C++ library, FPU, memory configurations.

image

 

After clicking on "Finish", the project will be imported and is ready to built. The project can be built by clicking on "Build <project_name>" available on left pane. A debug session can be launched by clicking on "Debug <project_name>". Unfortunately, this didn't work for me straightaway. I ran into problem which is summarized in below screenshot.

image

 

Next, I tried to download binary on to Hyperflash. MCUXpresso provides an utility to just download an elf/binary on to memory. This too didn't work.

image

 

DAPLINK interface provides an option to drag-drop binary files which will be written on to device's flash using flash routine over SWD/JTAG. This too didn't work. DAPLINK exposes an mass storage interface for binary drap-drop. If the flash programming fails due to some reason, DAPLINK would re-enumerate and will contain a file "FAIL.TXT" which would log the failure. This file was seen after an attempt was made to copy binary on to DAPLINK drive. For me, this ensured that the problem is with the debugger. So, my next step was to see if any new debugger FW update was available. Below is the details of stock DAPLINK FW,

# DAPLink Firmware - see https://mbed.com/daplink
Unique ID: 0225000041114e4500463009c207001792d1000097969900
HIC ID: 97969900
Auto Reset: 0
Automation allowed: 0
Daplink Mode: Interface
Interface Version: 0241
Bootloader Version: 0242
Git SHA: 34182e2cce4ca99073443ef29fbcfaab9e18caec
Local Mods: 1
USB Interfaces: MSD, CDC, HID
Bootloader CRC: 0x73707d49
Interface CRC: 0x92919274

 

Link for resource page for OpenSDA FW update can be found in MCUXpresso IDE itself as shown below,

image

Clicking on FW updates would redirect to NXP website which contains latest FW of DAPLINK. Download DAPLINK v0244 binary.

image

As its seen in above image, NXP has different DAPLINK FW for hyperflash and QSPI flash. To download latest DAPLINK FW,

  1. Power off the board
  2. Jumper should be placed on J27 1-2.
  3. Press and hold SW4 and power on the board by connecting micro USB cable to J28.
  4. MK20DX128VFM5 will now enumerate as USB mass storage device.
  5. Drap-drop the downloaded DAPLINK FW.

 

Below is the details of DAPLINK FW after FW update,

# DAPLink Firmware - see https://mbed.com/daplink
Unique ID: 0227000041114e4500043004b60f0027a6e1000097969900
HIC ID: 97969900
Auto Reset: 0
Automation allowed: 0
Overflow detection: 0
Daplink Mode: Interface
Interface Version: 0244
Bootloader Version: 0242
Git SHA: 853df431d81359e822f49363891f877f17d31efb
Local Mods: 0
USB Interfaces: MSD, CDC, HID
Bootloader CRC: 0x73707d49
Interface CRC: 0x565000e7
Remount count: 0

Now debugging works as show below.

image

Apart from SDK examples, there are quite good number of examples which is feature extension enablement to explore the board features. Below is the list of examples,

image

There are good number of application notes available too!

image

Below is the demo of i.MX RT1050 EVK board running uClinux image by emcraft. This demo contains Storyboard GUI by Crank Software Inc.

 

Personally, biggest disappointment was lack of LCD examples. Apart of emwin examples, there are multiple other examples which are not enabled by default. I tried enabling these my modifying .xml file used by SDK importer with no success. I tried to create my own LCD examples and ran into multiple issues. I hope this will be sorted out by NXP very soon. On positive side, there are 61 USB examples included in SDK which covers almost all device classes of USB.

 

Update: I was able to build an emwin GUI example successfully.

First select the target board.

image

Next "configure project window" is seen where different components required for the project can be selected.

image

Select driver for "elcdif" and emwin graphics library in middleware section.

image

In next window, we need to change the memory configuration to use onboard SDRAM.

image

Next, related project files needs to be added from emwin example available in downloaded SDK. Files included in red box seen below image needs to be added.

image

Few files needs to be deleted such as emwin_support.c/.h and pin_mux.c/.h. These files should be taken from emwin example in SDK. So, files imported during new project wizard should be deleted/replaced. Now, debug this project.

image

Result seen is similar to below image on board LCD. Response to touch on screen can be noticed too.

image

Anonymous