storing data to a MMC?
Matthew
Posts: 200
Does anyone know where I can find information about this? I've never done datalogging before, but it might be of great use in my project.
Comments
I'm working with that as well. MMC memory can be interfaced to a stamp using the SPI or I2C protocols. I've not used either, but from comments I've read SPI is easier, so I'll probably use that. One complication is the MMC uses 3.3v whereas the stamp uses 5. You'll have to provide a regulated 3.3v supply as well as interface the MMC's 3.3v signals to the stamps 5v. Check out the schematic in the Technical Manual for BiPom's card (see below).
The resources I would point you towards are:
BiPom's MMC-RTC-1 board should get you up and running quickly www.bipom.com/periph_boards.shtm and don't do what I did and forget to order the cable to interface it to a breadboard.
SanDisk has several white papers and manuals available at:
www.sandisk.com/oem/manuals.asp
www.sandisk.com/oem/application-notes.asp
www.sandisk.com/oem/whitepapers.asp
The MMC Product Manual in their manuals link is 93 pages long, but it is a definitive guide on what you need to do. The Technical Reference Guide for SanDisk MultiMediaCard in the Application Notes gives a good overview.
BiPom has a sample program for the BS2 to interface with an MMC card. The link on their web site is hosed. When I inquired about it they emailed me the program which I have attached.
If you aren't trying to make the MMC card compatible with a PC or some other device, you can treat it as a giant chunk of memory and write to it in any fashion that makes sense for your application. Keep in mind that MMC cards are flash memory and each bit has a finite number of writes before they fail. But that number is, best case, 2,000,000 so unless you use it for memory cache or some other use where you are writing to it many times a second, you'll be fine.
One thing to keep in mind is that you need to write to it in 512 byte blocks. So you will need some form of external SRAM to store the block to be read. Depending on the tolerance of your application to lose this block of data in the event of a power failure, and the frequency that the temporary memory is update you may need to use NVRAM, EEPROM, or battery backed SRAM.
Jim