Hello forum. This is a question and a possible warning.
I managed to completely destroy an SD card. It got so badly mangled that two different computers each running both Windows and Linux refused to talk to it. What I think happened is that I left it logging data on a battery connected Arduino for too long and the battery fizzled out.
I know for a fact the battery was dead when I got the card back and after that the card was stone dead. I presume write operations with insufficient voltage killed it. Does anyone have any experience of this?
This raises the obvious question of monitoring input voltage level when on a not so secure power supply. Is there any way of getting to this info through software, other than grabbing Vin, dumping it through a voltage divider and measuring through an ADC pin?
Thank you for the links guys, I 'm sure I 'll need to use them in the future. Unfortunately I have thrown away that card, all this happened quite a while ago, it's just that I only got round to writing about it now.
As far as I can remember, using a file browser to look inside the device was resulting in the device hanging and trying to format it was resulting in gparted just working indefinitely while the XP formatter was saying it was unable to format after a really long time. I was getting some I/O type of erros in the logs (Linux) but I can't remember what they were now.
Cards work over a range of voltages. The initialization voltage range is 2.0 to 3.6V. During initialization a very slow SPI clock is used to read the operation conditions register, OCR. This register gives the supported voltage range for operation. Most cards return 2.7 to 3.6V. Some cards can be configured to work as low as 1.8V.
I was using the sparkfun microSD shield with the SDFat lib. I have used the shield and the lib succesfully for very long logging times (~24 hrs) with no problems so it might have been a problematic card.