Stufin
Home Quick Cart Profile

ULINK2 ARM USB JTAG Programmer

Buy Now

Interface

USB, JTAG, SWD, SWO

Data Transfer Rate

Up to 3.5 Mbps

Power Consumption

500 mA (typical)

Operating Temperature

-40C to +85C

Dimensions

70 mm x 40 mm x 20 mm (2.76 in x 1.57 in x 0.79 in)

Weight

50 g (1.76 oz)

Applications

The ULINK2 ARM USB JTAG Programmer is an essential tool for IoT developers, engineers, and hobbyists working with ARM-based microcontrollers. It is suitable for a wide range of applications, including

IoT device development

Embedded system design

Robotics and automation

Industrial control systems

Medical device development

Aerospace and defense systems

Conclusion

The ULINK2 ARM USB JTAG Programmer is a powerful and versatile debugging tool that provides a reliable and efficient way to program and debug ARM-based microcontrollers. With its advanced debugging capabilities, high-speed data transfer, and robust construction, it is an essential tool for anyone working with ARM-based IoT projects.

Pin Configuration

  • ULINK2 ARM USB JTAG Programmer Pinout Documentation
  • The ULINK2 ARM USB JTAG Programmer is a compact and versatile debugging tool for ARM microcontrollers. It provides a convenient interface for programming, debugging, and testing ARM-based systems. This documentation provides a detailed explanation of the ULINK2's pins, their functions, and how to connect them.
  • Pinout Structure:
  • The ULINK2 ARM USB JTAG Programmer has a 20-pin connector, with the following pinout structure:
  • | Pin # | Pin Name | Function | Description |
  • | --- | --- | --- | --- |
  • | 1 | VREF | Reference Voltage | Provides a reference voltage for the target system |
  • | 2 | TRST | Test Reset | Resets the target system's test logic |
  • | 3 | TCK | Test Clock | Provides the clock signal for the target system's test logic |
  • | 4 | TMS | Test Mode Select | Selects the test mode for the target system's test logic |
  • | 5 | TDI | Test Data In | Transfers data into the target system's test logic |
  • | 6 | TDO | Test Data Out | Transfers data out of the target system's test logic |
  • | 7 | CNEX | Connect External | Not used, reserved for future expansion |
  • | 8 | GND | Ground | Provides a ground connection for the target system |
  • | 9 | VCC | Power Supply | Provides power to the target system (up to 3.3V) |
  • | 10 | RTCK | Return Test Clock | Returns the test clock signal from the target system |
  • | 11 | GND | Ground | Provides a ground connection for the target system |
  • | 12 | SWO | Serial Wire Output | Outputs serial debug data from the target system |
  • | 13 | SWDIO | Serial Wire Data Input/Output | Bi-directional data transfer for serial wire debugging |
  • | 14 | SWCLK | Serial Wire Clock | Provides the clock signal for serial wire debugging |
  • | 15 | GND | Ground | Provides a ground connection for the target system |
  • | 16 | nTRST | Inverted Test Reset | Inverted test reset signal for the target system |
  • | 17 | GND | Ground | Provides a ground connection for the target system |
  • | 18 | VCOM | VCOM (Communication) | Not used, reserved for future expansion |
  • | 19 | GND | Ground | Provides a ground connection for the target system |
  • | 20 | RST | Reset | Resets the ULINK2 programmer itself |
  • Pin Connection Guidelines:
  • When connecting the ULINK2 ARM USB JTAG Programmer to a target system, follow these guidelines:
  • Power Supply (VCC): Connect to the target system's power supply (up to 3.3V).
  • Ground (GND): Connect to the target system's ground.
  • JTAG Pins (TCK, TMS, TDI, TDO, TRST): Connect to the corresponding JTAG pins on the target system.
  • Serial Wire Pins (SWO, SWDIO, SWCLK): Connect to the corresponding serial wire pins on the target system for serial wire debugging.
  • Reset Pins (RST, nTRST): Connect to the target system's reset pins, if applicable.
  • Reference Voltage (VREF): Connect to the target system's reference voltage, if required.
  • Return Test Clock (RTCK): Connect to the target system's return test clock pin, if applicable.
  • Important Notes:
  • The ULINK2 ARM USB JTAG Programmer can operate with a wide range of target systems, but ensure compatibility before connecting.
  • Always follow the target system's pinout and connection guidelines to avoid damage or incorrect operation.
  • Use appropriate cable lengths and shielding to minimize signal noise and ensure reliable communication.
  • Refer to the ULINK2's user manual and target system documentation for specific connection diagrams and usage guidelines.
  • By following these pinout explanations and connection guidelines, you can effectively use the ULINK2 ARM USB JTAG Programmer with your target system for efficient programming, debugging, and testing.

