VS1011 XCS/XDCS issues

Designing hardware that uses VLSI Solution's devices as slave codecs such as an external MP3 decoder chip for a host microcontroller.
Post Reply
JLP
User
Posts: 2
Joined: Thu 2011-10-06 7:20

VS1011 XCS/XDCS issues

Post by JLP » Thu 2011-10-06 7:48

Hello,

I have recently updated a design using the VS1011e with the major change being that I now clock the VS1011e directly from a clock output pin on the microcontroller rather than from a dedicated crystal. I am using NEW+SHARED mode with XDCS tied high and the hardware reset pin is controlled by the micro. This is identical to the older, fully functional design.

My issue is that SHARED mode does not work correctly in my new design; Particularly, SCI works but SDI does not. Using the recommended sine test, SDI data only seems to be accepted by the VS1011 when XDCS is low. This contradicts the data sheet and app notes.

I can read the MODE register on the VS1011 after initialization and see that the NEW+SHARED bits are set correctly.

Again, the only difference between the two designs is how the VS1011 is clocked and other than SHARED mode not operating as suggested, the chip seems fully functional.

Any suggestions?


JP

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

Re: VS1011 XCS/XDCS issues

Post by pasi » Fri 2011-10-07 20:48

JLP wrote:I can read the MODE register on the VS1011 after initialization and see that the NEW+SHARED bits are set correctly.
Sounds strange. We use NEW+SHARED mode on the laboratory board, and for vs1011 we need to set the MODE register, otherwise we get no sound. NEW+SHARED mode has also be used in many of the two-chip example designs (although maybe not with vs1011e).

Please double-check the MODE register value you write and read back. Also check the SPI clock polarity and that xTEST pin is pulled high (can be connected directly to DVDD).
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook

JLP
User
Posts: 2
Joined: Thu 2011-10-06 7:20

Re: VS1011 XCS/XDCS issues

Post by JLP » Mon 2011-10-10 5:07

Found the problem. When starting the sine test, I was writing 0x0820 (new mode) the mode register instead of 0x0c20 (new+shared). So when I read the state of the mode register before entering the sine test, the value was correct (0x0c00). After writing 0x0820 however, the SHARED bit was cleared making it necessary to use the XDCS pin.

Writing the correct value has solved the issue.

Thanks for the help!

Post Reply