The Computer Oracle

Why do some USB readers have issues to read large capacity SD cards?

--------------------------------------------------
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------

Music by Eric Matyas
https://www.soundimage.org
Track title: Dream Voyager Looping

--

Chapters
00:00 Why Do Some Usb Readers Have Issues To Read Large Capacity Sd Cards?
00:56 Accepted Answer Score 38
02:12 Answer 2 Score 13
03:46 Answer 3 Score 1
05:19 Thank you

--

Full question
https://superuser.com/questions/1281776/...

--

Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...

--

Tags
#memory #sdcard

#avk47



ACCEPTED ANSWER

Score 38


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.




ANSWER 2

Score 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.




ANSWER 3

Score 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.