MFA Kit and AN00124 under Win7

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
Post Reply
frido1
Member
Posts: 9
Joined: Fri Jan 08, 2016 12:42 pm

MFA Kit and AN00124 under Win7

Post by frido1 »

Hello,
I am trying to work with my MFA Kit using the CDC example provided with AN00124. So far I don't succeeded, Windows reports a unknown device instead of a virtual COM port.

I imported the sources from AN00124 into a project, included the required libraries and did the changes listed below.
  • Makefile:
    TARGET = xk_usb_audio_u8_2c.xn (xk_usb_audio_u8_2c.xn copied to to the source directory)
  • main.xc:
    //on tile[1]: app_virtual_com(cdc_data);
    on USB_TILE: app_virtual_com(cdc_data);
Build completes without errors/warnings, constraints checks passed. Running the application on MFA kit (XTAG-3 / JTAG) is possible.

However, when connecting the MFA to a computer (Windows7/32bit), Windows don't asks for a host driver but immediately comes up with a message that a device was not recognized. Windows device manager lists the MFA as unknown device (error code 43) under USB-Controllers.

Any suggestions? Thanks in advance!


User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

Next, investigate the details of this unknown device. Device Manager is friendly to offer the Vendor IDs / Device IDs / PID of the attached PCI, PCIe, USB devices. Compare the IDs of this unknown device against the code you have compiled and see if there is a match.

If the IDs do match then you are missing the device driver package to finish this installation. See my post to your other post for more details. Sounds like you are missing only the device driver files (ie. INF file for 32 bit OS installation or INF + CAT file for 64 bit OS installation).
frido1
Member
Posts: 9
Joined: Fri Jan 08, 2016 12:42 pm

Post by frido1 »

Hi mon2,

many thanks for your replies. The MFA kit is based on the XS1-U8A-64 (single tile), so I had to modify the original code from AN00124. I'm a newbie with the xcore architecture, so maybe my modifications are incorrect / incomplete...

The issue I'm facing is that the USB device (MFA kit running modified AN00124) fails enumeration. I'm using Windows 7 / 32 bit / SP1. Below is the information from the Windows tool "USB Device Tree View" about the device, connected to port 1 of a USB root hub of the PC:

=========================== USB Port1 ===========================

Connection Status : 0x02 (Device failed enumeration)
Port Chain : 3-1-1

======================== USB Device ========================

+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : Unknown Device
Device Path : \\.\USB#VID_0000&PID_0000#6&12eac3bd&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
Device ID : USB\VID_0000&PID_0000\6&12EAC3BD&0&1
Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0028 (GUID_DEVCLASS_USB)
Driver Inf : C:\Windows\inf\usb.inf
Legacy BusType : PNPBus
Class : USB
Service :
Enumerator : USB
Location Info : Port_#0001.Hub_#0003
Manufacturer Info : (Standard-USB-Hostcontroller)
Capabilities : 0x44 (Removable, RawDeviceOK)
Address : 1
Problem Code : 43 (CM_PROB_FAILED_POST_START)
Power State : D3 (supported: D0, D2, D3, wake from D0, wake from D2)

---------------- Connection Information ---------------
Connection Index : 0x01 (1)
Connection Status : 0x02 (DeviceFailedEnumeration)
Current Config Value : 0x00
Device Address : 0x00 (0)
Is Hub : 0x00 (no)
Number Of Open Pipes : 0x00 (0)
Device Bus Speed : 0x00 (Low-Speed)

------------------ Device Descriptor ------------------
bLength : 0x00 (0 bytes)


Same issue when connecting to another USB port of the same PC or to another PC under Windows XP.

The MFA kit itself seems to work correctly. Running the original code from FLASH results in a fully functional USB soundcard. Meanwhile I succeeded also to build an application of the USB audio framework and running it over XTAG-3, which also results in a functional USB soundcard.

Any suggestions? Thanks in advance!
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

Hello frido1. While we do not have the referenced MFA kit, the target processor should work to run this application note. Also in the middle of a winter storm here in Canada and without any XMOS hardware. Anyways, after 30 minutes of fiddling with the latest compiler, managed to compile this application note. Suspecting the issue is how you are importing this project.

Please try the following method:

a) start the xTIMEComposer ( 14.1.2 ) and create a fresh workspace
b) once the desktop menus have launched, select the EXAMPLES button on the left side pane
c) type in CDC in the search content on http://www.xmos.com search bar
d) under USB Examples you should see the AN00124 Virtual Serial Port - double click this selection
e) under Version, you will see 2 versions listed. Please select the older version 2.0.0 (for now).
f) ok to import to the current workspace you created on launch
g) proceed to select the Project pulldown -> Clean -> Build All. Does this work for you ?

Review the Makefile from this imported project and note how to target the U series CPU vs. XCORE-200 CPU devices. It is the U series that you wish to select. For now, accept this project as-is. From what I can see at this time of writing, there is no love lost if you comment out the line which reads as:

on tile[1]: app_virtual_com(cdc_data);

change to:

//on tile[1]: app_virtual_com(cdc_data);

as the above is the handler for the CDC port API and should not be required to first enumerate the CDC virtual port.

Once you can confirm that this build does indeed emit the valid IDs (not just zeroes) then proceed to customize the above commented line.

The posting you made of the USB interface reveals that the compiled code is not broadcasting any valid IDs - this project does feature legitimate USB IDs and I can see that also the signed drivers are now posted under the drivers folder. That is, you should be fine to compile this code as-is and the port should be detected by Windows and then request a device driver -> then point to the sub-folder for your project -> drivers folder to install this new USB device.

Attempt the above and post back you results. If it should fail then post the USB details again like you have done earlier. Good luck !! I really think you are very close.

PS: Wish I could say that the tools are becoming easier to use but there is always something broken. However, if you master the hurdles, you will really appreciate the XMOS product line. With regret, there is always some disconnect between the hardware and software.
frido1
Member
Posts: 9
Joined: Fri Jan 08, 2016 12:42 pm

Post by frido1 »

Hi mon2,

many thanks for your answer!

Accordingly, I built AN00124 version 2.0.0 which works. It seems that the newer versions of the used libraries in v2.0.1 and v2.0.2 are causing problems.

Interesting enough is that I face the same issue (USB device fails enumeration) if I build an run the latest version (sw_usb_audio-[sw]_6.14.0beta2) of an application of the USB audio framework. Using an older version (sw_usb_audio-[sw]_6.12.6) results in a functional USB soundcard...

Greetings to Canada!
User avatar
bowerymarc
Active Member
Posts: 40
Joined: Mon Dec 30, 2013 7:29 am
Contact:

Post by bowerymarc »

BUMP... I'm hoping xmos can re-post AN00124 version 2.0.0 as I'm not able to get v2.0.2 to run on the XK-AUDIO-216-MC board. File not found...
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

Finding nothing but broken links - documentation links included are also broken. Just emailed their FAE group. Guessing the issue is temporary.

Did find v1.0 of the AN00124 s/w if that is of interest. Can post on demand.
Post Reply