alright, I am using Ladyada's SD-logging library in a battery-powered application on an arduino duemilanove, and I would like to minimize power consumption where possible. All the code works, it writes just fine, it's the current draw that gets me.
it's a large battery and only has to go a couple days between recharges so I'm fine with the 25mA that the arduino itself pulls. However, when i stick the SD card in, power consumption jumps to 47mA when writing once per minute, 49 if writing 4x/second. Reading around I have heard mention of being able to put an SD card into a low-power mode, but I have not yet seen an example of how to do actually do it.
my first thought was simply closing the file and cutting power to the card, then restoring power and reopening the same file every time I wanted to write. The problem with that is every time you reset arduino and create a new logfile, it takes longer and longer to open it and it has more files on the card to search through. the first few resets have extremely quick file access, but once you hit around 15-20+ logs, access times start jumping up: i had a 50ms access time when tehre were 40 log files on the card. at some point if it gets reset enough, the time it takes to reopen the file will be longer than the overhead I have between data reading/writing (right now about 100ms overhead, 250ms total time between data readings) and I'd like the overall cycle to remain at 250ms.
I have also tried bringing the CS pin high when the card is not in use, but that doesn't do anything for reducing current consumption.
I am using the microsd cards from Sparkfun and their microsd breakout board. in case it matters, I am leaving the card detect pin disconnected