USB Not Detected - app_usb_aud_mic_array

If you have a simple question and just want an answer.
SimonFirstTimeXmos
Member
Posts: 13
Joined: Fri Sep 29, 2017 8:45 am

USB Not Detected - app_usb_aud_mic_array

Post by SimonFirstTimeXmos »

I have an xCORE ARRAY MICROPHONE XK-USB-MIC-UF216 which I have programmed with app_usb_aud_mic_array.
I belive it is programmed as the A button responds to presses by toggling the state of the umpteen red leds.
But when I plug it into my Win10 pc it is not recognised as a device.
It doesn't appear in Device Manager or Control Panel/Sound or Audaciity.
I've tried both the 1i8o2 and 2i8o2 configurations.
I've tried multiple USB cables.
It is plugged directly into the laptop.

I'm assuming there is a WIN 10 driver issue as a similar issue has been raised before (http://www.xcore.com/viewtopic.php?f=3&t=6064) with no resolution.

Any ideas?


SimonFirstTimeXmos
Member
Posts: 13
Joined: Fri Sep 29, 2017 8:45 am

Post by SimonFirstTimeXmos »

For reference I've attached images of Device Manager, TUSBAudio Control Panel and TUSBAudio Firmware Upgrade screens which show no device when it is plugged in.
This is the same on Win7 and Win10 so now I have no clue as to what the issue is.
Image

Image

Image
SimonFirstTimeXmos
Member
Posts: 13
Joined: Fri Sep 29, 2017 8:45 am

Post by SimonFirstTimeXmos »

I get the following warnings when programming but have (so far) ignored them as they are warnings not errors.
Warning: F03098 Factory image and boot loader cannot be write-protected on flash device on node 0
xflash: Warning: F03148 --quad-spi-clock not given, using default 15.62MHz
xflash: Warning: F03149 QE_REGISTER and/or QE_BIT locations not found in XN file for this flash device. Using default quad_spi_qe_location_status_reg_0 and quad_spi_qe_bit_6.
SimonFirstTimeXmos
Member
Posts: 13
Joined: Fri Sep 29, 2017 8:45 am

Post by SimonFirstTimeXmos »

Could it be related to the .xn file referenced?

This one "XS2 MC Audio" is used:
"C:\Projects\XCORE\Source\sw_usb_audio\sw_usb_audio\app_usb_aud_mic_array\src\core\mic_array_ref.xn"

This one "Microphone Array Reference Hardware (XUF216)" isn't:
"C:\Projects\XCORE\Source\lib_mic_array_board_support\xn\MIC-ARRAY-1V3.xn"
SimonFirstTimeXmos
Member
Posts: 13
Joined: Fri Sep 29, 2017 8:45 am

Post by SimonFirstTimeXmos »

Just in case it helps I've attached screengrabs of the xT Project Explorer and xT Flash Config.
Image

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

Post by mon2 »

Hi. It is a bit disturbing not seeing a solid resolution to the same USB enumeration issue posted by assorted developers. Hope there is a concise procedure or fix to get everyone operational soon.

Not an audio developer and do not have your same target PCB but consider to:

Download the application note that relates to using USB HID or USB CDC on the Xcore-200 series which is present on your PCB. The example is supplied with full source code that you should be able to import -> compile as-is and then flash onto your target board. Will be interesting to see if the other USB IP works as-is.

USB Application note for XCORE-200 testing:

https://www.xmos.com/support/appnotes

AN00182: USB HID Class - Extended on xCORE-200 Explorer
AN00184: USB CDC Class as Virtual Serial Port - Extended on xCORE-200 Explorer

Both of the above USB code examples should be able to fire up your board and at least present as a USB unknown device inside of Windows Device Manager. Then, interested to receive your feedback on which USB Vendor and PIDs are shown. Do they match what is inside the XMOS source code? Hope that they do.

