Using Sparkfun's MP3 player shield with an Arduino Ethernet Pro - SPI problems

I'm using the Arduino Ethernet Pro board and MP3 player shield from Sparkfun (http://www.sparkfun.com/products/10536 and SparkFun MP3 Player Shield - DEV-12660 - SparkFun Electronics)

I tried to use the examples provided by Sparkfun but i keep running in to the same errors, which i have nailed down to initializing the SD Card (I'm using the SdFat).

To nail down the core issue i tried running the "SdInfo" example from the SdFat library. This is my output:

SdFat version: 20111205
type any character to start
card.init failed
SD errorCode: 0X1
SD errorData: 0X0

If i change SS_PIN from 9 to 10 in Sd2PinMap.h per Sparkfun instructions (MP3 Player Shield Hookup - learn.sparkfun.com) the sdcard.init(...) method just hangs.

I think the issue is because of a conflict between the W5100 ethernet chip and the MP3 player shield.

I got the ethernet working seperately, and i can play an MP3 file stored in the RAM without any problems.

Is there any conflicting ports that i am unaware of? Or do i need to disable the W5100 chip?

I tried disabled the MP3 decoder by setting pin 6 (MP3_XDS) and 7 (MP3_DREQ) high and pin 8 (MP3_RESET) low. I disabled the W5100 ethernet chip by setting pin 10 high (The chip select pin) I'm initializing the SD card with pin 9 as chip select pin.

I can see that the default hardware SS pin is 10, which is the same pin as the ethernet chip select pin. Is that causing any conflicts?

I can see that the default hardware SS pin is 10, which is the same pin as the ethernet chip select pin. Is that causing any conflicts?

The SS pin defines which slave (the Ethernet card or the MP3 player) is to respond to the SPI command. If you try having two devices listen and respond at the same time, of course that will cause conflicts.

As far as i can see from the schematics the following pins are Chip Select:
Pin 10: W5100 (Ethernet chip)
Pin 9: SD
Pin 6: MP3

So before i do anything else i disable the MP3 decoder chip and W5100 chip by using:

pinMode(10, OUTPUT);
digitalWrite(10, HIGH);

pinMode(6, OUTPUT);
digitalWrite(6, HIGH);

Do i have my Pin mappings wrong?

I have looked even further into it today, and i still didn’t get the SD card to work.

I have come to the conclusion that the W5100 chip may be using pin 9, can anyone please confirm/deny? I think that the schematics are not accurate in this, so Eagle may have to be used.

Schematics: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev/Arduino/Boards/Arduino-Ethernet-v112pg.pdf
Eagle files: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev/Arduino/Boards/Arduino-Ethernet-v11.zip

Thanks!

I have come to the conclusion that the W5100 chip may be using pin 9

You have come to the wrong conclusion, then. It does not use pin 9 for anything.