30

I have noticed that with some USB readers (not to mention other media devices, such as digital cameras) there seems to be an upper limit to the amount of internal storage they can support. When I insert low capacity micro sd cards (16GB or less) they work fine, however when I try 32GB or 64GB and the device cannot read the SD card. They are from different manufacturers, so I assume that this is the result of a more generic issue.

Question: Why aren’t some USB readers capable of supporting large capacity SD cards? Does it have to do with the computer architecture? It would be nice to know if there was a rhyme or reason to it all. Currently, it’s a bit of trial by fire; I'm never quite sure how to scale my memory due to the fact that I remain unsure whether it will be supported or not.

3
  • 1
    I think there are really two (related) questions here: 1) General: Why do devices have size limits? 2) Concrete: How can I tell the limit for a given device? Both are good questions IMHO.
    – sleske
    Jan 2, 2018 at 10:50
  • @sleske my thoughts exactly. This should be split into two different stack questions. Jan 2, 2018 at 15:06
  • 7
    I don't think your title is using the word "crash" the way the rest of the world does. Does loading a high capacity card render the card reader non-functional even after the offending card is removed, until some recovery action is taken such as a power cycle?
    – Ben Voigt
    Jan 2, 2018 at 15:39

3 Answers 3

37

The general rule is that devices can use what is available at the time of manufacture.
They cannot be expected to know what future development may bring.

These cards are all physically identical from the outside, however SD Cards have several 'types', separated by Capacity - SD, SDHC and SDXC which are basically split by size - up to 2GB, 32GB & 2TB address limits.

They are also separated by Speed - from 2MB/s to 90MB/s - in a confusing array of icons... numbers in circles, from 1 - 10, U-speeds in MB/10 & V-speeds which at last give the true speed in MB/s, i.e. V6 ... to V90.

Consumer-level guide at How to choose an SD card
Overview at Wikipedia - Secure Digital
Comprehensive guide at the SD Association - SD Standard Overview

Simplest way to tell what any given device can use...
... read the manual, or see what icon is next to the slot [if it's anything other than generic].

There's no other sure way other than trial & error.

3
  • 1
    It could also be if they have support for FAT32, exFAT etc. A badly written firmware with no exFAT support might just crash if it tries to read such a card.
    – GuzZzt
    Jan 2, 2018 at 13:44
  • 18
    @GuzZzt: No. USB card readers implement the USB Mass Storage protocol, which presents the SD card as an unorganized sequence of sectors. The USB host (i.e. the PC) has to interpret those, and typically that's done by the OS. The OS will contain a FAT driver, exFAT diver, etc.
    – MSalters
    Jan 2, 2018 at 16:22
  • 3
    @MSalters, Sorry, I should have been more clear, I was thinking about the "media devices, such as digital cameras" part where a computer is not used to read the SD Card.
    – GuzZzt
    Jan 3, 2018 at 7:34
13

SD cards have many generations supporting many different capacities and protocols. The protocol for talking to SD cards has changed and been enhanced several times to allow for faster speeds and larger capacities.

What this means is that older SD card reader may not support the necessary commands or protocols required for newer cards. A card may well be able to fall back to a lower speed for a card reader, but if the command needs more information to access more of the card then that card will simply not work in that reader.

Some devices might just need a firmware update to support newer cards, but many will never see such an update. It is often simply cheaper to replace a card reader than to issue a firmware update. For cameras and the like I would hope they would have the update.

Often a device will state the maximum size cards they support and they do that for exactly this reason.

The Wikipedia SD card page has some information on capacity and compatibilities:

By the time the version 2.0 (SDHC) specification was completed in June 2006, vendors had already devised 2 GB and 4 GB SD cards, either as specified in Version 1.01, or by creatively reading Version 1.00. The resulting cards do not work correctly in some host devices.

So compatibility is complicated by manufacturers "creative" reading of standards and making devices that are not fully standards compliant. That section lists a number of issues and caveats that may affect compatibility across SD card versions which may mean that newer and larger cards may not work.

1

Because newer higher capacity cards (e.g. SDXC) use electronic features that were part of the undefined bits for the older specifications (SD or SDHC). Depending on luck, the implementation of the reader may have suitable values for those bits to be compatible with newer variants, too.

As a simple artificial example, you can imagine a case where the storage device address selection wiring required 48 wires for SDHC and the manufacturer opted to wire all 64 bits just-in-case and that turned to be the correct option for supporting SDXC. Or the manufacturer wired 50 wires and grounded the extra 14 wires and that turned out to be the right solution by pure luck. Both implementations would have worked just fine within the older specs.

The point is that you cannot create forward compatible implementations (e.g. SDHC card reader magically supporting high capacity SDXC cards) because you don't know the future demands in future specifications. But if the current spec defines e.g. 64 bit number for some part of the specification, you can opt to preserve whatever values were transmitted or force the "know zero" bits to be always zero. Forcing unneeded bits to known value (e.g. zero) will typically improve performance against electronic noise and may allow higher performance so trying to preserve bits that are "known to not be needed" might have extra cost that would reduce the value of the device for nothing in case that guess turned out to be incorrect for the future spec.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .