This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

SPI and SD card

Hi everyone,
I found SD.c that works with SD card thorough SPI for LPC series. But I work with AT91SAM7x256 and I want to change the code to work with this series. I am working on USB and new to memories. This very important to me. I am so grateful for your help.

can anyone help me?

#include"lpc214x.h"
#include "PCF8833.h"

#define SD_Disable() IO0SET |= 1 << 20  //SD Chip Select Pin is P0.7
#define SD_Enable() IO0CLR |= 1 << 20
typedef unsigned char INT8U;
typedef unsigned short INT16U;
typedef unsigned int INT32U;

char CMD[]={0x40, 0x00, 0x00, 0x00, 0x00, 0x95};


INT8U SPI_RW(INT8U data)
{
        SSPDR = data;
        while((SSPSR & 0x01) == 0);
        return(SSPDR);
}

void spi_init (void)
{

   INT32U i;

   /* SSEL is GPIO, output set to high. */
   IODIR0  |= 1<<20;
   IOSET0   = 1<<20;
   /* SCK1, MISO1, MOSI1 are SSP pins. */
   PINSEL1  = (PINSEL1 & ~0x000003FC) | 0x000000A8;

   /* Enable SPI in Master Mode, CPOL=1, CPHA=1 (Clock low-active). */
   SSPCR0 = 0x00C7;
   SSPCR1 = 0x0002;
   SSPCPSR = 0xFE;

   /* Send SPI Command with card not selected at 400 KBit. */
   for (i = 0; i < 16; i++) {
      SPI_RW (0xFF);
   }

   /* Enable SSP auto select. */
}


Parents Reply Children