Ethernet SD shield

Hola, yo lo que veo es que si cargas un código CON HTML en la placa, y la sd está metida, no funciona nada. Tengo que sacar la SD y entonces funciona todo.

Yo no sabia del cardinfo y buscando por la red, encontré un trozo de código para esto mismo, para que me comprobara la SD y que yo fuera viendo lo que iba pasando (Lo del void Setup, debajo de Serial.begin(9600) ), le añadí la cabecera http, la configuración y fui viendo el proceso en el monitor serial..

Metele este código (Cambia la mac, IP, gateway y server port) a ver si cuando abras el monitor, ves algo (Y mete el index.htm en la sd):

#include <SD.h>								//Iniciamos la libreria SD
#include <SPI.h>							//Iniciamos la libreria Serial Peripheral Interface
#include <Ethernet.h>							//Iniciamos la libreria Ethernet

byte mac[]	= {0x90,0xA2,0xDA,0x00,0x00,0x00}; 			// Declaramos la MAC (Los 3 primeros octetos son de arduino, los otros inventados)
byte ip[]    	= {192,168,0,2}; 		 			// Declaramos la IP de la shield
byte gateway[]  = {192,168,0,1}; 					// Declaramos la IP del router
byte subnet[] 	= {255,255,255,0};					// Declaramos la mascara de subred
EthernetServer servidor(1080);						// Declaramos el puerto TCP del servidor 1080

File webFile;

void setup()
{
   Ethernet.begin(mac, ip, gateway, subnet);				// Inicializamos con las direcciones asignadas
   servidor.begin();							// Arrancamos el server
   Serial.begin(9600);       						// Iniciamos el monitor serial para comprobar errores
    
    
    Serial.println("Inicializando MicroSD...");				// Inicializamos la SD card
    if (!SD.begin(4)) {							// Caso si no hay respuesta por parte de la SD
        Serial.println("ERROR - Inicializacion MicroSD fallida!");	// Inicio fallido
        return;    							// Volvemos a intentar inicializar la SD card
    }
    Serial.println("EXITO - MicroSD inicializada.");			// Caso si hay respuesta por parte de la SD
    									
    if (!SD.exists("index.htm")) {					// Comprueba en la SD si esta el archivo index.htm 
        Serial.println("ERROR - No encuentro index.htm!");		// Caso que no encuentra el archivo index.htm
        return;								// Volvemos a intentar inicializar la SD card  							
    }
    Serial.println("EXITO - Index.htm encontrado.");			// Caso que si encuentra el archivo index.htm
}

void loop()
{
    EthernetClient cliente= servidor.available();			// Server disponible. Intentamos tener un cliente
  
  if(cliente)								
  {
    boolean lineaenblanco=true;						// Tenemos un cliente??	(VERDADERO O FALSO)		
    while(cliente.connected())						// Cliente conectado
    {									// Los datos del cliente estan preparados para leerlos
      if(cliente.available())						// Si el cliente esta¡ disponible
      {
        char c=cliente.read();						// Leemos peticion HTTP caracter a caracter(1 byte del cliente)


   	if (c == '\n' && lineaenblanco) {				// La ultima linea de la peticion es en blanco y finaliza con "\n"
									// Responde al cliente despues de la ultima li­nea recibida
	cliente.println("HTTP/1.1 200 OK");				// Manda una cabecera http estandar
                    cliente.println("Content-Type: text/html");
                    cliente.println("Connection: close");
                    cliente.println();
                    							// Manda una pagina web
                    webFile = SD.open("index.htm");        		// Abre el archivo index.htm
                    if (webFile) {
                        while(webFile.available()) {
                            cliente.write(webFile.read()); 		// Manda una pagina web al cliente
                        }
                        webFile.close();
                    }
                    break;
                }
                							 // Cada linea del texto recibido del cliente acaba con "\r\n"
                if (c == '\n') {
                    							 
                   							 // Comenzando una nueva linea con el siguiente caracter leido
                    lineaenblanco = true;				 // Ultimo caracter en la linea de texto recibido
                } 
                else if (c != '\r') {
                    							 
                    lineaenblanco = false;				 // Un caracter de texto se recibe del cliente
                }
            } 								 // Fin si (cliente.available())
        } 								 // Fin mientras (cliente.connected())
        delay(1);      							 // Dar tiempo al navegador web para recibir los datos
        cliente.stop(); 							 // Cerramos conexion
    } 									 // Fin si (cliente)
}

No sé que decirte, pero o puede que tengas el shield cascado o lo que está cascado es el bus entre la sd y el shield..A ver si alguien que controle más te dice algo mas específico del shield....

Saludos