Arduino+ VS1053 + SPI problems
hi
i ve been trying spi work time vs1053b data=http://www.vlsi.fi/fileadmin/datasheets/vlsi/vs1053.pdf vlsi mp3 chip cant! wonder if can direct me going wrong.
i using arduino mega + sparkfun vs1053b breakout board data=http://www.sparkfun.com/datasheets/breakoutboards/vs1053-v13.pdf
pins
arduino-->breakout
50 --->so
51 --->si
52 --->sclk
53 --->cs
5v ---->vcc
gnd ---> gnd
also left -->speaker
gbuf --> speaker
wanted see if can sine test:
the expectation once run should hear sine wave in speaker....but cant. can see obvious flaw?
thanks in advance
i ve been trying spi work time vs1053b data=http://www.vlsi.fi/fileadmin/datasheets/vlsi/vs1053.pdf vlsi mp3 chip cant! wonder if can direct me going wrong.
i using arduino mega + sparkfun vs1053b breakout board data=http://www.sparkfun.com/datasheets/breakoutboards/vs1053-v13.pdf
pins
arduino-->breakout
50 --->so
51 --->si
52 --->sclk
53 --->cs
5v ---->vcc
gnd ---> gnd
also left -->speaker
gbuf --> speaker
wanted see if can sine test:
code: [select]
//connection vs1053b arduino mega
#define dataout 51//mosi
#define datain 50//miso -
#define spiclock 52//sck
#define slaveselect 53//ss
byte clr;
char spi_transfer(volatile char data)
{
spdr = data; // start transmission
while (!(spsr & (1<<spif))) // wait end of transmission
{
};
return spdr; // return received byte
}
void setup()
{
pinmode(dataout, output);
pinmode(datain, input);
pinmode(spiclock,output);
pinmode(slaveselect,output);
digitalwrite(slaveselect,high); //disable device
// spcr = 01010000
//interrupt disabled,spi enabled,msb 1st,master,clk low when idle,
//sample on leading edge of clk,system clock/16 (fastest)
//the vs1053 spec states max spi clock frequency 5mhz, data order msb, , data valid on
//the rising edge of clock, default settings of spi shortcut (500khz, msb, rising edge) applicable.
// spr0 set 1 means 16/16 =1 mhz
spcr = (1<<spe)|(1<<mstr) | (1<<spr0) | (0<<cpol) | (0<<cpha) | (0<<dord);
clr=spsr;
clr=spdr;
delay(10);
digitalwrite(slaveselect,low);
spi_transfer(0x02);
spi_transfer(0x00);
spi_transfer(0x0c); //bits 8-15
spi_transfer(0x20); // bits 0-7 00100000 //allow sdi tests
digitalwrite(slaveselect,high);
delay(10);
//once in test mode ss should remain high
spi_transfer(0x53);
spi_transfer(0xef);
spi_transfer(0x6e);
spi_transfer(0xaa);
spi_transfer(0x00);
spi_transfer(0x00);
spi_transfer(0x00);
spi_transfer(0x00);
}
void loop()
{
}the expectation once run should hear sine wave in speaker....but cant. can see obvious flaw?
thanks in advance
hey jaybay,
i befuddled. did manage solve problem? or, have considered using arduino's spi library: http://www.arduino.cc/playground/code/spi
i befuddled. did manage solve problem? or, have considered using arduino's spi library: http://www.arduino.cc/playground/code/spi
Arduino Forum > Forum 2005-2010 (read only) > Software > Syntax & Programs > Arduino+ VS1053 + SPI problems
arduino
Comments
Post a Comment