If these other USB IPs do not work, then move onto a very simple LED blink code for your target CPU. The focus is to see if the compiled code can perform any of these tasks. Ideally would like to hear that the USB IP enumerates inside of your device manager which it is not at this time. This could be because the QSPI flash is not properly enabled yet the PB is blinking your LEDs so most likely is fine. Concerned about the in-rush current issue linked to the USB Vbus pins. Recently a network of passive parts have been recommended to limit the in-rush current. Scout around this forum for posting from other developers who scoped the Vbus pin. If Vbus overshoots, it can nuke the CPU. We highly recommend an USB load switch which does this and much more to prevent such potential damage.

Our understanding is that the QSPI external flash on your target board is required to be programmed with the QE bit enabled. This is because the XMOS factory OTP ROM code is demanding to load using QSPI mode. Suspecting this is ok since you have noted the LEDs do something with the pushbutton presses.

Summary,

1) start with pre-canned USB IP to morph your board to being a USB HID device. Test again. Does it work? If not...move on

2) If above fails, test a simple LED blinker. Does it work using the XTAG tool (ie. from RAM loading)? If yes, flash onto your target external QSPI flash -> power cycle the board -> does the board continue to blink the LED as you have coded ? If yes, then the warnings can be ignored. If not, the QSPI flash is not being properly flashed.

3) If the code for led blink works then some USB related issue is at play. Again, not sure if the target board features the in-rush current protection or not. Hope this is not the issue but the CPU could have been potentially damaged from a USB cable insertion into the PC - a number of developers have reported this quirk already.

https://www.xcore.com/viewtopic.php?t=5808

http://www.xcore.com/viewtopic.php?t=5936
SimonFirstTimeXmos
Member
Posts: 13
Joined: Fri Sep 29, 2017 8:45 am

Post by SimonFirstTimeXmos »

Thanks Mon2 for your suggestions. So...

AN00182_hid_extended_explorer
- Build OK
- Flash Warnings
- Warning: F03098 Factory image and boot loader cannot be write-protected on flash device on node 0
- xflash: Warning: F03148 --quad-spi-clock not given, using default 15.62MHz
- Note
- No F03149 warning
- Result
- All red LEDs come on
- Not detected as USB !!

AN00184_cdc_extended_explorer
- Build OK
- Flash Warnings
- Warning: F03098 Factory image and boot loader cannot be write-protected on flash device on node 0
- xflash: Warning: F03148 --quad-spi-clock not given, using default 15.62MHz
- Note
- No F03149 warning
- Result
- 5 (four round the edge and one in the middle) red LEDs come on
- Not detected as USB !!

Blinking Timer Test
- Edited app_usb_aud_mic_array such that the LEDs flash on/off at 1000ms intervals after the A button press
- Built and flashed
- Timing worked as expected
- Not detected as USB !!

Next task is to look deeper into your linked post regarding USB related quirks (https://www.xcore.com/viewtopic.php?t=5808).
Really hope this is not the issue as this was an OTS dev board.
SimonFirstTimeXmos
Member
Posts: 13
Joined: Fri Sep 29, 2017 8:45 am

Post by SimonFirstTimeXmos »

Quick update. I currently have two open tickets with XMOS (first opened 2017/10/02) for their input on the issue. No response yet.
Moved onto alternative project while waiting for XMOS response. Will update if _anything_ happens.
SimonFirstTimeXmos
Member
Posts: 13
Joined: Fri Sep 29, 2017 8:45 am

Post by SimonFirstTimeXmos »

Update -- Had some interesting and productive support from XMOS. Tried some new software (they are going to update some links) and was able to build an .xe file which works on their dev board but not mine.
Sadly going to have to exchange the board for a new one but if it works then I'll be happy and can give everyone who helped 5 stars.
puzzle
New User
Posts: 3
Joined: Thu Oct 05, 2017 10:26 pm

Post by puzzle »

I have exactly the same issue running app_usb_aud_mic_array on the official dev board XK-USB-MIC-UF216. Looking forward to getting some updates from XMOS.
Post Reply