I have been struggling for some time to get a clear answer on whether pull-ups or pull-downs are necessary on microSD cards used in SPI mode. Or if not necessary, then at least desirable.
So far the best I have been able to come up with from several sources is that they might be necessary on the two data lines. The only recommended values I’ve seen are 50k/100k.
I’ve also seen sources adding that a pull-down on the clock line can be good to have but no values were given.
I’ve also seen a couple sources mentioning the unused pins (those labeled NC or simply reserved/command pins not used in SPI mode) should have pull-ups also.
I’m using an Arduino Pro Mini (3.3V) and a standard microSD slot (bought on Sparkfun). I have the Arduino pins connected in the manner suggested in the reference for SPI communication:
CS - Pin 10
MISO - Pin 12
MOSI - Pin 11
CLK - Pin 13
Here is an image of my current microSD connections:
As of now I plan to leave these in just to have the pads available if they do become necessary. All I am using this for is reading small (3kb) monochrome bitmaps to display on an OLED screen. However I want to devise the most robust solution to ensure there will not be any problems as they will result in a service call. I have read stories of some cards not working if you don’t pull-up certain pins you would normally ignore (those labeled “NC” for example) and I don’t want this to happen. Once the card is installed it is essentially a permanent fixture, so card compatibility is not an issue at that point. But…I don’t want any frustration while prototyping either.
Currently the CD1 and CD2 pins are unconnected but I may pull these up as well if that would be wise. As for values I really don’t know what to use so for now I may stick with the 50k-100k suggestion I saw on another forum. The microSD component in eagle is taken from the SparkFun library.
Any help would be appreciated! Thanks!