SD card - HS - cmd6 data > 512 bits, 4-bit interface

I am writing an embedded device driver for high-speed SD cards.  Every command works great except CMD6 where I get a data CRC error.

I put the transaction on a logic analyzer and see 144*4-bits = 576 bits from the SD card.  I was expecting 512 data +16 crc = 528-bits.  Not sure why extra 48-bits (12 extra nibbles).

The first 512 bits match what I expected.  The next 48-bits look like they contain information, but not sure what.  The last 16 bits is the CRC for the previous 560 (512 expected + 48 extra) bits (I wrote a matlab script to calculate CRC16 on the captured data).

Any clues what the extra 48 bits are?  Or what I may be doing wrong.

Thanks,

Dan

:smiley:   Hi Dan,

Dear member of SanDisk Community, welcome.

Mmm… Friend, I think you it erred of forum…

Please, your question is very specific, you can send the question to: http://forums.mydigitallife.info

Luck.

Regards, Alfred.                                                           (Google translated)

Alfred, Why that forum?  I have searched and found nothing via Google searches.  i was hoping somebody at Sandisk would see or somebody who writes drivers.

Thanks,

Dan

Solved my own problem.  ATurns out I did not see this in the documentation.

For 4-bit interface or what is called wide bus option, the CRC is calculated per data pin versus for the full 4-bit word.

  When the wide bus option is used, the data is transferred 4 bits at a time (refer to Figure 3-10). Start and end bits, as well as the CRC bits, are

  transmitted for every one of the DAT lines. CRC bits are calculated and checked for every DAT line individually. The CRC status response and

  Busy indication will be sent by the card to the host on DAT0 only (DAT1-DAT3 during that period are don’t care).

So that is why there are 16 clocks after data since a unique 16-bit CRC is being output on each data pin.