View Single Post
  #10 (permalink)  
Old June 25th 09, 08:54 AM posted to microsoft.public.windows.vista.hardware_devices
Richard Urban
external usenet poster
 
Posts: 5,520
Default Generic USB SD Reader

From Wikipedia:

Compatibility issues with 2 GB and larger cards
Devices that use SD cards identify the card by requesting a 128-bit
identification string from the card. For standard-capacity SD cards, 12 of
the bits are used to identify the number of memory clusters (ranging from 1
to 4096) and 3 of the bits are used to identify the number of blocks per
cluster (which decode to 4, 8, 16, 32, 64, 128, 256 or 512 blocks per
cluster).

In older 1.x implementations the standard capacity block was exactly 512
bytes. This gives 4096 x 512 x 512 = 1 gigabyte of storage memory. A later
revision of the 1.x standard allowed a 4-bit field to indicate 1024 or 2048
bytes per block instead, yielding more than 1 gigabyte of memory storage.
Devices designed before this change may incorrectly identify such cards,
usually by misidentifying a card with lower capacity than is the case by
assuming 512 bytes per block rather than 1024 or 2048.

For the new SDHC high capacity card (2.0) implementation, 22 bits of the
identification string are used to indicate the memory size in increments of
512 KBytes. Currently 16 of the 22 bits are allowed to be used, giving a
maximum size of 32 GB. All SDHC 4-GB and larger cards must be 2.0
implementations. Two bits that were previously reserved and fixed at 0 are
now used for identifying the type of card, 0=standard, 1=HC, 2=reserved,
3=reserved. Non-HC devices are not programmed to read this code and
therefore cannot correctly read the identification of the card.

All SDHC readers work with standard SD cards.[14]

Many older devices will not accept the 2 or 4 GB size even though it is in
the revised standard. The following statement is from the SD association
specification:

"To make 2 GByte card, the Maximum Block Length (READ_BL_LEN=WRITE_BL_LEN)
shall be set to 1024 bytes. However, the Block Length, set by CMD16, shall
be up to 512 bytes to keep consistency with 512 bytes Maximum Block Length
cards (Less than and equal 2 Gbyte cards)."[15]

[edit] SD (non-SDHC) cards with greater than 1 GB capacity
The SD Card Association's current specifications define how a standard SD
(non-SDHC) card with more than 1 GB and up to 4 GB capacity should be
designed. These cards should be readable in any SD 1.01 devices that take
the block length data into account. Any 1 GB or lesser card should always
work. (So the key question is how one's reader handles block length).

According to the specification,[16] the maximum capacity of a standard SD
card is defined by (BLOCKNR x BLOCK_LEN), where BLOCKNR may be (4096 x 512)
and BLOCK_LEN may be up to 2048. This allows a capacity of 4 GB. The main
problem is that some of the card readers support only a block (aka. sector)
size of 512 bytes, so greater than 1 GB non-SDHC cards may cause
compatibility difficulties for some users.



--

Richard Urban
Microsoft MVP
Windows Desktop Experience


"CECarroll1945" wrote in message
...

My Gateway computer has Vista Home Premium. My Toshiba laptop has XP.
I purchased a Sandisk Ultra II, 2GB to transfer data from my laptop to
the Gateway. The data transferred from the laptop to the Sandisk but
the computer with Vista does not see the data on the card. I saved a
photo from the Vista computer to the card and it shows up with the Vista
computer but not in the XP computer. Apparantly the card is fine. What
is my problem with Vista vs XP?


--
CECarroll1945