Simple voice recorder GPIO on 1053 or 1010

Designing hardware that use VLSI Solution's devices as the system controller for the entire design.
Post Reply
mikefish
User
Posts: 8
Joined: Mon 2019-12-30 22:59

Simple voice recorder GPIO on 1053 or 1010

Post by mikefish » Sun 2020-10-04 22:13

Hi,
I'm working on a simple project using the 1053 that I want to have the following functionality:

1. Record input to a single track (or treated as a single track during playback)
2. Allow only 2 hours of recording
3. Use LEDs to indicate where you are in the track (example: 4 LEDs that light up when you have 90 min left, 60 min, 30 min, and then full)

My original plan was to use a MC to handle some of this functionality since I'm experienced with Arduino, but it seems like writing some basic program in VSIDE could accomplish all of this and use the GPIO pins for all of this.

So my questions are
1. What is the best way to track the timecodes and get the file time lengths? (file format doesn't matter to me since it will all be internally used only)
2. If I want to attach buttons for swapping from play to record, volume, etc. is the best way to do that also with the GPIO instead of using a MC and are there certain pins with interrupts that I should use?
3. I have both of your books so if there is something in there I'm missing feel free to point me to those resources too.
4. I've been back and forth between the 1053 and 1010. Given what I want above, and that I don't care about file format which will be easier to implement? It seems at bulk the price for the 1010 is actually cheaper.

Thanks so much, I have schematics I will share later on too that I'd love feedback on.

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

Re: Simple voice recorder GPIO on 1053 or 1010

Post by Panu » Mon 2020-10-05 11:11

Hi!

VS1010 is definitely easier than VS1053 for this kind of project. The VS1053 has the advantage of having a good AD converter, but nothing that would help you with writing to any mass storage, handling files etc. The VS1010 is also quite ok for voice recording; you can use a digital MEMS microphone or an external I2S adc, or even the on-chip SAR (successive approximation ad) converter.

What's your storage media? SD?

The ROM has a hook for GetTimeFromRtc, so it's possible to have a system that uses the RTC to set correct file date on file close, please see http://www.vsdsp-forum.com/phpbb/viewto ... 253#p13253 and
http://www.vsdsp-forum.com/phpbb/viewtopic.php?t=2140 which talks about using the real time clock in general.

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

mikefish
User
Posts: 8
Joined: Mon 2019-12-30 22:59

Re: Simple voice recorder GPIO on 1053 or 1010

Post by mikefish » Fri 2020-12-11 23:53

Hi Panu -

Thanks for the info!!

I'm using an SD card for storage.

Looking more at the 1010, this chip doesn't have line-in encoding does it? I want to be able to record both digital MEMS and analog line-in. I think you're saying I would need an external DAC for that? I'd prefer to avoid adding another component for cost reasons if possible.

I tried connecting a 1053 with the basic schematic and I don't believe it's working-- the chip gets super hot and I'm reading 2.8V out of CVDD, as well as 1.3A being drawn which seems like something is definitely wrong. Both IOVDD and AVDD are 3.3V and I've triple checked for shorts and that all of my pins are correctly connected per the pinout. Also not reading any signal from the crystal with my oscilloscope. I was going to send a photo but the breadboard is wild. I've been using the datasheet as well as trying to replicate Adafruit's 1053 breakout board. I'm clearly missing something important. I have more 1053 chips in case I blew this one.

**Update: I disconnected IOVDD (i think I was wrong to power this externally. This is a regulated output?). It's now only drawing 20mA but I still get 2.5V out of CVDD and no oscillation on the crystal, and no audio playback (i have an SD card connected using SPI with one track on it)

**Update 2: I tried a new 1053B and the amps jumped to 2.5. I unplugged it right away but I'm super lost now :-|

User avatar
pasi
VLSI Staff
Posts: 1749
Joined: Thu 2010-07-15 16:04

Re: Simple voice recorder GPIO on 1053 or 1010

Post by pasi » Tue 2020-12-15 15:06

re: vs1053b

Do you have GND and AGND connected together below the vs1053? CVDD, IOVDD, (and AVDD) should all be externally provided for vs1053b. (VS1010 has it's own internal regulators and only requires VHIGH.)

CVDD should really not get higher than your CVDD regulator supplies - it's a sign of connection error somewhere. It's usually voltage bleeding through a pin that has a protection diode on that voltage. Do you have a schematics we could review?

Getting very hot could indicate latch-up situation, where too much current is being shunted through the chip. Do you have the chip in the correct orientation, i.e. pin 1 is where you think it is?
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook

mikefish
User
Posts: 8
Joined: Mon 2019-12-30 22:59

Re: Simple voice recorder GPIO on 1053 or 1010

Post by mikefish » Wed 2020-12-16 0:01

Wow, good call on the chip orientation. I've been using a socket adapter and the alignment corner was wrong. Using a fresh chip I hooked everything up and I'm no longer getting a spike in amps, the crystal is working, and voltages are good. I'm just not getting playback now so I'm sure I'm close.

Here is the reference for how everything is hooked up. For now AGND and DGND are connected as are AVDD, VDD, and IOVDD-- I figure I can deal with filtering and sound quality once I get up and running and off the breadboards.

Am I correct in assuming it should immediately start playback from the SD card? Or do I need to use a GPIO? Or am I not booting into the correct mode?The ultimate goal is to connect to Arduino to control playback and recording.

Also, What is the best way to see what's going on and get error messages? RX/TX to the PC via FTDI? My oscilloscope can also decode SPI/UART/I2C so that's an option too.

Thanks again Panu (and Pasi!), looking forward to getting up and running!
PXL_20201215_214957138.jpg
PXL_20201215_214957138.jpg (1.5 MiB) Viewed 679 times

User avatar
pasi
VLSI Staff
Posts: 1749
Joined: Thu 2010-07-15 16:04

Re: Simple voice recorder GPIO on 1053 or 1010

Post by pasi » Wed 2020-12-16 10:33

mikefish wrote:
Wed 2020-12-16 0:01
Wow, good call on the chip orientation. I've been using a socket adapter and the alignment corner was wrong.
We've all been there one time or another...
mikefish wrote:
Wed 2020-12-16 0:01
Am I correct in assuming it should immediately start playback from the SD card? Or do I need to use a GPIO? Or am I not booting into the correct mode?
The ROM firmware only provides slave operation, receiving audio data through SDI.

For the standalone player and standalone recorder applications you need the correct boot image programmed into SPI EEPROM/FLASH from where it is loaded after powerup/reset. The application can also be loaded through the serial control interface (SCI), once you have the controller connected.
mikefish wrote:
Wed 2020-12-16 0:01
Also, What is the best way to see what's going on and get error messages? RX/TX to the PC via FTDI? My oscilloscope can also decode SPI/UART/I2C so that's an option too.
The standalone player/recorder can provide UART control, so you would get both control and feeback through UART. For development you could also load the standalone player through UART using vs3emu. (The recorder needs to reload itself, so it practically requires programming into SPI memory.)

The connected SPI memory can be programmed in-system by vs1053b using UART and vs3emu / VSIDE.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook

mikefish
User
Posts: 8
Joined: Mon 2019-12-30 22:59

Re: Simple voice recorder GPIO on 1053 or 1010

Post by mikefish » Fri 2020-12-18 23:15

Hey Pasi-

Thanks for the info. I've redone the layout to use the arduino and the vs1053 as the slave. Can you look if this looks alright so far? Again, I'm not dealing with any signal interference, isolation, filtering, etc. just yet.

23 is the chip select pin right? I was unsure if it should be 13.

Also I have no connection to DREQ yet but I think I can add that to any arduino pin when I get the SPI working.

Thanks!
file.png
file.png (29.48 KiB) Viewed 592 times

User avatar
pasi
VLSI Staff
Posts: 1749
Joined: Thu 2010-07-15 16:04

Re: Simple voice recorder GPIO on 1053 or 1010

Post by pasi » Mon 2020-12-21 15:44

- If you're not controlling xRESET, you should also have a capacitor to ground to delay the reset during power-up.
- xCS is the chip select for the serial control interface (SCI), xDCS is the chip select for the serial data interface (SDI)
- If you're not using xDCS, it should probably have a pull-up. (It's possible to use tricks to save that pin by switching between shared SPI newmode and regular SPI newmode.)
- DREQ should be connected to one of your controller's GPIO inputs.

Note that sharing the SPI bus between VS10xx and uSD/SD card will require some extra thought. The card powers up in SD/MMC communication mode and not in SPI mode and it's possible it will respond to the traffic on the VS1053 SCI/SDI bus (thus messing it up) while in SD communication mode.

Having a uSD/SD socket with card detect would help a bit, because you could detect card removal/insertion and can then act accordingly.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook

mikefish
User
Posts: 8
Joined: Mon 2019-12-30 22:59

Re: Simple voice recorder GPIO on 1053 or 1010

Post by mikefish » Tue 2020-12-22 1:25

Thanks for bearing with me Pasi. I'm still a bit lost.

I'd prefer to have the SD directly connected to the 1053 and use the arduino to control operation. The SD card will be internal to the device so there will be no swapping or need for CD.

Can you provide some more details on how I should set this up?

User avatar
pasi
VLSI Staff
Posts: 1749
Joined: Thu 2010-07-15 16:04

Re: Simple voice recorder GPIO on 1053 or 1010

Post by pasi » Wed 2020-12-23 10:47

For SCI-controlled (or UART-controlled) standalone player / recorder, your best starting point is probably the simplified schematics of the vs10xx prototyping board. The schematics is in the standalone player document at http://www.vlsi.fi/en/support/evaluatio ... board.html .

- For the recorder the vs1053 practically needs to boot from SPI FLASH, so you need those pins.
- Then you need the uSD/SD pins connected.
- For control you don't want the button connections, just connect your controller to the SCI pins.
- To program the SPI FLASH, you need access to RX/TX.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook

Post Reply