It sounds that you are very close to a working system! Getting SCI register writes and reads working, and getting the sine test working tells you seem to have many things correct.
Check the following things (in approximate order of likelihood):viragdoshi wrote:Then I tried to play several mp3 and a couple of wmv files. The wmv file did not produce any output at all, and in case of the mp3 file, the output was a distorted version of the original track.
I would be extremely grateful if someone could please help me debugging the said problem.
1) Check that you don't have the old, incorrect SparkFun board where XTEST is floating. It must be connected to IOVDD.
2) Check that you respect DREQ. When DREQ is high you may send from upto 32 bytes of data before checking it again. Never send more than 32 bytes without rechecking DREQ.
3) Check that you send the correct amount of data. Check that your pointer arithmetic is correct. It is very easy to accidentally send half or double the amount of data, or from a slightly incorrect place.
4) Check that your SPI clock polarity is correct: send data on the falling clock edge, VS10xx reads data on the rising edge by default.
5) Check that your writes to the SDI bus don't accidentally go to the SCI bus.
If you are still having trouble after checking these, I'd appreciate oscilloscope pictures of the SDI bus when sending data, including clock, data, and DREQ signals. Those very often help us to solve the issue.