XS1-L1-USB-AUDIO-2.0 48pin board identification problem

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
User avatar
eladmmor
Member++
Posts: 21
Joined: Tue May 01, 2012 1:58 pm

XS1-L1-USB-AUDIO-2.0 48pin board identification problem

Post by eladmmor »

hey All!
I have built an USB to SPDIF board based on the single channel reference design(RD).
The board is very similar to the RD (uses the 48-pin XS1-L1 instead of the 128-pin, different SPI flash- AT25DF021 and IC oscillators instead of the crystals in RD).
The board uses no DAC, and exports the encoded SPDIF signal to be analyzed externally.

The board is successfully generating all the needed voltages(5.0V, 3.3V, 1.8V and 1.0V), and also the 13MHz clock is being generated and measured.
I've also successfully connected the board to XTAG and managed to burn the SPI flash (this means XMOS is getting the clock and correct voltages, including correct power sequencing).

I have made the following RD code adjustments:
1) in file “port32A.h” I have changed the pin assignments of the 32A port.
2) in declaration file “L1_AUDIO.xn” the following definitions:
Package->type to XS1-L1A-TQ48
External devices->Device->type to AT25DF021
3)In file “customdefines.h” - Have changed the definition of DFU_FLASH_DEVICE to ATMEL_AT25DF021

Current problem is I can't get the board to be recognized.
I already have the Thesycon eval driver installed. It is fully functional and tested with RD board.
When trying to connect the board, I get the "USB device not recognized" XP message.
Device is recognized as "unknown device" , under USB controllers category.
When trying to manually install Thesycon driver for the device it gives the following message:
"The specified location does not contain information about your hardware"

Please assist!

Thanks!
Elad


User avatar
eladmmor
Member++
Posts: 21
Joined: Tue May 01, 2012 1:58 pm

Post by eladmmor »

SHORTER VERSION:

Development stage:
The HW is 48-pin embedded USB to SPDIF board based on the single channel reference design(RD).
I've Successfully connected the board to XTAG and managed to burn the SPI flash.

Problem:
I can't get the board to be recognized by the OS.
I already have the Thesycon eval driver installed. It is fully functional and tested with RD board.

Description:
When connecting the board, I get "USB device not recognized" XP message.
Device is recognized as "unknown device" , under USB controllers category.

When trying to manually install Thesycon driver for the device it gives the following message:
"The specified location does not contain information about your hardware"
Any idea?
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

Perhaps try to run some simple HID example to confirm that the USB part of your design is functional
User avatar
Ross
XCore Expert
Posts: 968
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

I agree with Bianco, in addition a USB analyser is well worth investing in!
User avatar
eladmmor
Member++
Posts: 21
Joined: Tue May 01, 2012 1:58 pm

Post by eladmmor »

Bianco:

What do you mean by "HID example" exactly?
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

Hi eladmmor,

At this stage you want to test the USB part of your design as isolated as possible.
This means not to depend on external hardware like audio interfaces and also not to depend on third-party drivers like the thesycon one. That is why i am recommending to try a HID (Human Interface Device) device class first. All common operating systems have drivers for HID class devices so you don't rely on external drivers.

Check here for a few:

http://github.xcore.com/repo_index/sc_usb_readme.html

Perhaps this is a good one:
https://github.com/xcore/sc_usb/tree/ma ... le_usb_hid
Implements a simple mouse.
User avatar
eladmmor
Member++
Posts: 21
Joined: Tue May 01, 2012 1:58 pm

Post by eladmmor »

Another question Bianco:

Let's assume I have implemented the Reference Design with the exact same pin assignment;
with only two changes to the system:
1) using the XS1-L1-TQ48-C5 instead of the 128-pin
2) using the AT25DF021 instead of the AT45FS010 SPI Flash

I made the following changes to RD code:
eladmmor wrote: 2) in declaration file “L1_AUDIO.xn” the following definitions:
Package->type to XS1-L1A-TQ48
External devices->Device->type to AT25DF021
Do I have to make any other changes to code to make it work???
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

I'd say it should work.

Have you confirmed that your USB is working?
User avatar
eladmmor
Member++
Posts: 21
Joined: Tue May 01, 2012 1:58 pm

Post by eladmmor »

Hi Bianco! :)

Actually we have not verified the USB - we were able to determine that the XMOS is "alive",
meaning, we could burn the flash and program the XMOS to toggle a port.

I have found that we've stupidly switched the USBdata+ and USBdata-

Problem is that before this diagnosis, something got fried on the board due to some electrical short, so now i'm not sure this is the problem...
We will try to fix it in a couple of days and then we might get a breakthrough.

I'll keep you updated!!
Thanks for your assistance.
User avatar
eladmmor
Member++
Posts: 21
Joined: Tue May 01, 2012 1:58 pm

Post by eladmmor »

So... There was a fatal mistake of switching between usb_dm and usb_dp :0
After fixing this:
We managed to get USB communication and to identify the board as Thesycon XMOS-L1 audio 2 device! In addition, we were able to get a very similar to RD signal on the SPDIF_TX. For this purpose, We have used a patch to connect the 11.28MHz clock to the XCORE_MCLK (because the circuitry between them was not working).

The rest of the problems on the board are in the SPDIF clock generation. The problems are a result of my poor PCB editing skills and bad selection of components (beware of micropak - extremely hard to solder!!)

We are about to revise the board but I'm pretty confident that the schematic and software are all OK.

more news soon!

Thanks for help,
Elad