MCU Link USB Device Technical Details

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MCU Link USB Device Technical Details

1,223 Views
Frotz
Contributor III

Hi,

I'm designing a new IDE for microcontroller projects on macOS. I'd like it to work flawlessly with the new MCU-Link and therefore am asking where I can find all the technical specifications and perhaps sample code, for working with the MCU-Link as a DAP from the host side and the details of how the serial port, and especially how to use the "MCU-NXP TRACE" interface from the host. 

Thank you very much,

Andre.

0 Kudos
Reply
6 Replies

1,205 Views
Frotz
Contributor III

Hi,

I'm trying to create a debugger/programmer/communicator on a macOS host. If the technical details of how to do that with MCU-Link & others has not been published publicly, I'd like to find out where it's kept and who is the keeper. I would expect to find it behind an NDA-wall if not out in the wild. Does any one know where it's to be found and who I should speak with?

Thank you very kindly,

Andre.

0 Kudos
Reply

1,201 Views
converse
Senior Contributor V

I don’t know, but you’ll need to go through the NXP confidential support system here:

https://www.nxp.com/support/support:SUPPORTHOME

I think it unlikely that you will get anywhere as I suspect it is proprietary and will stay that way. You will be better off using a public standard such as CMSIS-DAP.

https://arm-software.github.io/CMSIS_5/DAP/html/index.html

 

 

0 Kudos
Reply

1,199 Views
Frotz
Contributor III

Hi Converse,

I've seen ARM's documentation as you've pointed out, but could do with more details/support/sample code—"the works"—if you will. Also, this is rather generic. I'd really like to make sure I get MCU-Link (and others) working flawlessly with the app. That usually needs more info and a working relationship. I hope to start that with NXP shortly. 

Thanks,

Andre.

0 Kudos
Reply

1,216 Views
converse
Senior Contributor V

All debug probes use the same interfaces onto the chip. MCU-Link will be no different. So, as long as you follow the standard design rules, you will be OK. See

https://community.nxp.com/t5/LPCXpresso-IDE-FAQs/Design-Considerations-for-Debug/m-p/469565

 

0 Kudos
Reply

1,211 Views
Frotz
Contributor III

Hi,

That's an interesting post you're linking to, but it doesn't answer my needs. I'm needing host-based code and specifications for using the USB interfaces of the MCU-link USB device. I'm specifically talking about the USB spec here which defines a USB device and being made up of one or more USB interfaces. See the following output from the macOS developer app USB Prober. Interface #0 and #1 are the interesting ones.

 

Thank you very much,

Andre.

 

