Problem with DREQ on one VS1053, while other is OK. (fixed)

Writing software for systems that use VLSI Solution's devices as slave codecs to a host microcontroller.
thehog
Senior User
Posts: 42
Joined: Fri 2010-10-01 13:36

Problem with DREQ on one VS1053, while other is OK. (fixed)

Post by thehog »

Hello,

I am writing a Linux driver for the VS1053. This driver is now capable of playing mp3, ogg and midi files. I am using the Sparkfun board for development. I have three of these boards to play with. One from oct/2009 and two from sept/2010.

Now,there seems to be a problem with the 2 vs1053's from sept/2010. They appear to work OK when doing a sine test. But, when playing a mp3 file, or loading a plugin, the DREQ signal behaves unexpectedly.

The problem is that the first chunk of a file (or plugin) is accepted (+/- 1000 bytes). Then, the DREQ goes low. After that, every time a chunk of 32 bytes is sent (after waiting for DREQ of coarse), the DREQ *immediately* goes low again. Eventually, DREQ stays low and the VS1053 needs a hw reset. With the first board/vs1053 (2009), this does not happen.

The sound is very stuttering (more like plopping as if a h/w reset is given repeatedly) and not recognizeable as music in any way.

Setting clockf, new mode etc. and reading registers works OK, so I'm confident that there is reliable communication with the VS1053.

Any idea what could be the problem here?
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

Re: Problem with DREQ on one VS1053, while other is OK.

Post by Panu »

Hi, great to hear from you!

The SparkFun VS1053 breakout board seems to be missing some required pull-down resistors. I guess they've meant for the user to provide these at the user PCB. Can you check if pulling low pins GPIO0 and GPIO1 with resistors (about 10K ... 100K) help? I suspect that GPIO1 might be high, so the chip would configure as a MIDI synth, but this is just a theory...

Also, it looks like they've pulled XRESET low. But that would keep the chip in reset permanently, can you verify this?

Sincerely,
Panu
thehog
Senior User
Posts: 42
Joined: Fri 2010-10-01 13:36

Re: Problem with DREQ on one VS1053, while other is OK.

Post by thehog »

Hi Panu,

The XRESET is indeed pulled low if unconnected, but I connected it to a GPIO to pull it out of reset.

I'll try and see if it helps to pull GPIO 0 and 1 low.


Thanks,
Richard
thehog
Senior User
Posts: 42
Joined: Fri 2010-10-01 13:36

Re: Problem with DREQ on one VS1053, while other is OK.

Post by thehog »

Hi,

I tried with GPIOs 0 and 1 pulled down (with 47kOhm) but this does not solve the problem. Note that this problem happens on 2 of the 3 boards, one is working OK.

I have attached a description with images from an oscilloscope that shows what is happening. I hope that this make the problem more clear:
vs1053 problem.pdf
description and scope images of the problem
(1.05 MiB) Downloaded 1085 times
BTW. I also tested to send an MP3 to the board without checking DREQ. I did that on both boards (the good and the bad one). On both boards the MP3 is recognizable, but of course too fast and with lots of noise and clicking. The bad board, however, always ends with a 'click' that sounds as if the vs1053 is reset.
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

Re: Problem with DREQ on one VS1053, while other is OK.

Post by Panu »

Hmmh, as Lewis Carroll says, "couriouser and couriouser..."

Could you do a quick scan of the VS1053 pins with an oscilloscope; trying to hunt for signals with weird waveforms or levels somewhere in the middle between VDD and GND, unconnected vcc or gnd pins,... ... ...

I am thinking of something... almost remembering but not quite...

Oh, at least once there was a breakout board with a badly soldered pin. Could you do a quick sweep with a soldering iron?

-Panu
thehog
Senior User
Posts: 42
Joined: Fri 2010-10-01 13:36

Re: Problem with DREQ on one VS1053, while other is OK.

Post by thehog »

Hi Panu,

I tested the pins of both boards and there is a difference. On the 'good' board, the GBUF, MICP and TX are silent, but on the 'bad' board they are not! I attached a pdf with scope images of GBUF and MICP:
vs1053 problem 2.pdf
(432.97 KiB) Downloaded 801 times
I also attached a console to the RX/TX (using a level shifter). It look like garbage, here's some of the output:

Code: Select all

$ hexdump -C log 
00000000  00 ef fa 00 00 00 00 00  00 3e f8 16 0f ff 00 00  |.........>......|
00000010  fe f1 00 05 00 00 00 00  00 00 00 00 00 86 00 ea  |................|
00000020  00 00 f8 00 00 00 f8 e0  fc c4 f8 7e 00 00 00 01  |...........~....|
00000030  fc c3 00 b0 01 fe 00 81  3f f0 00 03 e0 74 9f 1e  |........?....t..|
00000040  fe f3 00 80 c0 b0 f0 00  00 00 c0 12 ff 00 00 00  |................|
00000050  e8 0c f0 74 0d 00 00 00  00 00 00 fe 00 00 00 f7  |...t............|
00000060  fc 00 e8                                          |...|
00000063
I tried different serial port settings but couldn't find readable text.

Richard
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

Re: Problem with DREQ on one VS1053, while other is OK.

Post by Panu »

In our recent line of literary quotes: "Sense, this makes none."

That's some very interesting oscilloscope pictures you've provided for me and the other engineers to take a look at. Do they occur immediately after reset, or only after loading a plug-in or trying to play a song?

Meanwhile, how about heating each pin with a soldering iron? I can't seem to get past the idea of badly soldered pins.

In case you're wondering, we've produced the VS1053 with the same mask set for 3 years, so the chip can be considered stable. The measurement data you've provided is from the more interesting end of the spectrum. With a little different waveform, I would suspect a floating TEST pin. But in this case, I cannot be sure.

-Panu
thehog
Senior User
Posts: 42
Joined: Fri 2010-10-01 13:36

Re: Problem with DREQ on one VS1053, while other is OK.

Post by thehog »

Hi Panu,

What exactly do you mean with 'heating each pin with a soldering iron'? Heating the pins of the VS1053 chip? I'm not so sure that my soldering capabilities are good enough for SMD work by hand. I might break more than fix. After all, I bought a breakout board to skip the soldering work :-)

Anyway, I did re-heat the pins of the headers on the breakout board with a soldering iron (the headers are the only component I soldered myself), but it did not make a difference.

Could be that the Sparkfun board itself causes the problem. Sparkfun confirmed that they test each board before shipping. I'm not sure what that test involves (issuing a sine test does work OK on the 'bad' boards, for example).

I'll contact Sparkfun to find out.

Thanks,
Richard.
thehog
Senior User
Posts: 42
Joined: Fri 2010-10-01 13:36

Re: Problem with DREQ on one VS1053, while other is OK.

Post by thehog »

BTW, the GBUF and MICP signals occur when playing a song. After a reset or after stopping playing a song they are quiet again.

Loading a plugin does not work on the 'bad' board. DREQ behaves like when playing a song: after 1000 bytes or so DREQ stays low and the VS1053 needs a reset first.
User avatar
Panu
VSDSP Expert
Posts: 2829
Joined: Tue 2010-06-22 13:43

Re: Problem with DREQ on one VS1053, while other is OK.

Post by Panu »

Dear Richard,

Hmmh, yes, I mean heating the VS1053 pins with a soldering iron... You shouldn't be able to do much damage if you just use a hot but dry iron (don't put any soldering tin to the iron) and just gently touch each of the pins so the existing tin on the pin melts.

Does that sound like something you would find comfortable doing?

-Panu
Post Reply