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

LPC2368 MCI "ReadBlock" Problem

Hi guys
I try to use MCI Controller in LPC2368.
I'm using the example on "code.bundle.lpc23xx.lpc24xx.uvision.zip" program for LPC236X for testing the SD card by reading to it and verifying.
this code work well and init mmc and init mci controller but when i want read a sector on mmc with "MCI_Read_Block",micro is crashing on line "MCI_DATA_CTRL = DataCtrl;" !!!

"MCI_Read_Block" routine:

DWORD MCI_Read_Block( DWORD blockNum )
{

DWORD i;
DWORD DataCtrl = 0;

MCI_CLEAR = 0x7FF;
MCI_DATA_CTRL = 0;
Set_MCIClock(NORMAL_RATE);
for ( i = 0; i < 0x10; i++ );

if ( MCI_CheckStatus() != TRUE )
{
 MCI_Send_Stop();
 return( FALSE );
}
MCI_RXEnable();

MCI_DATA_TMR = DATA_TIMER_VALUE;
MCI_DATA_LEN = BLOCK_LENGTH;

if ( MCI_Send_Read_Block( blockNum ) == FALSE )
{
  return ( FALSE );
}

#if MCI_DMA_ENABLED

  DMA_Init( 1, P2M );
  GPDMA_CH1_CFG |= 0x10001 | (0x04 << 1) | (0x00 << 6) | (0x06 << 11);
  DataCtrl |= ((1 << 0) | (1 << 1) | (1 << 3) | (DATA_BLOCK_LEN << 4));

#else

  DataCtrl |= ((1 << 0) | (1 << 1) | (DATA_BLOCK_LEN << 4));

#endif

MCI_DATA_CTRL = DataCtrl; <---crashing in line!!!
for ( i = 0; i < 0x10; i++ );
return ( TRUE );
}





Please Help Me :(
thanks.

0