High Speed device @ 16 (0xFD132130): ............................................. Miscellaneous/Common Class device: "MCU-LINK r0FF CMSIS-DAP V0.078"
Port Information: 0x0018
Not Captive
External Device
Connected
Enabled
Device Descriptor
Descriptor Version Number: 0x0200
Device Class: 239 (Miscellaneous)
Device Subclass: 2 (Common Class)
Device Protocol: 1 (Interface Association)
Device MaxPacketSize: 64
Device VendorID/ProductID: 0x1FC9/0x0143 (unknown vendor)
Device Version Number: 0x0101
Number of Configurations: 1
Manufacturer String: 1 "NXP Semiconductors"
Product String: 2 "MCU-LINK r0FF CMSIS-DAP V0.078"
Serial Number String: 3 "V4TYG34TK40QK"
Configuration Descriptor
Length (and contents): 139
Raw Descriptor (hex) 0000: 09 02 8B 00 04 01 00 80 FA 09 04 00 00 02 03 00
Raw Descriptor (hex) 0010: 00 04 09 21 00 01 00 01 22 23 00 07 05 81 03 00
Raw Descriptor (hex) 0020: 04 01 07 05 01 03 00 04 01 09 04 01 00 02 03 00
Raw Descriptor (hex) 0030: 00 08 09 21 00 01 00 01 22 23 00 07 05 84 03 00
Raw Descriptor (hex) 0040: 04 01 07 05 04 03 00 04 01 08 0B 02 02 02 02 00
Raw Descriptor (hex) 0050: 05 09 04 02 00 01 02 02 00 05 05 24 00 10 01 05
Raw Descriptor (hex) 0060: 24 01 01 03 04 24 02 02 05 24 06 02 03 07 05 86
Raw Descriptor (hex) 0070: 03 10 00 07 09 04 03 00 02 0A 00 00 05 07 05 05
Raw Descriptor (hex) 0080: 02 00 04 00 07 05 85 02 00 04 00
Number of Interfaces: 4
Configuration Value: 1
Attributes: 0x80 (bus-powered)
MaxPower: 500 ma
Interface #0 - HID .............................................. "MCU-LINK CMSIS-DAP V0.078"
Alternate Setting 0
Number of Endpoints 2
Interface Class: 3 (HID)
Interface Subclass; 0
Interface Protocol: 0
HID Descriptor
Descriptor Version Number: 0x0100
Country Code: 0
Descriptor Count: 1
Descriptor 1
Type: 0x22 (Report Descriptor)
Length (and contents): 35
Raw Descriptor (hex) 0000: 06 00 FF 09 01 A1 01 15 00 26 FF 00 75 08 96 00
Raw Descriptor (hex) 0010: 04 09 01 81 02 96 00 04 09 01 91 02 95 01 09 01
Raw Descriptor (hex) 0020: B1 02 C0
Parsed Report Descriptor:
Usage Page (65280)
Usage 1 (0x1)
Collection (Application)
Logical Minimum......... (0)
Logical Maximum......... (255)
Report Size............. (8)
Report Count............ (1024)
Usage 1 (0x1)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield)
Report Count............ (1024)
Usage 1 (0x1)
Output.................. (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield)
Report Count............ (1)
Usage 1 (0x1)
Feature................. (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield)
End Collection
Endpoint 0x81 - Interrupt Input
Address: 0x81 (IN)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 1024 (1024 x 1 transactions opportunities per microframe)
Polling Interval: 1 (1 microframe (125 microsecs) )
Endpoint 0x01 - Interrupt Output
Address: 0x01 (OUT)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 1024 (1024 x 1 transactions opportunities per microframe)
Polling Interval: 1 (1 microframe (125 microsecs) )
Interface #1 - HID .............................................. "MCU-LINK NXP TRACE"
Alternate Setting 0
Number of Endpoints 2
Interface Class: 3 (HID)
Interface Subclass; 0
Interface Protocol: 0
HID Descriptor
Descriptor Version Number: 0x0100
Country Code: 0
Descriptor Count: 1
Descriptor 1
Type: 0x22 (Report Descriptor)
Length (and contents): 35
Raw Descriptor (hex) 0000: 06 EB FF 09 01 A1 01 15 00 26 FF 00 75 08 96 00
Raw Descriptor (hex) 0010: 04 09 01 81 02 96 00 04 09 01 91 02 95 01 09 01
Raw Descriptor (hex) 0020: B1 02 C0
Parsed Report Descriptor:
Usage Page (65515)
Usage 1 (0x1)
Collection (Application)
Logical Minimum......... (0)
Logical Maximum......... (255)
Report Size............. (8)
Report Count............ (1024)
Usage 1 (0x1)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield)
Report Count............ (1024)
Usage 1 (0x1)
Output.................. (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield)
Report Count............ (1)
Usage 1 (0x1)
Feature................. (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield)
End Collection
Endpoint 0x84 - Interrupt Input
Address: 0x84 (IN)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 1024 (1024 x 1 transactions opportunities per microframe)
Polling Interval: 1 (1 microframe (125 microsecs) )
Endpoint 0x04 - Interrupt Output
Address: 0x04 (OUT)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 1024 (1024 x 1 transactions opportunities per microframe)
Polling Interval: 1 (1 microframe (125 microsecs) )
Interface Association Communications-Control
First Interface 2
Interface Count 2
Function Class 2 (Communications-Control)
Function Subclass 2
Interface Protocol 0
Function String 5 "VCOM"
Interface #2 - Communications-Control .............................................. "VCOM"
Alternate Setting 0
Number of Endpoints 1
Interface Class: 2 (Communications-Control)
Interface Subclass; 2
Interface Protocol: 0
Comm Class Header Functional Descriptor
Raw Descriptor (hex) 0000: 05 24 00 10 01
Comm Class Call Management Functional Descriptor
Raw Descriptor (hex) 0000: 05 24 01 01 03
Comm Class Abstract Control Management Functional Descriptor
Raw Descriptor (hex) 0000: 04 24 02 02
Comm Class Union Functional Descriptor
Raw Descriptor (hex) 0000: 05 24 06 02 03
Endpoint 0x86 - Interrupt Input
Address: 0x86 (IN)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 16 (16 x 1 transactions opportunities per microframe)
Polling Interval: 7 (64 microframes (8 msecs) )
Interface #3 - Communications-Data/Unknown Comm Class Model .............................................. "VCOM"
Alternate Setting 0
Number of Endpoints 2
Interface Class: 10 (Communications-Data)
Interface Subclass; 0 (Unknown Comm Class Model)
Interface Protocol: 0
Endpoint 0x05 - Bulk Output
Address: 0x05 (OUT)
Attributes: 0x02 (Bulk no synchronization data endpoint)
Max Packet Size: 1024
Polling Interval: 0 ( Endpoint never NAKs)
Endpoint 0x85 - Bulk Input
Address: 0x85 (IN)
Attributes: 0x02 (Bulk no synchronization data endpoint)
Max Packet Size: 1024
Polling Interval: 0 ( Endpoint never NAKs)

0 Kudos
Reply

1,208 Views
converse
Senior Contributor V

It is not clear what you are trying to do. MCU-Link is a debug probe. It is designed to be connected to a debugger on the host. AFAIK, the interface between the host and MCU-Link is private (i.e. NXP have not published the interface). Please be more explicit on what you are trying to do.

0 Kudos
Reply