Skip navigation
> RoadTest Reviews

ULINKPLUS-Universal Debug Trace Adapter - Review


Product Performed to Expectations: 9
Specifications were sufficient to design with: 8
Demo Software was of good quality: 3
Product was easy to use: 6
Support materials were available: 9
The price to performance ratio was good: 8
TotalScore: 43 / 60
  • RoadTest: ULINKPLUS-Universal Debug Trace Adapter
  • Buy Now
  • Evaluation Type: Development Boards & Tools
  • Was everything in the box required?: Yes
  • Comparable Products/Other parts you considered: SEGGER J-Link Debug Probes, IAR I-jet Trace for Arm Cortex-A/R/M
  • What were the biggest problems encountered?: Get the system running together with the hardware. Some development boards and micro-controllers are not supported by KEIL ULINKPLUS-Universal Debug Trace Adapter.

  • Detailed Review:
    1. Motivation for the Road Test
    2. Introduction
    3. Unboxing and Setup
    4. ULINKPLUS Debugger JTAG/SWD Interface Description
    5. Keil MDK Software Installation
    6. EA LPC11U37H LPCXpresso Board with ULINKPLUS
      1. ULINKplus Debugger Settings in KEIL MDK
      2. Hello Word and Blinky on the LPCLPC11U37H
    7. Power and Events Measurements with ULINKPLUS
    8. Challenges in interfacing ulinkplus with Keil MDK
    9. Summary



    Motivation for the Road Test


    Having previously with micro-controllers and debuggers from other providers such as Segger and IAR this roadtest was particularly interesting to me. Until now I had not laid my hands on Keil debugger as many ARM boards can be tested with USB-UART Hyperterminal and the normal printf or leds blinky. This device bugs off the rest of its competitors because of its special feature of debugging embedded systems from a power perspective combined with the usual JTAG based functionality. Hence my curiosity peaked and here we are.........




    ULINKplus connects to Arm Cortex-based devices and combines the traditional debugging functionality with power and I/O measurement. The classic features such as breakpoints, SWV trace, and multi-core debugging are there. The new features using Event Recorder and Event Statistics to profile for timing and energy consumption is a step up. Also one can use the System Analyzer to analyze power consumption with events, threads, interrupts, and variable changes.


    Unboxing and Setup


    The ULINKplus kit which was delivered includes:


    1. 1x ULINKplus USB-JTAG adapter.
    2. 1x USB A/MicroB cable.
    3. 1x 10-pin ribbon cable for connecting to target hardware using the Cortex debug connector.
    4. 14x jumper wires for power measurement and I/O test connections.
    5. 6x power measurement shunts (5 mA, 10 mA, 25 mA, 50 mA, 100 mA and 250 mA)


    A quick look into what was delivered in the packet.


    Fig. 1 Delivered in the box


    Fig. 2  A quick size comparison with a tea bag (where clearly ARM wins )



         Fig. 3  6x power measurement shunts (5 mA, 10 mA, 25 mA, 50 mA, 100 mA and 250 mA)


    ULINKplus Debugger JTAG/SWD Interface Description


         A look into the technical features of the ULINKplus JTAG/SWD interface.


      • An interface uses a 10 pin (0.05'') Samtec 10-pin: FTSH-105-01-L-DV-007-K connector.
      • The connector supports both JTAG and Serial Wire signals which is re-configurable.
      • Alls pins on the connector are 1kV isolated.
      • Connector offers ITM and DWT trace information.


         Technical characteristics



    Fig. 4

         The humble Schematic 


    Fig. 5

         JTAG Signals


        Fig. 6

         Serial Wire Signals




         ULINKplus JTAG/SWD interface connector




    Further support for choosing the right connector is also available at their CoreSight Connectors webpage. ULINKplus debugger supports 10-Pin (0.05") connector. With their other ULINK family debuggers more traditional 20-pin connectors are available.


    Fig. 9 ULINK family debuggers with more traditional 20-pin connectors


    Although it would have been better if the 20 pin connector could be supported with the new ULINKplus debugger. As there are many old micro-controller boards out there which only have 20-pinout and not a10-pinout on-board. Clearly, with this debugger one has to develop its own intermediate10-pin to 20-pin connector converter.


    Keil MDK Software Installation


    In order to get started with the KEIL ULINKPLUS Debugger I installed the Keil MDK software. It is a software development studio for Arm based microcontrollers. There are 4 versions of it  and MDK-Lite is the free version. There is also the a 7 day trial of MDK-Professional License which I will evaluate quickly in the end and what extra features they offer. Although I think the trial software should be available for atleast 2 - 3 weeks for extensive testing if I later want to buy the IDE.



    Fig. 10 Comparison of the MDKs


    MDK-Core which is based on µVision is the Windows only IDE. For Linux they offer Eclipse based DS-MDK. There are also some software packs for the IDEs available which can be later installed in the IDEs as required such as CMSIS drivers, RTOS, USB drivers and the list goes on.


    Fig. 11 Keil MDK Microcontroller Development Kit


    What I liked the most was they offer MDK5 Software Packs for a very large selection of micro-controller boards with working examples, sensor drivers, application notes, board support packages. It includes external vendors such as NXP, Hitex, Infineon, AnalogDevices and the list goes on..  Then for someone like me who has been using Keil since early 2000s. there is the MDK v4 Legacy Support to keep up the compatibility with my old code.

    To get a headstart with my NXP development board I downloaded the software pack.


    Attention: Prior to using the MDK5 IDE one must check beforehand if their micro-controller is currently supported or one needs the legacy MDK4 IDE. MDK v4 Legacy Software can be handy if there is an old micro-controller being used or there is some work to be done on an old code which was written with earlier versions.


    Some important Links are shared below:

    Pre-check MDK5 Device List for micro-controllers

    Pre-check for the micro-controller boards supported by KEIL IDE

    MDK v4 Legacy Support Software Series



    This Road-test is further divided into the following blogs


    EA LPC11U37H LPCXpresso Board with ULINKPLUS

    Power and Events Measurements with ULINKplus

    Difficulties in interfacing ulinkplus with Keil MDK





    In conclusion, the ARM ULINKplus debugger is quite a new device in the market. Any many of the claims made about the supported families such as Cortex M0 and Cortex M0+ is not completely true (they are supported but not for the new fancy stuff). Unfortunately this is not mentioned in when you scan though the basic documentation but comes up quite later in the detailed documentation only. They are still in the process of making working examples for these devices; which I can totally understand as Cortex M0 is an old family of ARM micro-controllers. The other families such as Cortex M3 and Cortex M4 seem to be better supported (at-least thats what I realized after digging through their website and from the ARM tech support guy) with ULINKplus debugger if one wants to use all the nice features. A word of caution to the fellow road-testers, if they want to utilize the full features of this debugger then use Cortex M3 or Cortex M4 families of micro-controller development boards. I would be eager to see their results. By the way ARM tech support is very responsive to the issues so do make full use of that.


    In the end it was a nice learning experience to work with this type of new generation debuggers. To understand the current and voltage consumption of each function in your code can be a valuable specially for IOT and connected devices as they need to sleep for quite long times then wake up, collect data and goto sleep again. During the sleep cycles; reducing the overall energy consumption of the system can be paramount. 


Also Enrolling

Enrollment Closes: Nov 1 
Enrollment Closes: Oct 31 
Enrollment Closes: Oct 31 
Enrollment Closes: Oct 31 
Enrollment Closes: Oct 31 
Enrollment Closes: Nov 1 
Enrollment Closes: Oct 31