VS1010B Developer Board Quick Start

Designing hardware and software for systems that use the VS1010 MP3 Audio DSP Microcontroller.
vinayslone
Senior User
Posts: 44
Joined: Tue 2020-11-10 12:34

Re: VS1010B Developer Board Quick Start

Post by vinayslone »

hello Hannu,

Thanks for your reply

I just want to be sure !

1.) Does it mean that we cant have our customized application on VS-1010 without any external memory(Flash/SD card)?
2.) Is there any way to program the chip with custom user code without any external memory(Flash/SD card)?

Actually we have an use-case for not having any on-board memory.
And
Is there any possibility that we can interface our vs1010 chip with any microcontroller via SPI Communication and
1.) get command from microcontroller to perform functionalities.
2.) or can vs1010 chip automatically obtain command from the flash memory of the microcontroller as an master (kind of accessing).

I know above is little bit out if the box, but please review on this.

Thankyou !
Hannu
VLSI Staff
Posts: 441
Joined: Mon 2016-05-30 11:54
Location: Finland
Contact:

Re: VS1010B Developer Board Quick Start

Post by Hannu »

"Does VS1010 require external memory to execute a program?" is a trick question and the answer is yes and no.

So the yes part. VS1010 doesn't have a non-volatile user programmable memory. So it requires some external memory from where to execute the programs. Easiest way is to use SD card or SPI flash. with external memory you get all kind of nice features like executing VSOS applications and filesystem and so on.

The no part. I'll tell about this for completeness of my answer and highly recommend that don't try these at your first or even second design.

Getting your code to be executed on VS1010 is relative easy with USB ramdisk, serial poke stuff to memory or vs3emu. The hard part is that the environment is different comparing with VSOS program.

The VS3emu protocol. You have already used it with SPI flash prommer in the other thread.

Emulating SPI flash with MCU is also a tall order. The read operation has opcode, address and then on the next SCK clock edge there should be first bit of the disk sector transmitted on the miso line. That is one hard real-time requirement. And the required amount of flash from MCU would be kilobytes with trivial implementation.

If you are going to make a USB stick player, the only route to achieve it is to use some external memory. At least I can't see any other easy way which would be ready in finite time.

What kind of user interface you have in your mind?
vinayslone
Senior User
Posts: 44
Joined: Tue 2020-11-10 12:34

Re: VS1010B Developer Board Quick Start

Post by vinayslone »

hey hannu,

Thankyou for your reply !

Here in this link below !
http://www.vlsi.fi/en/products/vs1010mcu.html

In block diagram its specified :- SPI Flash/Host MicroProcessor

So we want to explore the Microprocessor part.

Question :-
1.) What is the purpose of Host Microprocessor Interface?
2.) And what activities can be done using this Host Microprocessor ?

Below questions are regarding this :- UART / SPI controlled MP3 co-processor application of VS1010D
3.) How can we control or perform activities on our VLSI Chip (VS1010D) using SPI or UART Communication with Host Microprocessor ?
4.) What all activities can be controlled using UART or SPI communications (specified in 3rd ques).

*Note*
We want interface were we will be playing particular audio files from USB memory stick on key press and there will be around 15 keys, there would be specific audio file for each key.

*And it strictly mentioned in our project that we cant use any onboard memory, so we want to explore other ways.

It would be great if you have something to suggest.

Thankyou !
vinayslone
Senior User
Posts: 44
Joined: Tue 2020-11-10 12:34

Re: VS1010B Developer Board Quick Start

Post by vinayslone »

hello,

The developer board by default only allows UART communication for flashing from VSIDE.

When Connecting the developer board from USB ab-mini to pc via cable, it doesn't show up in computer ports.
We need to invoke a particular runlevel to allow usb communication.

1.) How to set the that runlevel using buttons ?

2.) Is it same for VS1005 also or it has driver in it to automatically get programmed via usb cable ?

*Note*
Because for mass production we cant go on connecting via serial communication and flash the software for each board, there should be plug and play method(usb->pc) .

Thankyou !
vinayslone
Senior User
Posts: 44
Joined: Tue 2020-11-10 12:34

Re: VS1010B Developer Board Quick Start

Post by vinayslone »

hello vlsi team,

please response with answers !

I didn't get even my previous post reply !

Thankyou !
vinayslone
Senior User
Posts: 44
Joined: Tue 2020-11-10 12:34

