maunix, precisamente a eso me referia a esos bytes basura. Creo que he dado con la respuesta, buscando por ahí en otros foros en inglés.
me quedaba claro que ese es el byte basura, pero ¿por que ese y no otro?
pues bien, siempre que tenemos que mandar algo a la mmc (comando) el primer bit de un comando debe ser un "0" y yo pensaba que valia con mandar un byte cuyo primer bit fuera un "1", pero no es así, xq la tarjeta está en espera de recibir un "0" en cualquier momento, así es que si cualquier bit del byte enviado es un "0", lo interpreta como el inicio de la rececpción de un comando por parte del pic.
Por eso el byte debe ser 11111111, y ademas es un "byte basura" valido para la aplicacion con la mmc, ya que en otro aplicación dependerá de la forma de los que reciba el dispositivo.
Por lo menos ya he conseguido que funcione ligeramente, la puedo inicializar en modo spi y leo bloques de 512 bytes de la tarjeta.
Gracias.