I’m a big believer that having the right tools for the job not only can speed up the job, but can also improve the quality of the end product. That is why every month I look at a different tool that can aid developers. This month, I’ve decided to take a look at my newly acquired arm KEIL ULINKplus programming probe.
When I started to look at the ULINKplus, there were several interesting features that I saw that made me want to evaluate it further. These features include:
- An isolated JTAG/SWD port
- An isolated Power measurement port
- 8 general purpose input/output pins
I’m always a big stickler about isolating the target board from my tools and computer for several different reasons. First, I want to make sure that I minimize the additional electrical load on the target board so that it runs as if it were standalone. Second, I want to make sure that if something does go wrong, my equipment and computer won’t find an energy surge coming back and damaging my equipment. The fact that we have isolated JTAG/SWD and power monitoring really caught my attention, even if the isolation is only 1 kV.
Now another feature that I found to be very intriguing is the power measurement capabilities. For many years I’ve either used an external energy monitor or used my IAR I-Jet when I want to optimize the energy consumption of a device that I’m working on. Keil MDK now has a system analyzer built-in that can be used to monitor the power consumption by measuring the voltage across a shunt resistor and then calculating the current and power.
You can see in the image below, whose source can be found here, spells out and demonstrates how this looks within MDK. A developer can easily see the baseline energy consumption and the spikes in energy usage as different threads execute on the CPU.
What is great about the power monitor is that the ULINKplus comes with six different current shunts that are designed to provide measurements in the following ranges: 5 mA, 10 mA, 25 mA, 50 mA, 100 mA and 250 mA ranges. If a developer wants to switch ranges, they do need to physically swap out a little 3-pin shunt board which can be seen in the image below:
The final interesting feature on the ULINKplus are the nine I/O pins. These pins can be used with a script to perform test and automation on the target embedded system. There are nine I/O along with a dedicated ground and a +3.3V power pin. The I/O are broken up into 5 general I/O, 3 analog in and one analog output.
Between all these different capabilities I’ve found that the ULINKplus can be an extremely interesting and useful tool to have in the toolbox. I’ve only just started to play around the programmer and will provide further tips and tricks on how to get the most from this tool in several of my upcoming blogs.