Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Problems with FTDI VNC2 as a USB Isochronous (Audio) host

Status
Not open for further replies.

Aussie Susan

Advanced Member level 5
Joined
Jan 5, 2015
Messages
1,580
Helped
413
Reputation
826
Reaction score
467
Trophy points
1,363
Activity points
18,653
I am using a VNC2 (in the 32-bit VDIP board and the full Vinculum tool chain) to develop a USB audio host for a design I'm working on. My 2 test audio devices are a Logitech headset (headphones that can be mono or stereo and 8KHz to 48KHz sampling; mono microphone with the same sampling range) and a USB Soundblaster device (stereo headphones at 8KHz and 48KHz sampling; mono microphone a the same sampling frequencies) and the issue I'm having is the same for both.
I have the code that selects the correct interface alternate and sampling frequency and that all seems to work OK (the returned status codes are all 'success').
However when I try to send (or receive) PCM data to the audio device, I am always getting a "Buffer Overrun" error (#8) no matter what buffer and frame sizes I'm setting up.
I have tried writing to the FTDI support email address and their suggestions were to use the USBHost 'USBMic' example (which does't work with the same error message) or 'use another device' (which I think is unhelpful for a product that is supposed to handle any correctly constructed audio USB device - which I believe these are).
I must admit that I am doing one thing that is a bit 'strange' in that I'm reading and parsing the raw descriptor data to locate the available sampling frequencies and channel counts etc fort the various interfaces and alternates. I cannot see how this is done with the Vinculum API itself. However, having found the data I'm interested in, I use code that is almost directly taken from the FTDI sample code to scan all interfaces and select the appropriate interfaces, alternates and endpoints to get the 'handle's that are needed.
Has anyone managed to get the VNC2 chips to work as an isochronous host? Would you be willing to share the code as to how this is supposed to be done?
Alternatively, can anyone provide any pointers or suggestions as to how to get this chip to work as an isochronous host?
Susan
 

I have added a few more tests and I can confirm that I am selecting the correct interface and alternate combination and that the sampling frequency is correct in the corresponding endpoint.
I thought it rather strange that I'm getting a 'buffer overrun' when writing to an endpoint (if I was sending too much data then I'd expect a "Data Overrun" or similar message) so I tried setting up and reading from the microphone endpoint. I *know* I'm telling the IN endpoint that the buffers are much bigger than it needs (and setting the USBHOST_XFER_FLAG_ROUNDING flag).
However I get exactly the same error message.
I'm trying hard to make this not "yet another failed attempt to use the VNC2" (there are way too many stories like that on the net already!) and I feel I'm very close but missing something.
Susan
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top