Code Examples

ULINK2 ARM USB JTAG Programmer Documentation
Overview
The ULINK2 ARM USB JTAG Programmer is a USB-based JTAG debugger and programmer designed for debugging and programming ARM-based microcontrollers. It provides a convenient and fast way to debug and program ARM devices using a PC.
Features
Supports ARM7, ARM9, ARM11, and Cortex-M/R/A processors
 High-speed USB interface
 JTAG, SWD, and I2C interfaces
 Supports programming and debugging of flash and SRAM
 Compatible with Keil Vision, IAR Embedded Workbench, and other ARM development tools
Getting Started
To use the ULINK2 ARM USB JTAG Programmer, you'll need:
ULINK2 device
 USB cable
 ARM-based microcontroller or development board
 PC with USB port and compatible development software (e.g., Keil Vision, IAR Embedded Workbench)
Code Examples
### Example 1: Programming an STM32F103RB Microcontroller using Keil Vision
Hardware Requirements
STM32F103RB microcontroller or development board
 ULINK2 ARM USB JTAG Programmer
 USB cable
 PC with Keil Vision installed
Software Requirements
Keil Vision 5 (or later)
 STM32F103RB device pack
Code
```c
#include "stm32f10x.h"
int main(void) {
  // Initialize led pins as output
  GPIO_InitTypeDef GPIO_InitStruct;
  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStruct);
while (1) {
    // Toggle led
    GPIO_SetBits(GPIOA, GPIO_Pin_5);
    delay(500);
    GPIO_ResetBits(GPIOA, GPIO_Pin_5);
    delay(500);
  }
}
```
Steps
1. Connect the ULINK2 device to the PC using a USB cable.
2. Connect the STM32F103RB microcontroller or development board to the ULINK2 device using a JTAG cable.
3. Create a new project in Keil Vision and select the STM32F103RB device.
4. Write and compile the code above.
5. Download the code to the microcontroller using the ULINK2 device.
6. Run the code and observe the led toggling on the development board.
### Example 2: Debugging an LPC1768 Microcontroller using IAR Embedded Workbench
Hardware Requirements
LPC1768 microcontroller or development board
 ULINK2 ARM USB JTAG Programmer
 USB cable
 PC with IAR Embedded Workbench installed
Software Requirements
IAR Embedded Workbench 7 (or later)
 LPC1768 device pack
Code
```c
#include "LPC1768.h"
int main(void) {
  // Initialize UART0
  UART0_Init(UART0_LCR_8BITS, UART0_Baudrate_115200);
while (1) {
    // Send a string to the UART
    UART0_SendString("Hello, world!
");
    delay(1000);
  }
}
```
Steps
1. Connect the ULINK2 device to the PC using a USB cable.
2. Connect the LPC1768 microcontroller or development board to the ULINK2 device using a JTAG cable.
3. Create a new project in IAR Embedded Workbench and select the LPC1768 device.
4. Write and compile the code above.
5. Download the code to the microcontroller using the ULINK2 device.
6. Run the code and observe the UART output using a terminal emulator.
Note: These examples are just a starting point, and you'll need to consult the ULINK2 documentation and the documentation for your specific microcontroller or development board for more detailed information on using the ULINK2 device with your specific setup.