Hi,
We are thinking about an evolution of our existing product that uses a vs1005.
The plan is to stream music with a vs1010.
So the vs1010 would read an audio stream from USB and then send it as an I2S signal to 3 amplifiers.
Will it be also possible to send usb data to the VS1010?
We would like to be able to send a mute/unmute amplifier command and control the amplifier volume.
Thanks,
Max
VS1010 usb audio stream to I2S
Re: VS1010 usb audio stream to I2S
Without testing, I would say that VS1010 DAC, sends USB audio also to I2S. And if the USB host changes the volume or mutes it, the volume changes in the I2S too.
Some status pins are available. GPIO2_0 16/16+ bits per sample GPIO2_1 sample rate >48k and I think GPIO2_0 is if host is sending audio.
These are ROM default and extending the system towards that way is on the easy side.
If you intend to add some CDC serial port, things require testing to get right.
Some status pins are available. GPIO2_0 16/16+ bits per sample GPIO2_1 sample rate >48k and I think GPIO2_0 is if host is sending audio.
These are ROM default and extending the system towards that way is on the easy side.
If you intend to add some CDC serial port, things require testing to get right.
Re: VS1010 usb audio stream to I2S
USB Audio Device implements USB Audio 1.0 or USB Audio 2.0 and both can have audio controls that adjust volume and mute.
So, it's a matter of implementing the USB Audio device and configuration descriptors and the corresponding functionality. We've done it with most VLSI chips that have USB. If Hannu remembers correctly, the ROM/example code does implements volume and mute controls.
So, it's a matter of implementing the USB Audio device and configuration descriptors and the corresponding functionality. We've done it with most VLSI chips that have USB. If Hannu remembers correctly, the ROM/example code does implements volume and mute controls.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
Re: VS1010 usb audio stream to I2S
Thanks for you quick reply.
Correct me if i'm wrong but the volume control from the host will not do what we need.
Because if the amplifier are note muted, the noise will still be amplified and can be heard at high volume.
The second point is that we have some client that want to set left speaker amplifier at a different volume than the right one.
Same thing for the subwoofer amplifier.
So the questions is : will it possible to send other data over usb at the same time that we are streaming audio over usb with the vs1010?
Thanks for your help,
Max
Correct me if i'm wrong but the volume control from the host will not do what we need.
Because if the amplifier are note muted, the noise will still be amplified and can be heard at high volume.
The second point is that we have some client that want to set left speaker amplifier at a different volume than the right one.
Same thing for the subwoofer amplifier.
So the questions is : will it possible to send other data over usb at the same time that we are streaming audio over usb with the vs1010?
Thanks for your help,
Max
Re: VS1010 usb audio stream to I2S
With a USB composite device making a DAC + CDC UART.
The VS1010 has 4 endpoints. 4 in and 4 out. One pair (0) goes to setup. another pair for DAC and feedback. CDC requires data pair and interrupt and after that one out endpoint is left.
So it is doable and tedious, but after features adding features like ADC back to computer or HID buttons for volume control is impossible.
Another solution is vendor specific things but after that computer software is needed.
The VS1010 has 4 endpoints. 4 in and 4 out. One pair (0) goes to setup. another pair for DAC and feedback. CDC requires data pair and interrupt and after that one out endpoint is left.
So it is doable and tedious, but after features adding features like ADC back to computer or HID buttons for volume control is impossible.
Another solution is vendor specific things but after that computer software is needed.
Re: VS1010 usb audio stream to I2S
If the amplifier has volume control, you don't need to perform volume on the vs1010. You can receive the Volume/mute commands from the USB host and then forward the commands to the amplifier/DAC (probably SPI control bus).max_1536 wrote: Mon 2025-03-24 19:27Because if the amplifier are note muted, the noise will still be amplified and can be heard at high volume.
USB volume control can describe master volume and/or separate volume settings for each channel, so this is possible.max_1536 wrote: Mon 2025-03-24 19:27The second point is that we have some client that want to set left speaker amplifier at a different volume than the right one.
Same thing for the subwoofer amplifier.
You mention left, right, subwoofer. Are there 3 channels of audio data going through USB?
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
Re: VS1010 usb audio stream to I2S
I don't think there will be 3 channels of audio data going through USB.
Our current product has a keypad that send I2C command to set the amplifier left/right, front/rear and subwoofer volume.
For the evolution of this product we won't have a keypad, but we would like to have the exact same feature trough usb command.
Thanks,
Max
Our current product has a keypad that send I2C command to set the amplifier left/right, front/rear and subwoofer volume.
For the evolution of this product we won't have a keypad, but we would like to have the exact same feature trough usb command.
Yes this is what we want to do! The volume/mute command can they be custom command that we create or are they part of the USB audio 2.0?You can receive the Volume/mute commands from the USB host and then forward the commands to the amplifier/DAC (probably SPI control bus).
Thanks,
Max
Re: VS1010 usb audio stream to I2S
You can only have volume settings for actual audio channels coming from the USB, but USB Audio descriptor can describe mixers and other elements that can "publish" subwoofer level control to the USB Audio Interface.
Selector units could be used to switch between amplifier and headphone output if the product had those.
Selector units could be used to switch between amplifier and headphone output if the product had those.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
Re: VS1010 usb audio stream to I2S
I read about USB audio 2.0 and we will have 5 audio channels, front left, front right, rear leaft, rear right and subwoofer.
So If I understand correclty, I should be able to control balance, fade, and subwoofer with the USB audio 2.0, right?
Does the vs1010 already have a working USB audio library than we can work with?
Thanks for your help,
Max
So If I understand correclty, I should be able to control balance, fade, and subwoofer with the USB audio 2.0, right?
Does the vs1010 already have a working USB audio library than we can work with?
Thanks for your help,
Max
Re: VS1010 usb audio stream to I2S
Hi,
Implementing volume controls and mutes to descriptor for 5 channel audio is one thing. Another is how the USB host supports the control. And as Pasi mentioned, there are selectors, mixers, compressors and other effects available on the USB interface. However I don't know any host system which uses them properly. At least I wasn't able to change the input from line-in 1 to line-in 2 with descriptor trickery. However, controlling volume should be something which should be supported. But I don't really know because I haven't implemented multi-channel audio devices
The totally different thing is the 5 channel audio data. Getting them to VS1010 should be possible. However what should be done with them? There are 2 channels for I2S, 2 DAC channels. What should be done with the one leftover channel? Or should there be done some kind of selection? How do we select what goes where?
I have written some USB audio devices, some descriptor tools and always ended up rewriting everything by hand because some requirement doesn't fit to particular design. So no fancy USB generators
IIRC Android audio is USB1 UAC2 implementation for DAC purposes.
Implementing volume controls and mutes to descriptor for 5 channel audio is one thing. Another is how the USB host supports the control. And as Pasi mentioned, there are selectors, mixers, compressors and other effects available on the USB interface. However I don't know any host system which uses them properly. At least I wasn't able to change the input from line-in 1 to line-in 2 with descriptor trickery. However, controlling volume should be something which should be supported. But I don't really know because I haven't implemented multi-channel audio devices
The totally different thing is the 5 channel audio data. Getting them to VS1010 should be possible. However what should be done with them? There are 2 channels for I2S, 2 DAC channels. What should be done with the one leftover channel? Or should there be done some kind of selection? How do we select what goes where?
I have written some USB audio devices, some descriptor tools and always ended up rewriting everything by hand because some requirement doesn't fit to particular design. So no fancy USB generators

IIRC Android audio is USB1 UAC2 implementation for DAC purposes.