Go Down

Topic: handling slace select between Arduino Micro and Adafruit VS1053 (Read 761 times) previous topic - next topic

norlander

I am just trying to make sure I am handling the SPI functions correctly on the Micro vice the UNO and other Arduinos. 

I have an Adafruit VS1053 audio card with onboard micro SD for data storage.  The card has 2 and half SPIs CS and XDCS for the VS1053 chip and SDCS for the SD card.  I have an example sketch with SS coding for an UNO:

#define CS 10        // VS1053 chip select pin (output)
#define DCS 8        // VS1053 Data/command select pin (output)
#define CARDCS 4     // Card chip select pin

Does it matter if I use the specific SS pin (PB0, chip pin 8, digital pin 17) on the Arduino Micro, or can I specify any pins to be SS for these?

Thank you
Krist

norlander

Finally this working! Got working with following connections:
VS1053 - Arduino Micro
VCC - ICSP 5V
GND - ICSP GND
SCLK - ICSP SCK
MISO - ICSP MISO
MOSI - ICSP MOSI
RST - Pin 9 (D9)
CS - Pin 10 (D10)
XCDS - Pin 8 (D8)
SDCS - Pin 6 (D6)
DREQ - RX (Pin D0, INT2)

Ensured sketch constants reflected DREQ = 0 (an interrupt pin) and CARDCS=6.

I also checked to verify DREQ will work on TX (D1, INT3), Pin 2 (SDA, D2, INT1), and Pin 3 (SCL, D3, INT0) as well. Problem appeared to be in SDCS on Pin 4.

fcohen

This isn't working for me. I have a Arduino Micro and Adafruit VS1053 breakout board with SD card.

VCC - ICSP 5V
GND - ICSP GND
SCLK - ICSP SCK
MISO - ICSP MISO
MOSI - ICSP MOSI
RST - Pin 9 (D9)
CS - Pin 10 (D10)
XCDS - Pin 8 (D8)
SDCS - Pin 6 (D6)
DREQ - RX (Pin D0, INT2)

I think I have the ICSP pins wrong. Is the correct layout like this:

3 2 1    (where pin 1 is at the dot on the PC board, and closest to the Micro edge and away from the Micro reset button)
4 5 6

1 = MISO
5 = MOSI
6 = 5V
4 = GND
2 = SCK = VS105 SCLK pin
3 = RESET

Here is my sketch:

#include <SPI.h>
#include <SD.h>
#include <Adafruit_VS1053.h>

void setup() {
Serial.begin(9600);
while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
}

#define CLK 9       // SPI Clock, shared with SD card
#define MISO 11      // Input data, from VS1053/SD card
#define MOSI 10      // Output data, to VS1053/SD card
#define RESET 13      // VS1053 reset pin (output)
#define CS 10        // VS1053 chip select pin (output)
#define DCS 8        // VS1053 Data/command select pin (output)
#define DREQ 0       // VS1053 Data request pin (into Arduino)
#define CARDCS 6     // Card chip select pin

Adafruit_VS1053_FilePlayer musicPlayer = Adafruit_VS1053_FilePlayer(MOSI, MISO, CLK, RESET, CS, DCS, DREQ, CARDCS);

int firsttime = 1;

void loop() {

    if (firsttime==1){
      firsttime=0;
    }

  // disable the card (we won't be using it)
  pinMode(CARDCS, OUTPUT);
  digitalWrite(CARDCS, HIGH); 
 
  // initialise the music player
  if (!musicPlayer.begin()) {
    Serial.println("VS1053 not found");
  }

   
  // put your main code here, to run repeatedly:
for (int i=0; i<10; i++){
Serial.println( i );
}
  delay(1000);


}

The musicPlayer.begin fails and I see "VS1053 not found".

Help, please. I'd really like to get this working.

-Frank
---
Working on a new men's watch project called Votsh.com

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy