Hi, I am trying to interface LPC2138 with micrSD card(2-GB). I picked up the demo code for LPC2148 based on Flash File system(since LPC2138 is almost the same as LPC2148 except for usb device peripheral). On running the code: I can see the menu on UART(uart is working fine). But it gives error: " MMC/SD card init failed.. Insert Card and press key... "
In SPI driver file SPI_LPC214x.c, its using SPI1/SSP port. As for the hardware, connections are perfect and i am able to read and write sectors from sd-card(using another sector read/write code ofcourse).
functions present in SPI_LPC214x.c are:
*---------------------------------------------------------------------------- * SPI Driver Functions *---------------------------------------------------------------------------- * Required functions for SPI driver module: * - void spi_init () * - void spi_ss (U32 ss) * - U8 spi_send (U8 outb) * - void spi_hi_speed (BOOL on) *---------------------------------------------------------------------------*/
I have even set the heap size to 0x1000 and all other configurations are correct. Please help if i am missing something.
I am using RL-ARM v4.12 and MDK-ARM v4.21.
Regards, Salman Liaquat.
Things that you have to handle are: clocking, pins, spi
So if you check if clocking is correct, that right pins are initialized and that spi code is working it should all work.
Clocking is working and pins are correctly initialized..i have checked it using oscilloscope. i can see the clock pulse and data on MISO and MOSI pins. SSEL also changes state (i.e goes low while comminication).
Hi all,
My problem is solved now. The problem was in power connection of sd-card. I was giving power to sd card from controller's IO pin. When i gave it power from power source. It worked.
I can't understand why it didn't worked using power from controller's IO pin. What i observed is that the whenever controller tries to communicate to sd-card, the power pin gets a lots of noise in it, so i connected it directly to the power source of 3.3V and that's it.
One more thing is that sector read/write occurred successfully using power from controller's IO pin.
Regards, Salman
Card probably needs consumes more current than IO pin can provide and thing crash.
View all questions in Keil forum