Hi
I found that I needed to add a pull-up resistor (4k7 for example) on the SDI line on this board to get it to work.
Just recently I managed to get an it to work without a pull-up on the LM3S1958, whereby the configuration is below:
// Configure to suit SD card SPI mode at between 100k and 400k
//
#define SPI_CS1_1 PORTE_BIT1
#define INITIALISE_SPI_SD_INTERFACE() RCGC2 |= CGC_GPIOE; GPIOAFSEL_E = 0; \
_CONFIG_PERIPHERAL(E, SSI1, 1, (PORTE_BIT0 | PORTE_BIT3), (PE0_SSI1Clk | PE3_SSI1Tx)); \
_CONFIG_DRIVE_PORT_OUTPUT_VALUE(E, PORTA_BIT2, PORTA_BIT2); \
_CONFIG_DRIVE_PORT_OUTPUT_VALUE(E, SPI_CS1_1, SPI_CS1_1); \
SSICR1_1 = 0; SSICPSR_1 = 2; \
SSICR0_1 = (FRS_FREESCALE_SPI | SSI_SPH | SSI_SPO | DSS_8_BIT | ((((MASTER_CLOCK/2 + 300000/2)/300000) - 1) << SSI_SCR_SHIFT));
#define ENABLE_SPI_SD_OPERATION() SSICR1_1 = SSI_SSE
#define SET_SD_CARD_MODE() _CONFIG_PORT_PULLUP(E, PORTE_BIT2); _CONFIG_PERIPHERAL(E, SSI1, 1, (PORTE_BIT2), (PE2_SSI1Rx))
// Set maximum speed
//
#define SET_SPI_SD_INTERFACE_FULL_SPEED() SSICR0_1 = (FRS_FREESCALE_SPI | SSI_SPH | SSI_SPO | DSS_8_BIT | ((((MASTER_CLOCK/2 + 12000000/2)/12000000) - 1) << SSI_SCR_SHIFT))
#ifdef _WINDOWS
#define WRITE_SPI_CMD(byte) SSIDR_1 = (unsigned char)byte; SSIDR_1 = _fnSimSD_write((unsigned char)byte)
#define WAIT_TRANSMISSON_END() while (SSISR_1 & SSI_BSY) { SSISR_1 &= ~SSI_BSY; }
#else
#define WRITE_SPI_CMD(byte) SSIDR_1 = (unsigned char)byte
#define WAIT_TRANSMISSON_END() while (SSISR_1 & SSI_BSY) {}
#endif
#define READ_SPI_DATA() (unsigned char)SSIDR_1
#define POWER_UP_SD_CARD() // apply power to the SD card if appropriate
#define POWER_DOWN_SD_CARD() // remove power from SD card interface
#define SET_SD_DI_CS_HIGH() _SETBITS(E, SPI_CS1_1) // force DI and CS lines high ready for the initialisation sequence
#define SET_SD_CS_LOW() _CLEARBITS(E, SPI_CS1_1) // assert the CS line of the SD card to be read
#define SET_SD_CS_HIGH() _SETBITS(E, SPI_CS1_1) // negate the CS line of the SD card to be read
Note that during the initial configuration is SDI line is configured as a port input with pull-up resistor. Only when the SPI mode has commanded is it reconfigured as SPI input.
You may be able to solve it be changing the EK_LM3S6965 configuration to do the same; if not add a pull-up should solve it.
I also noticed that the loss of time and date when writing files is known and there is a patch for it in the patch list:
http://www.utasker.com/forum/index.php?topic=792.0(point 3).
Regards
Mark