Starting with VS1000

Designing hardware that use VLSI Solution's devices as the system controller for the entire design.
Post Reply
richardtam
User
Posts: 4
Joined: Fri 2018-06-22 8:59

Starting with VS1000

Post by richardtam » Fri 2018-06-22 9:36

I bought a Adafruit Audio FX Sound Board, then I know VLSI got some good audio decoding chips! I plan to use VS1000 to develop audio part of my project in my custom PCB. After reading datasheet and application notes, I have the following questions for my development:

1. Does the firmware already included in VS1000 after production and it is ready to use?
2. If the firmware of VS1000 can be modified, what kind of hardware programmer, or software I needed? What is the price?
3. What is the maximum size of the flash memory (store OGG music) can be support in VS1000?
4. I plan to use a LDO to shutdown the power for the audio part including VS1000, audio amp, and flash memory when in device sleep mode, anything I have to notice?
5. What is the startup time (time from power-up to play music) if I use GPIO to control which music file to play?
6. From default setting of the VS1000, it needs to re-adjust the volume by input pin of VS1000, how many dB can be increase for each press/pulse? How many press/pulse to set the maximum volume?
7. What are the differences between VS1000 and VS1011 besides different decoding format?

Thank you very much!
Richard Tam

User avatar
Panu
VLSI Staff
Posts: 2585
Joined: Tue 2010-06-22 13:43

Re: Starting with VS1000

Post by Panu » Fri 2018-06-22 21:50

Hi!

Glad to have you onboard! Indeed we have great chips that allow you to develop great custom players, among other things.

You seem to have a good basic understanding of the VS1000, and we're glad to help you if you want to pursue that path. But before we dig deeply into the internals of the VS1000, could I advertize our more modern chip, the VS1010 a little? Priced just about equally (eventually) with the VS1000, the VS1010 is a lot more modern and a lot more user friendly chip. The VS1000 is difficult to program because you basically need to use the bare metal and there's only 2K of program memory (2 kilowords = 8 kilobytes) and not much internal support for today's memories.

VS1010 on the other hand is a new chip. The bad thing is that because it's so new, that not all of the documentation and examples are yet ready. But internally, the chip can do so much! It has internal ROM decoders for all profiles of MP3 and at least a dozen of WAV profiles, even DXD. More codecs can be added with software. It can easily support HD audio up to 96/24 (and even more with increasing amounts of difficulty). AND it has the VSOS operating system in ROM, complete with SD card and FAT support, as well as USB mass storage device, USB bootloader, USB serial port etc support. With just the ROM, it can be an MP3 player (very basic one, 2 button UI), SD card reader, USB audio device or a USB serial port. And it has a UART command line interpreter with some internal commands such as DIR, TYPE and PLAY to play around with the OS. And all those capabilities are available to the custom software. For custom software, there's a lot more space because the operating system in the ROM has a lot of capabilities, and most of the drivers you need, such as SD card, are already in the ROM.

Please take a look at the VS1010 product pages: http://www.vlsi.fi/en/products/vs1010.html, http://www.vlsi.fi/en/products/vs1010mcu.html (two different points of view to the same IC) and the VS1010 section of this forum, and think if you might want to pursue that path or use the VS1000. Then we can dig in to your questions, one by one.

-Panu
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo, VLSI Solution Oy

richardtam
User
Posts: 4
Joined: Fri 2018-06-22 8:59

Re: Starting with VS1000

Post by richardtam » Mon 2018-06-25 11:50

Hi Panu!

Thanks for your quick reply! I did read the datasheet for VS1010 after your detail introduction. It seems VS1010 has more convenience to use because there is an operating system. I checked the sourcing, price, volume and consider the development time from VS1010/VS1000 for my system, I choose to stick with the VS1000 first. Let's see it how much it can fit in my system first. :)

Beside dig in to my questions. I want to know more about what feature included by default and what I can modify in the firmware. Also the development software, compiler and required software IF I need to re-program the chip. Thanks!

My current job is an digital IC design engineer for display driver. I have experience for develop Arduino MCU with audio decoding IC for my own interest. :P
Just let you know more about my background.

Richard

User avatar
Panu
VLSI Staff
Posts: 2585
Joined: Tue 2010-06-22 13:43

Re: Starting with VS1000

Post by Panu » Mon 2018-06-25 14:42

Hi!

That's a good background, we're all IC design engineers here :lol:

Anyway, to be short and to the point, we must consider the memory first, e.g. the storage where you will store the OGG files.

As far as the ROM is considered, it supports only SLC nand flash chips, the archtype of which is K9F2G08U0M (256 megabytes) which was installed on the VS1000 developer board. The on-board ROM uses a custom NAND flash mapping algorithm based on B trees. When VS1000 was designed, the standard NAND flash was 16 megabytes, and for that memory size it's very fast. For the 256 megabytes, it takes a second or two to build the list of free space. Increase the memory size from that, and it gets progressively slower. K9F8G (1 gigabyte) might be doable, I guess, and when you reach that size, the time it takes to copy the content using the 12Mbps USB starts to become prohibitively long for most practical purposes. So that basically limits the storage size on the VS1000.

