As a followup to yesterday’s post of collecting and decoding the Card Identification Register data from various SD cards, I couldn’t resist the challenge to try and decipher the Card Specific Data Register (CSD).
If I had to do it again, I would decompose the whole thing into a string of binary bits before dealing with it, as I didn’t realize beforehand just how many of the fields are not nibble aligned making working in hex on the original string moot!
On doing so, I realized that there are several versions of the CSD – one for SD Standard Capacity (SDSC) and the other for SD High Capacity (SDHC) which has resulted in two separate versions of the decoder being developed.
As usual, I also went to lengths to collect the CSD data from my cards – note the first is an MMC card, so the definitions may not hold true for MMC cards!
d00f00320f5903ffffffffff92404011 CHROMEBOOK INTERNAL EMMC 400e00325b5900001d697f800a40008b RASPBMC SDHC CARD 400e00325b590000e9e57f800a4040f1 SAMSUNG 32Gb CLASS 10 SDHC 400e00325b590000ee9d7f800a400013 TEAM 32Gb CLASS 10 400e00325b590003a5df7f800a400007 KINGSTON 128Gb SDXC CLASS 10 002d00325b5a83d5fefbff80168000cf KINGSTON 2Gb SDSC 002600325f5a83c93efbcfff928040cb SANDISK 2Gb Blue SDSC 400e00325b590000ef377f800a400025 PATRIOT 32Gb CLASS 10 SDHC 400e00325b590000edc87f800a4040c3 SANDISK 32Gb CLASS 4 MicroSDHC 002600325f5983c8addbcfffd24040a5 SANDISK ULTRA II 1Gb MicroSDSC 400e00325b590001dbd37f800a4040df SANDISK ULTRA 64Gb UHS-I MicroSDXC 007f00325b5a83af7fffcf801680006f UNBRANDED 2Gb MicroSDSC 007f00325b5a83bfffffcf8016800037 PRETEC 2Gb MicroSDSC
The decoders are quite long, so instead of embedding them, they’ve been linked here:
While trawling online, I came across a similar decoder for MMC, although it seems to implement an older register definition but it has the same idea.
I hope it comes in handy for readers – it certainly lets me understand some more about my SD cards, and gives me a surprising insight into just how much manufacturer encoded information exists on these cards, mostly hard-coded from the factory. There are other registers, but they aren’t as informative or useful as the CID and CSD pair.