Is it possible to use an SD card without a file system?

I'm doing a project on PIC, which needs a large amount of memory to store data. I want to use an SD card as the memory storage element. I don't want any type of file system.

I googled the interfacing of SD cards with microcontrollers. I found that all of them are using some kind of file system. Is it possible to interface an SD card without any file system, like a serial EEPROM?

-
I did this years ago on a project using MMC mode and it's certainly possible although a lot easier if you have 512 bytes of RAM free to hold a sector. Did you have that much available? –  PeterJ Jun 7 at 7:36
No, Ijust want to read and write 8 bit at a time. –  Linu Das Jun 7 at 7:38
Yeah you can, but take into account that SD cards are flash devices, so any data you write will trigger a block write. Repeated small write will wear out a block incredibly fast. Also, you will probably have very long pauses between writes as a block read-modify-write can take up to 100ms in a crappy SD card, and still something like a couple ms in a good card. And this amount of time is variable; depends on garbage collection and such. –  user36129 Jun 7 at 7:41
It's too long ago for me to remember reliably but I think you might get stuck with having to program an entire page at once, unlike some other FLASH devices where you can erase a page and then keep adding bytes. –  PeterJ Jun 7 at 7:45

Yes, any file system will be calling lower level functions that could be named something like writeBlock and readBlock, which are the ones that you'd be calling directly. Since you are using a microcontroller, you'll most like interface to the card in SPI mode, which is perfectly fine for logging applications - not so much for faster applications like video recording.

Your block size will be typically 512 bytes, so that's the minimum chunk of data that you'll be writing/reading in one go. Single byte transactions are not supported (there is no command you can send to make such a thing happen).

Having said that, you might want to think about how you're going to get the data out of the card, since there is no file system. This means that when you plug it into your computer (if that's how you're getting the data out) running a mainstream OS, there won't be any files that you can just drag and drop onto your desktop. You'll have to write a special application that accesses the SD card's raw data.

For that simple reason I would suggest to use a file system, such as FAT32, which is very common in logging applications and you'll find several ready-to-use libraries on the net.

-