By software, we have made storage support of SPI flashes and SD cards. SPI flashes are good for devices with limited fixed content. SD cards are good because you can copy the contents using SD card readers so even large SD cards can be used. Our VS1000 Module, for example, has both an SPI flash and an SD card. The VS1000 module might be a good starting point for your project.

This is the first point to be considered.
Your turn to say something ;)

Oh, yes, regarding the firmware reprogrammability, the first thing is that there's no flash inside the VS1000. Instead, there is 2 kilowords (8 kilobytes) of internal instruction RAM, the contents of which can be loaded from a connected SPI or NAND flash. As with all our chips, the ROM is fixed and immutable, but the chip can be customized by writing small patches to the internal instruction RAM that modify the operation of the ROM using a set of hooks and vectors or by writing your own main loop that calls ROM functions to do most of the stuff.

The software can be developed using VSIDE, our free integrated development environment and our own C compilers.

-Panu
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo, VLSI Solution Oy

richardtam
User
Posts: 4
Joined: Fri 2018-06-22 8:59

Re: Starting with VS1000

Post by richardtam » Sun 2018-09-02 19:07

Hi Panu,

Sorry for late reply. I am busy with other projects in last two months, I think it is good time I get back to my audio project again. :)

My original project only needs about 4Mb to 8Mb for storing the mp3 (now maybe OGG). The number of play files are not more than 10 files at this stage. I think the size is suitable for the VS1000. I plan to use SPI flash interface instead of NAND flash interface because it save space to my tiny circuit board. I also notice that VS1000 can operate with coin battery!! Maybe I can replace the whole system from lithium battery to coin battery!

At first, I think VS1000 is ONLY an audio decoding chip, it seems that it can be programmed and used as a MCU for few functions, is this correct? Now I still don't understand the whole functionality except audio decode and how can I maximum the resources for VS1000 (or others). Any document or example for more understand about it?

My existing design is like this:

switch to interrupt to MCU (avr) --> enable audio power enable in audio LDO --> enable audio chip to play specific music mp3 file (file selection from serial transmission) --> mono audio amp (2W) --> 20mm - 30mm 8ohm speaker --> MCU back to power saving mode and shut down all audio power

The MCU will also control some LEDs' patterns while music starts.

Now what I am thinking:
1. Using minimum required components for VS1000 to play the audio
2. Maybe using pin control for file selection if possible (to improve the music start time after switch pressed)
3. Reduce power when the whole system is wake up and play music
4. Improving sound quality from using VS1000
5. After replace the audio part to VS1000 for first stage (faster development time), I plan to combine the MCU with audio chip if it is possible to serve the same functions and save power (hopefully)

Any inputs are welcome!
Thank you very much!

Richard

User avatar
Panu
VLSI Staff
Posts: 2585
Joined: Tue 2010-06-22 13:43

Re: Starting with VS1000

Post by Panu » Mon 2018-09-03 8:28

Hi!
At first, I think VS1000 is ONLY an audio decoding chip, it seems that it can be programmed and used as a MCU for few functions, is this correct?
That's true, although writing software for the VS1000 is very challenging because it only has 2 kilowords (8 kilobytes) of instruction RAM.

If you want to stick with the VS1000, I think you should start with the VS1000 module: http://www.vlsi.fi/en/products/vsmd001.html
Webstore link: https://webstore.vlsi.fi/epages/vlsi.sf ... les/VS1000

That module is cheap (5 eur per module in quantities) and it's easy to connect the module with your MCU and test a lot of things. And you can use the module firmware as starting point for your software development.

-Panu
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo, VLSI Solution Oy

richardtam
User
Posts: 4
Joined: Fri 2018-06-22 8:59

Re: Starting with VS1000

Post by richardtam » Mon 2018-09-03 18:23

Hi Panu,

Thanks for your suggestions!
I plan to reference to the VS1000 module circuit and design my custom board.
If I got a blank VS1000 chip on my custom board, how can I write the firmware into it? what kind of hardware I need?
Thanks!

Richard

User avatar
Panu
VLSI Staff
Posts: 2585
Joined: Tue 2010-06-22 13:43

Re: Starting with VS1000

Post by Panu » Wed 2018-09-05 21:35

Hi!

There's no flash in the VS1000, only ROM and it cannot be altered, so it's really never either "blank" or "programmed". You can load firmware into the 2K instruction RAM memory at boot time from an external SPI flash.

I'd like to reiterate what I already have said about VS1000 firmware programming being very difficult. Your best way to proceed is to take the VS1000 module firmware and study how it does what it does. You can correlate what you find from the module source code with what you can find in the VS1000 programmer's guide and the VS1000 interfacing reference manual. Both are more than a decade old and only limited support can be given, mainly because we don't actively develop anything new for the VS1000 so there's not too many experts around.

-Panu
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo, VLSI Solution Oy

Post Reply