VS1010 Design Based on Minidemo Board

Designing hardware and software for systems that use the VS1010 MP3 Audio DSP Microcontroller.
Post Reply
designer
User
Posts: 4
Joined: Mon 2021-09-27 15:53

VS1010 Design Based on Minidemo Board

Post by designer »

Hello!

I am designing a board using VS1010D chip, and I read the programing and pin configurations chapter on the book. I also played around with Mini VS1010 Minidemo Board version 2.0 and VS1010 Developer Board version. I downloaded the Eagle schematics and board v2.3 for Mini Board to use as a reference to design my board. I saw that you are using AP7361C-33Y5-13 LDO Voltage Regulator, and it's EN pin is connected to Pin 11 of MicroSD connector. I checked with Mouser and Digikey for the LDO Voltage Regulator part, and it seems like it is in back order. I looked other options based on AP7361C-33Y5-13 datasheet. I have filtered my results based on Package (SOT-89-5), output voltage (3.3V), output current (1A), and I found about 10 products available in stock. However, I am having pretty hard time to find a symbol and footprint for them because their datasheet does not contain the mechanical information for the components dimension. I tried to find it on SnapEDA and componentsearchengine and could not find it. Do you have any suggestions for me? Is 1A output for the LDO Voltage Regulator necessary?
User avatar
Panu
VSDSP Expert
Posts: 2821
Joined: Tue 2010-06-22 13:43

Re: VS1010 Design Based on Minidemo Board

Post by Panu »

Hi!

SD cards can be very power hungry when files are being written to the card, so if a regulator is used, it shouldn't be too small. 1A is good, 500mA might be sufficient. A regulator with an enable pin is recommended to make it possible to save power by switching the SD card completely off and reset the SD card in case of error conditions.

A similar schematic for the SD card is used in all VLSI PCB's so that they would be compatible with each other in regard to these features. But please note that due to the two package options (LQFP and QFN) of the VS1010, the ROM code does not control the power of the SD card, because there's no universal solution for it with the LQFP package. It can be done by overloading the ResetExternalUnit hook (0x5d) in your player software, so technically you are free to use any kind of SD card powering you like, including using a 3.3V regulator with no enable pin at all.

For more information, please see viewtopic.php?t=2736&p=14370

-Panu
designer
User
Posts: 4
Joined: Mon 2021-09-27 15:53

Re: VS1010 Design Based on Minidemo Board

Post by designer »

SD cards can be very power hungry when files are being written to the card, so if a regulator is used, it shouldn't be too small. 1A is good, 500mA might be sufficient. A regulator with an enable pin is recommended to make it possible to save power by switching the SD card completely off and reset the SD card in case of error conditions.
Thank you so much for the insight on that, Panu!

I am using a D amplifier on my board, and I looked at the development board v205 schematics to make the best out of my design. I see that there is an power supply circuit for amplifier with an linear voltage regulator IC. I was planning to connect the amplifier pin to VHIGH until I saw that circuit. What is the reason behind this application and should I consider having it on my design as well.

Also, I am not planning to use a SPI flash. Hence, I figured I need to make Pin 7 low to make VS1010 not boot from SPI. I read that state of the Pin 8 is important for boot speed and IOVDD voltage select, so I pulled that pin high. I assume I will use Pin 39 as BM3 since I am not using SPI. It says biasing of these pins are important for Pin 39,11,37, 42. Book talks the importance of these pins for SPI in general, I am confused how the configuration should be without a SPI. Is that mean that they should be biased high?

Thank you,
Hannu
Senior User
Posts: 264
Joined: Mon 2016-05-30 11:54

Re: VS1010 Design Based on Minidemo Board

Post by Hannu »

There are two reasons for regulator. First is that it keeps power rails of VS1010 and amplifier cleaner and second is that at some point there was amplifier which had 5.0 maximum voltage. Or maybe it was the ADC chip. And third is that you can turn off the ADC and amplifier power rails by removing the jumper.

This depends a lot of your requirements. So if your power supply can provide enough current, give correct voltages and has low enough ripple voltage to power the full design, you don't need it. Just add enough capacitance to smooth out the peak current of your amplifier. After all you'll have something which will look like bad short circuit at rate of few hundred hertz as a load.

To prevent SPI boot, pull down the XCS0 pin. ROM just takes a look at if that pin is high, try SPI boot else continues.
After that BM3..0 work as usual. You'll probably want to have them low (runlevel 0) and possibility to pull BM1 high with switch or jumper to access your SD-card (runlevel 2).

If you place your firmware to SD-card, will the user end up putting content there? As user can accidentally remove the firmware by deleting the sys/ directory.
designer
User
Posts: 4
Joined: Mon 2021-09-27 15:53

Re: VS1010 Design Based on Minidemo Board

Post by designer »

Thank you so much for your assistance, Hannu!

Users will not tinker with the SD card at all. There will be the sys directory and one MP3 file to play in there. I have integrated a power boost converter with TPS61090 to supply the VHIGH pin of VS1010D from a battery (most likely a LiPo).

I am trying to integrate a BLE in my design to control when to play/stop that MP3 file on the VS1010D. I am thinking that I can control the power that goes to VS1010D to power on and power down the VS1010 since I can make the chip play the MP3 file automatically when it is powered on. I eventually want to implement a UART command structure from BLE to VS1010D to do certain tasks. I was thinking of putting different DLX programs that I generated from VSIDE on different runlevels via config.txt and sending a command from BLE to VS1010D to execute specific run runlevel, but I am not sure if that idea is feasible. I am a little lost on UART documentations and questions I found on the forum as an entry level engineer. I would really appreciate any suggestions and insights to accomplish my goal.  For example,  sending a string with "echo function"  to write on the VSOS console from BLE through UART is one of the things that came to mind. Again, I am newly acquainted with the VS1010D chip so I am looking forward to hearing your guidance.   
Hannu
Senior User
Posts: 264
Joined: Mon 2016-05-30 11:54

Re: VS1010 Design Based on Minidemo Board

Post by Hannu »

The ROM can do a few things without any software.

When VS1010 boots to player runlevel it tries to play known songs. When playing CR or LF characters (comes from enter) cancels and exits to shell. tab goes next song, '+' and '-' adjust volume. Unfortunately this continues to play the song.

You could achieve this with config.txt

Code: Select all

[?]
play r:hello.mp3
reboot 17
[A]
echo running 17
reboot 12
The [?] line is for runlevel 15. and [A] for runlevel 17.
Here are some runlevel characters. character to number is simple ch - '0' calculation.

Code: Select all

runlevel	character
0		0
9		9
10		:
11		;
12		<
13		=
14		>
15		?
16		@
17		A
18		B
19		C
20		D
You can even try this with the minidemoboard.

I believe that the ROM tries to play the romplayer almost every runlevel. So the reboot 12 enters to shell prompt runlevel. To prevent that, setting gotoShell global variable tells the romplayer go to prompt and not to play.

Anyway, fiddle with the design and try things and when you find something you can't solve, ask for more about details or implementation hints.
designer
User
Posts: 4
Joined: Mon 2021-09-27 15:53

Re: VS1010 Design Based on Minidemo Board

Post by designer »

Thank you for the information, Hannu!

I downloaded the vlsi_eagle7_lib from http://www.vlsi.fi/en/support/download.html, and I use the VS1010 footprint in that library to do my design. I just finished the schematic design and moved to board design on EAGLE. I looked at the VS1010 2D layout on the board which reminded me the obsoleted package. I checked the library modification date as well which is 6/6/2018, could you check the attached picture, and tell me if this is the current package. I really hope I did not waste my time on this using obsoleted package.
Attachments
VS1010-68Q.PNG
VS1010-68Q.PNG (53.71 KiB) Viewed 218 times
Hannu
Senior User
Posts: 264
Joined: Mon 2016-05-30 11:54

Re: VS1010 Design Based on Minidemo Board

Post by Hannu »

The footprint you have is compatible. It works with obsolete package and with the current package. Difference is the GND pad size. And on the package the second row is also gone.

The obsolete package had 4.9x4.9 mm GND pad. current package has 6x6 mm GND pad. The GND pad of the footprint is 4.2x4.2 mm.

The footprint is also a compromise. It is hand solderable and what we have got feedback from customers it has been also factory runnable. When footprint has smaller opening for the GND pad that the pad, the solder won't spill so easy to pad ring. This makes hand soldering easier. The downside is that the chip may stand on soldermask.

Below is my own opinions and experiences.

Sometimes the ready made footprint needs changes because PCB processes are different and boards differs and how the heat spreads and so on. And some tweaks to footprints are needed to get it runnable or the PCB assembly line has some design rules which cause problems and sometimes silks are ugly and so on. Soon you'll end up with rather big collection of schematic symbols and footprints but they all have specialized purpose. Most of the time paste layers are the most tweaked layers.

I have used VLSI footprint and I also have soldered 4.9x4.9 mm GND pad design some times. Using both chips new and old. I can't tell the difference between the footprints or packages. I believe, I've even built a design with 6x6mm GND pad.

The bottom line is that we try to provide footprints and schematics symbols which are usable in most cases and a reasonable starting point for your own development. It can require some iterations on PCB to get all HW bugs ironed out and get the board testable and manufacturable.
Post Reply