Re: VS1010B Developer Board Quick Start

Post by vinayslone »

hello vlsi team,

Is there anyone to answer above queries !

Thnakyou !
Hannu
VLSI Staff
Posts: 441
Joined: Mon 2016-05-30 11:54
Location: Finland
Contact:

Re: VS1010B Developer Board Quick Start

Post by Hannu »

You select runlevel by pressing buttons BM0..to BM3 and resetting the VS1010. Have a look at the quick start guide on the first page of this thread for example. v09 is the newest.

If your USB doesn't work at all in any USB runlevel, check the SW1 switch is in correct position.

Also connect your VSIDE UART cable and see the boot messages. VS1010 prints out the runlevel which it is using. if it isn't printing anything, check the connections and press power button.

-----------------------------
By default getting VS1005 in USB flashing mode would be hard. With some extra code and existing programs, that target would be relatively easy.

I would recommend buying VS1005 chips with internal preprogrammed flash with some system updater/ rescue system.
vinayslone
Senior User
Posts: 44
Joined: Tue 2020-11-10 12:34

Re: VS1010B Developer Board Quick Start

Post by vinayslone »

hello hannu,

Thanks for you response !

please share something on :-
1.) How to measure the voltage value of the battery using ADC in VS1010 ?
2.) How to achieve sleep mode when nothing is happening in device (using VS1010) ?

thankyou !
vinayslone
Senior User
Posts: 44
Joined: Tue 2020-11-10 12:34

Re: VS1010B Developer Board Quick Start

Post by vinayslone »

hello vlsi team,

After saving .dlx files in sys folder will the device be able to run that .dlx files automatically on boot up of device ?

Or saving names of .dlx files in config.txt file, will run automatically the files ?

Please share some knowledge on this .

Thankyou !
User avatar
Panu
VSDSP Expert
Posts: 2828
Joined: Tue 2010-06-22 13:43

Re: VS1010B Developer Board Quick Start

Post by Panu »

If you have the VS1010 Handbook, please take a look at pages 173-174.

Here's a quick recap. Please note that this is about VS1010D, not VS1010B.

Booting

Here's a generic and a little simplified description of how the VS1010D boots and from where and in which order it tries to locate firmware from
different storage mediums or run internal ROM software. For a better picture of what is going on inside the chip when it boots, please see the ROM source codes.


1. ROM boot code (sets up vectors and registers, clears those regions of X and Y data memory, which are reserved for ROM firmware use,
configures voltages and CPU clock speed, and determines the desired runlevel either based on the value of USER0 register or BM0..BM3 pin biasing).

2. SPI FLASH/EEPROM Boot record or I2C EEPROM Boot record. SPI/EEPROM boot record can take full control of the chip or return after setting up device drivers and patches, for example.

3. SPI FLASH hidden sector boot record.

4. ROM boot code sets up SD card and makes it device D: and S:

5. If device F: is not already configured, then ROM boot code detects SPI flash and guesses its size and makes it device F. If F contains FAT file system and a /SYS/ folder in root, then system disk S: is set to point to F:

6. S:BOOT.DLX is executed (either from the SD card or from the flash as discussed earlier)

7. If runlevel is set to one of the USB modes (USB RAM disk, USB Serial Port, USB Mass Storage,) then execution jumps to ROM code written for these runlevels and usually does not return.

8. S:CONFIG.TXT based patch, driver and app loading from SPI flash or SD card

9. UART upload of code (VSIDE ,VS3EMU, or hexadecimal upload with external MCU) becomes possible.

10. D:VSPLAYER.DLX file, if exists, is loaded and executed from SD card

11. SD card hidden sector boot record, if one exists, is executed.

12. Normal SD card ROM player (plays WAV and MP3 files in alphabetical order from the SPI flash and SD card root)

13. Command line via UART terminal (115200-8N1) can be accessed by pressing Enter.

If XCS0 is pulled low, SPI boot is skipped. This is required if SPI memory was flashed with bad image which prevents proper booting.


Typically firmware is booted by using step 8, e.g. formatting SPI flash to FAT, copying an executable file to SYS subfolder on the flash, and writing the executable file's name to CONFIG.TXT. Please take special care that you have a way of updating your device's software before running your executable, so that you can do that also when your executable crashes. Step 6 is sometimes used for this.
Post Reply