Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: SD card problem!

2005-05-08 by Sunil Jha

Hi Atanas,
   I am trying to initialize my Mini SD memory card in SPI mode 
using LPC2129, but after lots of effort not able to do so. The SPI 
bus is working with another SPI IC, i have tested it before 
connecting to memory. I have incorporated corrections - Pull SSEL to 
high and use another GPIO as SSEL.Every time i am getting response 
0xFF from memory. Below is my code:
---------------------------------------------------------------------
void init_SPI0 (void)
{
	PINSEL0 		|= 	0x00005500;		
	//Enable SPI0 pins
	IODIR0 			|= 	0x00000001;		
	//Enable Chipselect pin as output
	
	S0SPCCR			=	0x0000001E;		
	//Set bit timing  PCLK/30
	S0SPCR   		=	0x000000A0;		
	//Configure as SPI Master interrupts enabled

	IOSET0 	|= 	CS;		//Pull Chipselect high
	
}

void init_memory(void)
{
	unsigned char txstatus, byteread;

        IOCLR0 	|= 	CS;		//Pull Chipselect low
	
	S0SPDR = 0x40;
	while (!(S0SPSR & 0x80)) 
		putchar('+');
	txstatus = S0SPSR;
	S0SPDR;
	sprintf(str,"Transmit Status 0x40 %x\n",txstatus);
	putstr(str);

	S0SPDR = 0x00;
	while (!(S0SPSR & 0x80)) 
		putchar('+');
	txstatus = S0SPSR;
	S0SPDR;
	sprintf(str,"Transmit Status 0x00 %x\n",txstatus);
	putstr(str);

	S0SPDR = 0x00;
	while (!(S0SPSR & 0x80)) 
		putchar('+');
	txstatus = S0SPSR;
	S0SPDR;
	sprintf(str,"Transmit Status 0x00 %x\n",txstatus);
	putstr(str);

	S0SPDR = 0x00;
	while (!(S0SPSR & 0x80)) 
		putchar('+');
	txstatus = S0SPSR;
	S0SPDR;
	sprintf(str,"Transmit Status 0x00 %x\n",txstatus);
	putstr(str);

	S0SPDR = 0x00;
	while (!(S0SPSR & 0x80)) 
		putchar('+');
	txstatus = S0SPSR;
	S0SPDR;
	sprintf(str,"Transmit Status 0x00 %x\n",txstatus);
	putstr(str);

	S0SPDR = 0x95;
	while (!(S0SPSR & 0x80)) 
		putchar('+');
	txstatus = S0SPSR;
	S0SPDR;
	sprintf(str,"Transmit Status 0x95 %x\n",txstatus);
	putstr(str);
	
	S0SPDR = 0xFF;
	while (!(S0SPSR & 0x80)) 
		putchar('.');;
	txstatus = S0SPSR;
	byteread = S0SPDR;
	sprintf(str,"Byte Read %x\n",byteread);
	putstr(str);
}
-----------------------------------------------------------------

If you have acheived this can you please help me in getting my card 
initialized for SPI mode?

regards,
Sunil

--- In lpc2000@yahoogroups.com, "Atanas Tulbenski" <top4e@y...> 
wrote:
> 
>  I'm using SD card with LPC2124. At first I used software SPI and 
> everything was fine. When I start using hardware SPI got problem. 
The 
> SD card initializes, I can read serial numbers, but I cant read 
data 
> using CMD17. The card returns error code 0x04 "ilegal command". 
Any 
> sugestions?

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.