VS1053 BOB V4 SPI interface not Working.
VS1053 BOB V4 SPI interface not Working.
Hi,
I'm trying to interface the VS1053 Bob v4 https://cdn-learn.adafruit.com/download ... torial.pdf form adafruit with my stm32l4 controller.
Mode 0 of SPI interface is used and when I try to read form the SCI_MODE (RW) register, I get only zeroes.
I verified the Sclk and MOSI with the CRO and it all works perfectly.
What could be going wrong? The connected pins includes, VCC to 3.3V,Gnd,MOSI,MISO,CS,DREQ.
I'm trying to interface the VS1053 Bob v4 https://cdn-learn.adafruit.com/download ... torial.pdf form adafruit with my stm32l4 controller.
Mode 0 of SPI interface is used and when I try to read form the SCI_MODE (RW) register, I get only zeroes.
I verified the Sclk and MOSI with the CRO and it all works perfectly.
What could be going wrong? The connected pins includes, VCC to 3.3V,Gnd,MOSI,MISO,CS,DREQ.
Re: VS1053 BOB V4 SPI interface not Working.
Generally: xTEST should be pulled high (or connected to IOVDD). xRESET should be high, XTALI / XTALO should get clock for the chip to leave reset state. Possibly xDCS should be high.
On the Adafruit board RST should be high. Also, you should probably connect SCLK too...
On the Adafruit board RST should be high. Also, you should probably connect SCLK too...
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
Re: VS1053 BOB V4 SPI interface not Working.
Hi,
Thank You , I pulled RST high and it is working .
Sclk was connected previously(Sorry that I missed it).
Thank You , I pulled RST high and it is working .
Sclk was connected previously(Sorry that I missed it).
Re: VS1053 BOB V4 SPI interface not Working.
Hi,
Got a new issue now,
I'm trying for Wave PCM recording as described in http://www.vlsi.fi/fileadmin/software/V ... corder.pdf
Below give is the initialization code used,I'm able to write and read back correct values form the registers whereas the DREQ pin do not show any
transition in the oscilloscope and the recording is not starting(HADAT1 = 0 always) .
I do not use level metering , the reason why corresponding lines are commented.
What could be possibly going wrong?
Got a new issue now,
I'm trying for Wave PCM recording as described in http://www.vlsi.fi/fileadmin/software/V ... corder.pdf
Below give is the initialization code used,I'm able to write and read back correct values form the registers whereas the DREQ pin do not show any
transition in the oscilloscope and the recording is not starting(HADAT1 = 0 always) .
I do not use level metering , the reason why corresponding lines are commented.
Code: Select all
#ifdef WAVE_PCM_STEREO_RECORDING
SS_WriteVS1053_Register(VS1053_MODE,0x0804);//Clear SM_ADPCM form Mode0 Register
HAL_Delay(2);
ReadVal = SS_ReadVS1053_Register(0x00);
SS_WriteVS1053_Register(VS1053_CLOCKF,0xC000);//Increase the clock frequency
HAL_Delay(2);
SS_SPI_ReInit_HighClk();//Reinitialize the spi cloc ot higher clock rate 5 Mhz
HAL_Delay(2);
SS_WriteVS1053_Register(VS1053_BASS,0x0000);//Set BASS reg to 0
SS_WriteVS1053_Register(VS1053_AIADDR,0x0000);//Set AI Addr to 0 to stop any previously running app
SS_WriteVS1053_Register(VS1053_WRAMADDR,0xC01A);//Disable any interrupt
SS_WriteVS1053_Register(VS1053_WRAM,0x0002);//Disable any interrupt
LoadVS1053bPlug_in(PCM_48S);//Load the patch 1800
SS_WriteVS1053_Register(VS1053_MODE,RCEORDING_ADPCM);//start Recording in adpcm mode
SS_WriteVS1053_Register(VS1053_AICTRL1,1024);//maximum signal level setting
SS_WriteVS1053_Register(VS1053_AICTRL2,0);//Auto gain Off
//SS_WriteVS1053_Register(VS1053_MODE,RCEORDING_ADPCM|STEREO_RECORDING);//level metering in stereo
//SS_WriteVS1053_Register(VS1053_AICTRL0,0x8080);//level metering in stereo
//HAL_Delay(2);
SS_WriteVS1053_Register(VS1053_AICTRL3,0);
SS_WriteVS1053_Register(VS1053_AIADDR,0x0034);//Begin Recording
while(HAL_GPIO_ReadPin(SS_DREQ_GPIO_PORT,SS_DREQ_PIN) != GPIO_PIN_SET); //poll for DREQ High
Recording =TRUE;
#endif //WAVE_PCM_STEREO_RECORDING
Re: VS1053 BOB V4 SPI interface not Working.
Hello!
After you write 0x34 to SCI_AIADDR, what value do you get if you read registers SCI_MODE (0), and SCI_STATUS (1)?
Kind regards,
- Henrik
After you write 0x34 to SCI_AIADDR, what value do you get if you read registers SCI_MODE (0), and SCI_STATUS (1)?
Kind regards,
- Henrik
Good signatures never die. They just fade away.
Re: VS1053 BOB V4 SPI interface not Working.
Hi,
The values in registers after 0x0034 is loaded to SCI_AIADDR are
SCI_MODE (0) = 0x1800
SCI_STATUS (1) = 0x0048
Regards,
Joe
The values in registers after 0x0034 is loaded to SCI_AIADDR are
SCI_MODE (0) = 0x1800
SCI_STATUS (1) = 0x0048
Regards,
Joe
Re: VS1053 BOB V4 SPI interface not Working.
Hello Joe!
EDIT: Maybe that's not the reason after all. I verified from the source code that the bit should be cleared by the software. Could you first write 0x34 to SCI_AIADDR, then wait for at least one millisecond, then read contents of SCI_AIADDR back? If the value is 0, then the software has started because it clears the register. If you still read 0x0034, then I think that your LoadPlugin() implementation might be broken, or perhaps SPI communication is unreliable.
Kind regards,
- Henrik
PS. My 1033rd message. When released, VS1033 added AAC-LC and General Midi as new audio formats, as well as EarSpeaker spatial processing to the functionality of the hugely popular VS1003.
SCI_MODE looks good, but SCI_STATUS does not. Bit 3 should be clear. What I think is that you start loading the code, or, to be precise, disable interrupts so quickly after boot that the VS1053 firmware hasn't yet had time to turn analog drivers fully on. Try writing 0x0040 to SCI_STATUS right after the two "Disable any interrupt" lines, and see whether that helps.Arun Joe wrote:Hi,
The values in registers after 0x0034 is loaded to SCI_AIADDR are
SCI_MODE (0) = 0x1800
SCI_STATUS (1) = 0x0048
EDIT: Maybe that's not the reason after all. I verified from the source code that the bit should be cleared by the software. Could you first write 0x34 to SCI_AIADDR, then wait for at least one millisecond, then read contents of SCI_AIADDR back? If the value is 0, then the software has started because it clears the register. If you still read 0x0034, then I think that your LoadPlugin() implementation might be broken, or perhaps SPI communication is unreliable.
Kind regards,
- Henrik
PS. My 1033rd message. When released, VS1033 added AAC-LC and General Midi as new audio formats, as well as EarSpeaker spatial processing to the functionality of the hugely popular VS1003.
Good signatures never die. They just fade away.
Re: VS1053 BOB V4 SPI interface not Working.
Hi ,
I followed the first method you suggested
and I'm getting 0x0041 in SCI_STATUS (1).
The recording is also happening, I captured the recorded values to a file(in PC) and found the valid Wave header there with chunk size values that
has to be edited as per the size of the file.
I calculated the size with the file size and replaced those characters with the ASCII equivalent and LSB first and saved the file with .wav
extension on my PC. When I play it, I hear nothing but a creaky sound for few seconds.
The mic circuit I made is from page 26 of adafruit tutorial.https://cdn-learn.adafruit.com/download ... torial.pdf
How do you suggest me to proceed now?
Regards,
Joe
I followed the first method you suggested
SCI_MODE looks good, but SCI_STATUS does not. Bit 3 should be clear. What I think is that you start loading the code, or, to be precise, disable interrupts so quickly after boot that the VS1053 firmware hasn't yet had time to turn analog drivers fully on. Try writing 0x0040 to SCI_STATUS right after the two "Disable any interrupt" lines, and see whether that helps.
and I'm getting 0x0041 in SCI_STATUS (1).
The recording is also happening, I captured the recorded values to a file(in PC) and found the valid Wave header there with chunk size values that
has to be edited as per the size of the file.
Code: Select all
RIFF´J WAVEfmt €» î data²J
extension on my PC. When I play it, I hear nothing but a creaky sound for few seconds.
The mic circuit I made is from page 26 of adafruit tutorial.https://cdn-learn.adafruit.com/download ... torial.pdf
How do you suggest me to proceed now?
Regards,
Joe
Re: VS1053 BOB V4 SPI interface not Working.
Hi ,
I have also tried the second method and the value that comes up on SCI_AIADDR is 0 and SCI_MODE (0) = 0x1800
SCI_STATUS (1) = 0x0041.
I read only 512 byte at a time and the recording time is for 3 minutes whereas I hear audio for only few seconds that too some creaky sound.
Is it because the data is not read fast enough?
Regards,
Joe
I have also tried the second method and the value that comes up on SCI_AIADDR is 0 and SCI_MODE (0) = 0x1800
SCI_STATUS (1) = 0x0041.
I read only 512 byte at a time and the recording time is for 3 minutes whereas I hear audio for only few seconds that too some creaky sound.
Is it because the data is not read fast enough?
Regards,
Joe
Re: VS1053 BOB V4 SPI interface not Working.
Can you send an example recording?
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook